1071d4279SBram Moolenaar" Vim filetype plugin file 2071d4279SBram Moolenaar" Language: csh 3*2286304cSBram Moolenaar" Maintainer: Doug Kearns <[email protected]> 4*2286304cSBram Moolenaar" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> 5*2286304cSBram Moolenaar" Contributor: Johannes Zellner <[email protected]> 6*2286304cSBram Moolenaar" Last Change: 2021 Oct 15 7071d4279SBram Moolenaar 8071d4279SBram Moolenaarif exists("b:did_ftplugin") | finish | endif 9071d4279SBram Moolenaarlet b:did_ftplugin = 1 10071d4279SBram Moolenaar 11071d4279SBram Moolenaarlet s:save_cpo = &cpo 12071d4279SBram Moolenaarset cpo-=C 13071d4279SBram Moolenaar 14*2286304cSBram Moolenaarsetlocal comments=:# 15071d4279SBram Moolenaarsetlocal commentstring=#%s 16071d4279SBram Moolenaarsetlocal formatoptions-=t 17071d4279SBram Moolenaarsetlocal formatoptions+=crql 18071d4279SBram Moolenaar 19*2286304cSBram Moolenaarlet b:undo_ftplugin = "setlocal com< cms< fo<" 20*2286304cSBram Moolenaar 21071d4279SBram Moolenaar" Csh: thanks to Johannes Zellner 22071d4279SBram Moolenaar" - Both foreach and end must appear alone on separate lines. 23071d4279SBram Moolenaar" - The words else and endif must appear at the beginning of input lines; 24071d4279SBram Moolenaar" the if must appear alone on its input line or after an else. 25071d4279SBram Moolenaar" - Each case label and the default label must appear at the start of a 26071d4279SBram Moolenaar" line. 27071d4279SBram Moolenaar" - while and end must appear alone on their input lines. 28*2286304cSBram Moolenaarif exists("loaded_matchit") && !exists("b:match_words") 29*2286304cSBram Moolenaar let s:line_start = '\%(^\s*\)\@<=' 30071d4279SBram Moolenaar let b:match_words = 31*2286304cSBram Moolenaar \ s:line_start .. 'if\s*(.*)\s*then\>:' .. 32*2286304cSBram Moolenaar \ s:line_start .. 'else\s\+if\s*(.*)\s*then\>:' .. s:line_start .. 'else\>:' .. 33*2286304cSBram Moolenaar \ s:line_start .. 'endif\>,' .. 34*2286304cSBram Moolenaar \ s:line_start .. '\%(\<foreach\s\+\h\w*\|while\)\s*(:' .. 35*2286304cSBram Moolenaar \ '\<break\>:\<continue\>:' .. 36*2286304cSBram Moolenaar \ s:line_start .. 'end\>,' .. 37*2286304cSBram Moolenaar \ s:line_start .. 'switch\s*(:' .. 38*2286304cSBram Moolenaar \ s:line_start .. 'case\s\+:' .. s:line_start .. 'default\>:\<breaksw\>:' .. 39*2286304cSBram Moolenaar \ s:line_start .. 'endsw\>' 40*2286304cSBram Moolenaar unlet s:line_start 41*2286304cSBram Moolenaar let b:undo_ftplugin ..= " | unlet b:match_words" 42071d4279SBram Moolenaarendif 43071d4279SBram Moolenaar 44*2286304cSBram Moolenaarif (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") 45*2286304cSBram Moolenaar let b:browsefilter="csh Scripts (*.csh)\t*.csh\n" .. 46071d4279SBram Moolenaar \ "All Files (*.*)\t*.*\n" 47*2286304cSBram Moolenaar let b:undo_ftplugin ..= " | unlet b:browsefilter" 48071d4279SBram Moolenaarendif 49071d4279SBram Moolenaar 50071d4279SBram Moolenaarlet &cpo = s:save_cpo 5184f7235bSBram Moolenaarunlet s:save_cpo 52