xref: /vim-8.2.3635/runtime/ftplugin/csh.vim (revision 2286304c)
1" Vim filetype plugin file
2" Language:		csh
3" Maintainer:		Doug Kearns <[email protected]>
4" Previous Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
5" Contributor:		Johannes Zellner <[email protected]>
6" Last Change:		2021 Oct 15
7
8if exists("b:did_ftplugin") | finish | endif
9let b:did_ftplugin = 1
10
11let s:save_cpo = &cpo
12set cpo-=C
13
14setlocal comments=:#
15setlocal commentstring=#%s
16setlocal formatoptions-=t
17setlocal formatoptions+=crql
18
19let b:undo_ftplugin = "setlocal com< cms< fo<"
20
21" Csh:  thanks to Johannes Zellner
22" - Both foreach and end must appear alone on separate lines.
23" - The words else and endif must appear at the beginning of input lines;
24"   the if must appear alone on its input line or after an else.
25" - Each case label and the default label must appear at the start of a
26"   line.
27" - while and end must appear alone on their input lines.
28if exists("loaded_matchit") && !exists("b:match_words")
29  let s:line_start = '\%(^\s*\)\@<='
30  let b:match_words =
31	\ s:line_start .. 'if\s*(.*)\s*then\>:' ..
32	\   s:line_start .. 'else\s\+if\s*(.*)\s*then\>:' .. s:line_start .. 'else\>:' ..
33	\   s:line_start .. 'endif\>,' ..
34	\ s:line_start .. '\%(\<foreach\s\+\h\w*\|while\)\s*(:' ..
35	\   '\<break\>:\<continue\>:' ..
36	\   s:line_start .. 'end\>,' ..
37	\ s:line_start .. 'switch\s*(:' ..
38	\   s:line_start .. 'case\s\+:' .. s:line_start .. 'default\>:\<breaksw\>:' ..
39	\   s:line_start .. 'endsw\>'
40  unlet s:line_start
41  let b:undo_ftplugin ..= " | unlet b:match_words"
42endif
43
44if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
45  let  b:browsefilter="csh Scripts (*.csh)\t*.csh\n" ..
46	\	      "All Files (*.*)\t*.*\n"
47  let b:undo_ftplugin ..= " | unlet b:browsefilter"
48endif
49
50let &cpo = s:save_cpo
51unlet s:save_cpo
52