1071d4279SBram Moolenaar" Vim filetype plugin file 2*4c295027SBram Moolenaar" Language: Pascal 3*4c295027SBram Moolenaar" Maintainer: Doug Kearns <[email protected]> 4*4c295027SBram Moolenaar" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> 5*4c295027SBram Moolenaar" Last Change: 2021 Apr 23 6071d4279SBram Moolenaar 7071d4279SBram Moolenaarif exists("b:did_ftplugin") | finish | endif 8071d4279SBram Moolenaarlet b:did_ftplugin = 1 9071d4279SBram Moolenaar 10*4c295027SBram Moolenaarlet s:cpo_save = &cpo 11*4c295027SBram Moolenaarset cpo&vim 128e5af3e5SBram Moolenaar 13*4c295027SBram Moolenaarset comments=s:(*,m:\ ,e:*),s:{,m:\ ,e:} 14*4c295027SBram Moolenaarset commentstring={%s} 15*4c295027SBram Moolenaar 16*4c295027SBram Moolenaarif exists("pascal_delphi") 17*4c295027SBram Moolenaar set comments+=:/// 18071d4279SBram Moolenaarendif 19071d4279SBram Moolenaar 20*4c295027SBram Moolenaarif !exists("pascal_traditional") 21*4c295027SBram Moolenaar set commentstring=//\ %s 22*4c295027SBram Moolenaar set comments+=:// 23*4c295027SBram Moolenaarendif 24*4c295027SBram Moolenaar 25*4c295027SBram Moolenaarsetlocal formatoptions-=t formatoptions+=croql 26*4c295027SBram Moolenaar 27*4c295027SBram Moolenaarif exists("loaded_matchit") 28*4c295027SBram Moolenaar let b:match_ignorecase = 1 " (Pascal is case-insensitive) 29*4c295027SBram Moolenaar 30*4c295027SBram Moolenaar let b:match_words = '\<\%(asm\|begin\|case\|\%(\%(=\|packed\)\s*\)\@<=\%(class\|object\)\|\%(=\s*\)\@<=interface\|record\|try\)\>' 31*4c295027SBram Moolenaar let b:match_words .= ':\%(^\s*\)\@<=\%(except\|finally\|else\|otherwise\)\>' 32*4c295027SBram Moolenaar let b:match_words .= ':\<end\>\.\@!' 33*4c295027SBram Moolenaar 34*4c295027SBram Moolenaar let b:match_words .= ',\<repeat\>:\<until\>' 35*4c295027SBram Moolenaar " let b:match_words .= ',\<if\>:\<else\>' " FIXME - else clashing with middle else. It seems like a debatable use anyway. 36*4c295027SBram Moolenaar let b:match_words .= ',\<unit\>:\<\%(\%(^\s*\)\@<=interface\|implementation\|initialization\|finalization\)\>:\<end\.' 37*4c295027SBram Moolenaarendif 38*4c295027SBram Moolenaar 39*4c295027SBram Moolenaarif (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") 40*4c295027SBram Moolenaar let b:browsefilter = "Pascal Source Files (*.pas *.pp *.inc)\t*.pas;*.pp;*.inc\n" . 41*4c295027SBram Moolenaar \ "All Files (*.*)\t*.*\n" 42*4c295027SBram Moolenaarendif 43*4c295027SBram Moolenaar 44*4c295027SBram Moolenaarlet b:undo_ftplugin = "setl fo< cms< com< " .. 45*4c295027SBram Moolenaar \ "| unlet! b:browsefilter b:match_words b:match_ignorecase" 46*4c295027SBram Moolenaar 47*4c295027SBram Moolenaarlet &cpo = s:cpo_save 48*4c295027SBram Moolenaarunlet s:cpo_save 49*4c295027SBram Moolenaar 50*4c295027SBram Moolenaar" vim: nowrap sw=2 sts=2 ts=8 noet: 51