mirror of
				https://github.com/vim/vim.git
				synced 2025-10-29 09:37:35 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim filetype plugin file
 | |
| " Language:	GNU Octave
 | |
| " Maintainer:	Doug Kearns <dougkearns@gmail.com>
 | |
| " Last Change:	2021 Sep 02
 | |
| 
 | |
| if exists("b:did_ftplugin")
 | |
|   finish
 | |
| endif
 | |
| let b:did_ftplugin = 1
 | |
| 
 | |
| let s:cpo_save = &cpo
 | |
| set cpo&vim
 | |
| 
 | |
| " TODO: update Matlab ftplugin and source it as the base file?
 | |
| 
 | |
| setlocal comments=s:%{,m:\ ,e:%},s:#{,m:\ ,e:#},:%,:#
 | |
| setlocal commentstring=#\ %s
 | |
| setlocal formatoptions-=t formatoptions+=croql
 | |
| 
 | |
| setlocal keywordprg=info\ octave\ --vi-keys\ --index-search
 | |
| 
 | |
| if exists("loaded_matchit") && !exists("b:match_words")
 | |
|   let b:match_words = '\<unwind_protect\>:\<unwind_protect_cleanup\>:\<end_unwind_protect\>'
 | |
|   if exists("octave_use_matlab_end")
 | |
|     let b:match_words ..= ',' ..
 | |
| 	                \ '\<\%(classdef\|enumeration\|events\|for\|function\|if\|methods\|parfor\|properties\|switch\|while\|try\)\>' ..
 | |
|                         \ ':' ..
 | |
| 			\ '\<\%(elseif\|else\|case\|otherwise\|break\|continue\|catch\)\>' ..
 | |
|                         \ ':' ..
 | |
| 			\ '\<end\>'
 | |
|   else
 | |
|     let b:match_words ..= ',' ..
 | |
|                         \ '\<classdef\>:\<endclassdef\>,' ..
 | |
| 			\ '\<enumeration\>:\<endenumeration\>,' ..
 | |
| 			\ '\<events\>:\<endevents\>,' ..
 | |
| 			\ '\<do\>:\<\%(break\|continue\)\>:\<until\>' ..
 | |
| 			\ '\<for\>:\<\%(break\|continue\)\>:\<endfor\>,' ..
 | |
| 			\ '\<function\>:\<return\>:\<endfunction\>,' ..
 | |
| 			\ '\<if\>:\<\%(elseif\|else\)\>:\<endif\>,' ..
 | |
| 			\ '\<methods\>:\<endmethods\>,' ..
 | |
| 			\ '\<parfor\>:\<endparfor\>,' ..
 | |
| 			\ '\<properties\>:\<endproperties\>,' ..
 | |
| 			\ '\<switch\>:\<\%(case\|otherwise\)\>:\<endswitch\>,' ..
 | |
| 			\ '\<while\>:\<\%(break\|continue\)\>:\<endwhile\>,' ..
 | |
| 			\ '\<try\>:\<catch\>:\<end_try_catch\>'
 | |
|   endif
 | |
|   " only match in statement position
 | |
|   let s:statement_start = escape('\%(\%(^\|;\)\s*\)\@<=', '\')
 | |
|   let b:match_words = substitute(b:match_words, '\\<', s:statement_start, 'g')
 | |
| endif
 | |
| 
 | |
| if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
 | |
|   let b:browsefilter = "GNU Octave Source Files (*.m)\t*.m\n" ..
 | |
| 		     \ "All Files (*.*)\t*.*\n"
 | |
| endif
 | |
| 
 | |
| let b:undo_ftplugin = "setl com< cms< fo< kp< " ..
 | |
| 		    \ "| unlet! b:browsefilter b:match_words"
 | |
| 
 | |
| let &cpo = s:cpo_save
 | |
| unlet s:cpo_save
 | |
| 
 | |
| " vim: nowrap sw=2 sts=2 ts=8 noet:
 |