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