diff options
Diffstat (limited to 'ftplugin')
126 files changed, 5415 insertions, 29 deletions
diff --git a/ftplugin/bdf.vim b/ftplugin/bdf.vim new file mode 100644 index 00000000..e18c493c --- /dev/null +++ b/ftplugin/bdf.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'bdf') == -1 + +" Vim filetype plugin file +" Language: BDF font definition +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=b:COMMENT commentstring=COMMENT\ %s +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/bst.vim b/ftplugin/bst.vim new file mode 100644 index 00000000..e4445546 --- /dev/null +++ b/ftplugin/bst.vim @@ -0,0 +1,19 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'bst') == -1 + +" Vim filetype plugin file +" Language: bst +" Author: Tim Pope <vimNOSPAM@tpope.info> +" $Id: bst.vim,v 1.1 2007/05/05 17:37:57 vimboss Exp $ + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +setlocal commentstring=%\ %s +setlocal comments=:% +setlocal fo-=t fo+=croql + +let b:undo_ftplugin = "setlocal com< cms< fo<" + +endif diff --git a/ftplugin/calendar.vim b/ftplugin/calendar.vim new file mode 100644 index 00000000..1ce0e41d --- /dev/null +++ b/ftplugin/calendar.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'calendar') == -1 + +" Vim filetype plugin file +" Language: calendar(1) input file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< inc< fo<" + +setlocal comments=s1:/*,mb:*,ex:*/ commentstring& include& +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/cdrdaoconf.vim b/ftplugin/cdrdaoconf.vim new file mode 100644 index 00000000..8b114fcb --- /dev/null +++ b/ftplugin/cdrdaoconf.vim @@ -0,0 +1,22 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cdrdaoconf') == -1 + +" Vim filetype plugin file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2007-12-04 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/cfg.vim b/ftplugin/cfg.vim new file mode 100644 index 00000000..6b4fb062 --- /dev/null +++ b/ftplugin/cfg.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cfg') == -1 + +" Vim filetype plugin file +" Language: Configuration File +" Maintainer: Christian Brabandt <cb@256bit.org> +" Latest Revision: 2018-12-24 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl cms< fo<" + +setlocal commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/ch.vim b/ftplugin/ch.vim new file mode 100644 index 00000000..71f4870b --- /dev/null +++ b/ftplugin/ch.vim @@ -0,0 +1,21 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ch') == -1 + +" Vim filetype plugin file +" Language: Ch +" Maintainer: SoftIntegration, Inc. <info@softintegration.com> +" URL: http://www.softintegration.com/download/vim/ftplugin/ch.vim +" Last change: 2004 May 16 +" Created based on cpp.vim +" +" Ch is a C/C++ interpreter with many high level extensions +" + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Behaves just like C +runtime! ftplugin/c.vim ftplugin/c_*.vim ftplugin/c/*.vim + +endif diff --git a/ftplugin/cobol.vim b/ftplugin/cobol.vim new file mode 100644 index 00000000..45050de2 --- /dev/null +++ b/ftplugin/cobol.vim @@ -0,0 +1,273 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cobol') == -1 + +" Vim filetype plugin file +" Language: cobol +" Maintainer: Ankit Jain <ajatkj@yahoo.co.in> +" (formerly Tim Pope <vimNOSPAM@tpope.info>) +" Last Update: By Ankit Jain (add gtk support) on 15.08.2020 + +" Insert mode mappings: <C-T> <C-D> <Tab> +" Normal mode mappings: < > << >> [[ ]] [] ][ +" Visual mode mappings: < > + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +setlocal commentstring=\ \ \ \ \ \ *%s +setlocal comments=:* +setlocal fo+=croqlt +setlocal expandtab +setlocal textwidth=72 + +" matchit support +if exists("loaded_matchit") + let s:ordot = '\|\ze\.\%( \@=\|$\)' + let b:match_ignorecase=1 + "let b:match_skip = 'getline(".") =~ "^.\\{6\\}[*/C]"' + let b:match_words= + \ '\$if\>:$else\>:\$endif\>,' . + \ '[$-]\@<!\<if\>:\<\%(then\|else\)\>:\<end-if\>'.s:ordot.',' . + \ '-\@<!\<perform\s\+\%(\d\+\s\+times\|until\|varying\|with\s\+test\)\>:\<end-perform\>'.s:ordot . ',' . + \ '-\@<!\<\%(search\|evaluate\)\>:\<\%(when\)\>:\<end-\%(search\|evaluate\)\>' .s:ordot . ',' . + \ '-\@<!\<\%(add\|compute\|divide\|multiply\|subtract\)\>\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(not\s\+\)\=on\s\+size\s\+error\>\)\)\@=:\%(\<not\s\+\)\@<!\<\%(not\s\+\)\=on\s\+size\s\+error\>:\<end-\%(add\|compute\|divide\|multiply\|subtract\)\>' .s:ordot . ',' . + \ '-\@<!\<\%(string\|unstring\|accept\|display\|call\)\>\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(not\s\+\)\=on\s\+\%(overflow\|exception\)\>\)\)\@=:\%(\<not\s\+\)\@<!\<\%(not\s\+\)\=on\s\+\%(overflow\|exception\)\>:\<end-\%(string\|unstring\|accept\|display\|call\)\>' .s:ordot . ',' . + \ '-\@<!\<\%(delete\|rewrite\|start\|write\|read\)\>\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(invalid\s\+key\|at\s\+end\|no\s\+data\|at\s\+end-of-page\)\>\)\)\@=:\%(\<not\s\+\)\@<!\<\%(not\s\+\)\=\%(invalid\s\+key\|at\s\+end\|no\s\+data\|at\s\+end-of-page\)\>:\<end-\%(delete\|rewrite\|start\|write\|read\)\>' .s:ordot +endif + +" add gtk support +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") + let b:browsefilter = "COBOL Source Files (*.cbl, *.cob)\t*.cbl;*.cob;*.lib\n". + \ "All Files (*.*)\t*.*\n" +endif + +let b:undo_ftplugin = "setlocal com< cms< fo< et< tw<" . + \ " | unlet! b:browsefilter b:match_words b:match_ignorecase b:match_skip" +if !exists("g:no_plugin_maps") && !exists("g:no_cobol_maps") + let b:undo_ftplugin = b:undo_ftplugin . + \ " | sil! exe 'nunmap <buffer> <'" . + \ " | sil! exe 'nunmap <buffer> >'" . + \ " | sil! exe 'nunmap <buffer> <<'" . + \ " | sil! exe 'nunmap <buffer> >>'" . + \ " | sil! exe 'vunmap <buffer> <'" . + \ " | sil! exe 'vunmap <buffer> >'" . + \ " | sil! exe 'iunmap <buffer> <C-D>'" . + \ " | sil! exe 'iunmap <buffer> <C-T>'" . + \ " | sil! exe 'iunmap <buffer> <Tab>'" . + \ " | sil! exe 'nunmap <buffer> <Plug>Traditional'" . + \ " | sil! exe 'nunmap <buffer> <Plug>Comment'" . + \ " | sil! exe 'nunmap <buffer> <Plug>DeComment'" . + \ " | sil! exe 'vunmap <buffer> <Plug>VisualTraditional'" . + \ " | sil! exe 'vunmap <buffer> <Plug>VisualComment'" . + \ " | sil! exe 'iunmap <buffer> <Plug>VisualDeComment'" . + \ " | sil! exe 'unmap <buffer> [['" . + \ " | sil! exe 'unmap <buffer> ]]'" . + \ " | sil! exe 'unmap <buffer> []'" . + \ " | sil! exe 'unmap <buffer> ]['" +endif + +if !exists("g:no_plugin_maps") && !exists("g:no_cobol_maps") + if version >= 700 + nnoremap <silent> <buffer> > :set opfunc=<SID>IncreaseFunc<CR>g@ + nnoremap <silent> <buffer> < :set opfunc=<SID>DecreaseFunc<CR>g@ + endif + nnoremap <silent> <buffer> >> :call CobolIndentBlock(1)<CR> + nnoremap <silent> <buffer> << :call CobolIndentBlock(-1)<CR> + vnoremap <silent> <buffer> > :call CobolIndentBlock(v:count1)<CR> + vnoremap <silent> <buffer> < :call CobolIndentBlock(-v:count1)<CR> + inoremap <silent> <buffer> <C-T> <C-R>=<SID>IncreaseIndent()<CR><C-R>=<SID>RestoreShiftwidth()<CR> + inoremap <silent> <buffer> <C-D> <C-R>=<SID>DecreaseIndent()<CR><C-R>=<SID>RestoreShiftwidth()<CR> + if !maparg("<Tab>","i") + inoremap <silent> <buffer> <Tab> <C-R>=<SID>Tab()<CR><C-R>=<SID>RestoreShiftwidth()<CR> + endif + noremap <silent> <buffer> [[ m':call search('\c^\%(\s*\<Bar>.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\<Bar>section\)\s*\.','bW')<CR> + noremap <silent> <buffer> ]] m':call search('\c^\%(\s*\<Bar>.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\<Bar>section\)\.','W')<CR> + noremap <silent> <buffer> [] m':call <SID>toend('b')<CR> + noremap <silent> <buffer> ][ m':call <SID>toend('')<CR> + " For EnhancedCommentify + noremap <silent> <buffer> <Plug>Traditional :call <SID>Comment('t')<CR> + noremap <silent> <buffer> <Plug>Comment :call <SID>Comment('c')<CR> + noremap <silent> <buffer> <Plug>DeComment :call <SID>Comment('u')<CR> + noremap <silent> <buffer> <Plug>VisualTraditional :'<,'>call <SID>Comment('t')<CR> + noremap <silent> <buffer> <Plug>VisualComment :'<,'>call <SID>Comment('c')<CR> + noremap <silent> <buffer> <Plug>VisualDeComment :'<,'>call <SID>Comment('u')<CR> +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +if exists("g:did_cobol_ftplugin_functions") + finish +endif +let g:did_cobol_ftplugin_functions = 1 + +function! s:repeat(str,count) + let i = 0 + let ret = "" + while i < a:count + let ret = ret . a:str + let i = i + 1 + endwhile + return ret +endfunction + +function! s:increase(...) + let lnum = '.' + let sw = shiftwidth() + let i = a:0 ? a:1 : indent(lnum) + if i >= 11 + return sw - (i - 11) % sw + elseif i >= 7 + return 11-i + elseif i == 6 + return 1 + else + return 6-i + endif +endfunction + +function! s:decrease(...) + let lnum = '.' + let sw = shiftwidth() + let i = indent(a:0 ? a:1 : lnum) + if i >= 11 + sw + return 1 + (i + 12) % sw + elseif i > 11 + return i-11 + elseif i > 7 + return i-7 + elseif i == 7 + return 1 + else + return i + endif +endfunction + +function! CobolIndentBlock(shift) + let head = strpart(getline('.'),0,7) + let tail = strpart(getline('.'),7) + let indent = match(tail,'[^ ]') + let sw = shiftwidth() + let shift = a:shift + if shift > 0 + if indent < 4 + let tail = s:repeat(" ",4-indent).tail + let shift = shift - 1 + endif + let tail = s:repeat(" ",shift*sw).tail + let shift = 0 + elseif shift < 0 + if (indent-4) > -shift * sw + let tail = strpart(tail,-shift * sw) + elseif (indent-4) > (-shift-1) * sw + let tail = strpart(tail,indent - 4) + else + let tail = strpart(tail,indent) + endif + endif + call setline('.',head.tail) +endfunction + +function! s:IncreaseFunc(type) + '[,']call CobolIndentBlock(1) +endfunction + +function! s:DecreaseFunc(type) + '[,']call CobolIndentBlock(-1) +endfunction + +function! s:IncreaseIndent() + let c = "\<C-T>" + if exists("*InsertCtrlTWrapper") + let key = InsertCtrlTWrapper() + if key != c + return key + endif + endif + let interval = s:increase() + let b:cobol_shiftwidth = &shiftwidth + let &shiftwidth = 1 + let lastchar = strpart(getline('.'),col('.')-2,1) + if lastchar == '0' || lastchar == '^' + return "\<BS>".lastchar.c + else + return s:repeat(c,interval) + endif +endfunction + +function! s:DecreaseIndent() + let c = "\<C-D>" + if exists("*InsertCtrlDWrapper") + " I hack Ctrl-D to delete when not at the end of the line. + let key = InsertCtrlDWrapper() + if key != c + return key + endif + endif + let interval = s:decrease() + let b:cobol_shiftwidth = &shiftwidth + let &shiftwidth = 1 + return s:repeat(c,interval) +endfunction + +function! s:RestoreShiftwidth() + if exists("b:cobol_shiftwidth") + let &shiftwidth=b:cobol_shiftwidth + unlet b:cobol_shiftwidth + endif + return "" +endfunction + +function! s:Tab() + if (strpart(getline('.'),0,col('.')-1) =~ '^\s*$' && &sta) + return s:IncreaseIndent() + " &softtabstop < 0: &softtabstop follows &shiftwidth + elseif (&sts < 0 || &sts == shiftwidth()) && &sts != 8 && &et + return s:repeat(" ",s:increase(col('.')-1)) + else + return "\<Tab>" + endif +endfunction + +function! s:Comment(arg) + " For EnhancedCommentify + let line = getline('.') + if (line =~ '^.\{6\}[*/C]' || a:arg == 'c') && a:arg != 'u' + let line = substitute(line,'^.\{6\}\zs.',' ','') + else + let line = substitute(line,'^.\{6\}\zs.','*','') + endif + call setline('.',line) +endfunction + +function! s:toend(direction) + let ignore = '^\(\s*\|.\{6\}\)\%([*/]\|\s*$\)' + let keep = line('.') + keepjumps + + while line('.') < line('$') && getline('.') =~ ignore + keepjumps + + endwhile + let res = search('\c^\%(\s*\|.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\|section\)\s*\.',a:direction.'W') + if a:direction != 'b' && !res + let res = line('$') + keepjumps $ + elseif res + keepjumps - + endif + if res + while line('.') > 1 && getline('.') =~ ignore + keepjumps - + endwhile + if line('.') == 1 && getline('.') =~ ignore + exe "keepjumps ".keep + endif + else + exe "keepjumps ".keep + endif +endfunction + +endif diff --git a/ftplugin/config.vim b/ftplugin/config.vim new file mode 100644 index 00000000..d6a4281b --- /dev/null +++ b/ftplugin/config.vim @@ -0,0 +1,46 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'config') == -1 + +" Vim filetype plugin file +" Language: config +" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> +" Last Changed: 20 Jan 2009 +" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin + +if exists("b:did_ftplugin") | finish | endif + +" Make sure the continuation lines below do not cause problems in +" compatibility mode. +let s:save_cpo = &cpo +set cpo-=C + +" Define some defaults in case the included ftplugins don't set them. +let s:undo_ftplugin = "" +let s:browsefilter = "Bourne Shell Files (*.sh)\t*.sh\n" . + \ "All Files (*.*)\t*.*\n" +let s:match_words = "" + +runtime! ftplugin/sh.vim ftplugin/sh_*.vim ftplugin/sh/*.vim +let b:did_ftplugin = 1 + +" Override our defaults if these were set by an included ftplugin. +if exists("b:undo_ftplugin") + let s:undo_ftplugin = b:undo_ftplugin +endif +if exists("b:browsefilter") + let s:browsefilter = b:browsefilter +endif + +" Change the :browse e filter to primarily show configure-related files. +if has("gui_win32") + let b:browsefilter="Configure Scripts (configure.*, config.*)\tconfigure*;config.*\n" . + \ s:browsefilter +endif + +" Undo the stuff we changed. +let b:undo_ftplugin = "unlet! b:browsefilter | " . b:undo_ftplugin + +" Restore the saved compatibility options. +let &cpo = s:save_cpo +unlet s:save_cpo + +endif diff --git a/ftplugin/context.vim b/ftplugin/context.vim new file mode 100644 index 00000000..2e68ecfc --- /dev/null +++ b/ftplugin/context.vim @@ -0,0 +1,106 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'context') == -1 + +" Vim filetype plugin file +" Language: ConTeXt typesetting engine +" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com> +" Former Maintainers: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2016 Oct 30 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +if !exists('current_compiler') + compiler context +endif + +let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo< ofu<" + \ . "| unlet! b:match_ignorecase b:match_words b:match_skip" + +setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tjcroql2 +if get(b:, 'context_metapost', get(g:, 'context_metapost', 1)) + setlocal omnifunc=contextcomplete#Complete + let g:omni_syntax_group_include_context = 'mf\w\+,mp\w\+' + let g:omni_syntax_group_exclude_context = 'mfTodoComment' +endif + +let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\=' + \ . 'def\|\\font\|\\\%(future\)\=let' + \ . '\|\\new\%(count\|dimen\|skip\|muskip\|box\|toks\|read\|write' + \ . '\|fam\|insert\|if\)' + +let &l:include = '^\s*\\\%(input\|component\|product\|project\|environment\)' + +setlocal suffixesadd=.tex + +if exists("loaded_matchit") + let b:match_ignorecase = 0 + let b:match_skip = 'r:\\\@<!\%(\\\\\)*%' + let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],' . + \ '\\start\(\a\+\):\\stop\1' +endif + +let s:context_regex = { + \ 'beginsection' : '\\\%(start\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>', + \ 'endsection' : '\\\%(stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>', + \ 'beginblock' : '\\\%(start\|setup\|define\)', + \ 'endblock' : '\\\%(stop\|setup\|define\)' + \ } + +function! s:move_around(count, what, flags, visual) + if a:visual + exe "normal! gv" + endif + call search(s:context_regex[a:what], a:flags.'s') " 's' sets previous context mark + call map(range(2, a:count), 'search(s:context_regex[a:what], a:flags)') +endfunction + +" Move around macros. +nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR> +vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR> +nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR> +vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR> +nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR> +vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR> +nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR> +vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR> +nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR> +vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR> +nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR> +vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR> + +" Other useful mappings +if get(g:, 'context_mappings', 1) + let s:tp_regex = '?^$\|^\s*\\\(item\|start\|stop\|blank\|\%(sub\)*section\|chapter\|\%(sub\)*subject\|title\|part\)' + + fun! s:tp() + call cursor(search(s:tp_regex, 'bcW') + 1, 1) + normal! V + call cursor(search(s:tp_regex, 'W') - 1, 1) + endf + + " Reflow paragraphs with commands like gqtp ("gq TeX paragraph") + onoremap <silent><buffer> tp :<c-u>call <sid>tp()<cr> + " Select TeX paragraph + vnoremap <silent><buffer> tp <esc>:<c-u>call <sid>tp()<cr> + + " $...$ text object + onoremap <silent><buffer> i$ :<c-u>normal! T$vt$<cr> + onoremap <silent><buffer> a$ :<c-u>normal! F$vf$<cr> + vnoremap <buffer> i$ T$ot$ + vnoremap <buffer> a$ F$of$ +endif + +" Commands for asynchronous typesetting +command! -buffer -nargs=? -complete=file ConTeXt call context#typeset(<q-args>) +command! -nargs=0 ConTeXtJobStatus call context#job_status() +command! -nargs=0 ConTeXtStopJobs call context#stop_jobs() + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/crm.vim b/ftplugin/crm.vim new file mode 100644 index 00000000..f5a6268d --- /dev/null +++ b/ftplugin/crm.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crm') == -1 + +" Vim filetype plugin file +" Language: CRM114 +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/cs.vim b/ftplugin/cs.vim new file mode 100644 index 00000000..46d26f55 --- /dev/null +++ b/ftplugin/cs.vim @@ -0,0 +1,33 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cs') == -1 + +" Vim filetype plugin file +" Language: C# +" Maintainer: Johannes Zellner <johannes@zellner.org> +" Last Change: Tue, 09 Mar 2004 14:09:33 CET + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 +let s:keepcpo= &cpo +set cpo&vim + +" Set 'formatoptions' to break comment lines but not other lines, +" and insert the comment leader when hitting <CR> or using "o". +setlocal fo-=t fo+=croql + +" Set 'comments' to format dashed lists in comments. +setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,:// + +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "C# Source Files (*.cs)\t*.cs\n" . + \ "All Files (*.*)\t*.*\n" +endif + +let &cpo = s:keepcpo +unlet s:keepcpo + +endif diff --git a/ftplugin/csc.vim b/ftplugin/csc.vim new file mode 100644 index 00000000..e992f438 --- /dev/null +++ b/ftplugin/csc.vim @@ -0,0 +1,31 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'csc') == -1 + +" Vim filetype plugin file +" Language: csc +" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> +" Last Changed: 20 Jan 2009 +" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin + +if exists("b:did_ftplugin") | finish | endif +let b:did_ftplugin = 1 + +" Make sure the continuation lines below do not cause problems in +" compatibility mode. +let s:save_cpo = &cpo +set cpo-=C + +if exists("loaded_matchit") + let b:match_words= + \ '\<fix\>:\<endfix\>,' . + \ '\<if\>:\<else\%(if\)\=\>:\<endif\>,' . + \ '\<!loopondimensions\>\|\<!looponselected\>:\<!endloop\>' +endif + +" Undo the stuff we changed. +let b:undo_ftplugin = "unlet! b:match_words" + +" Restore the saved compatibility options. +let &cpo = s:save_cpo +unlet s:save_cpo + +endif diff --git a/ftplugin/css.vim b/ftplugin/css.vim new file mode 100644 index 00000000..47db09cd --- /dev/null +++ b/ftplugin/css.vim @@ -0,0 +1,28 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'css') == -1 + +" Vim filetype plugin file +" Language: CSS +" Maintainer: Doug Kearns <dougkearns@gmail.com> +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< inc< fo< ofu<" + +setlocal comments=s1:/*,mb:*,ex:*/ commentstring& +setlocal formatoptions-=t formatoptions+=croql +setlocal omnifunc=csscomplete#CompleteCSS + +let &l:include = '^\s*@import\s\+\%(url(\)\=' + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/cvsrc.vim b/ftplugin/cvsrc.vim new file mode 100644 index 00000000..b408fdb1 --- /dev/null +++ b/ftplugin/cvsrc.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cvsrc') == -1 + +" Vim filetype plugin file +" Language: cvs(1) RC file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments= commentstring= formatoptions-=tcroql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/debchangelog.vim b/ftplugin/debchangelog.vim new file mode 100644 index 00000000..261af91c --- /dev/null +++ b/ftplugin/debchangelog.vim @@ -0,0 +1,387 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'debchangelog') == -1 + +" Vim filetype plugin file (GUI menu, folding and completion) +" Language: Debian Changelog +" Maintainer: Debian Vim Maintainers +" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de> +" Stefano Zacchiroli <zack@debian.org> +" Last Change: 2018-01-28 +" License: Vim License +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debchangelog.vim + +" Bug completion requires apt-listbugs installed for Debian packages or +" python-launchpadlib installed for Ubuntu packages + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin=1 + +" {{{1 Local settings (do on every load) +if exists('g:debchangelog_fold_enable') + setlocal foldmethod=expr + setlocal foldexpr=DebGetChangelogFold(v:lnum) + setlocal foldtext=DebChangelogFoldText() +endif + +" Debian changelogs are not supposed to have any other text width, +" so the user cannot override this setting +setlocal tw=78 +setlocal comments=f:* + +" Clean unloading +let b:undo_ftplugin = 'setlocal tw< comments< foldmethod< foldexpr< foldtext<' +" }}}1 + +if exists('g:did_changelog_ftplugin') + finish +endif + +" Don't load another plugin (this is global) +let g:did_changelog_ftplugin = 1 + +" {{{1 GUI menu + +" Helper functions returning various data. +" Returns full name, either from $DEBFULLNAME or debianfullname. +" TODO Is there a way to determine name from anywhere else? +function <SID>FullName() + if exists('$DEBFULLNAME') + return $DEBFULLNAME + elseif exists('g:debianfullname') + return g:debianfullname + else + return 'Your Name' + endif +endfunction + +" Returns email address, from $DEBEMAIL, $EMAIL or debianemail. +function <SID>Email() + if exists('$DEBEMAIL') + return $DEBEMAIL + elseif exists('$EMAIL') + return $EMAIL + elseif exists('g:debianemail') + return g:debianemail + else + return 'your@email.address' + endif +endfunction + +" Returns date in RFC822 format. +function <SID>Date() + let savelang = v:lc_time + execute 'language time C' + let dateandtime = strftime('%a, %d %b %Y %X %z') + execute 'language time ' . savelang + return dateandtime +endfunction + +function <SID>WarnIfNotUnfinalised() + if match(getline('.'), ' -- [[:alpha:]][[:alnum:].]')!=-1 + echohl WarningMsg + echo 'The entry has not been unfinalised before editing.' + echohl None + return 1 + endif + return 0 +endfunction + +function <SID>Finalised() + let savelinenum = line('.') + 1 + call search('^ -- ') + if match(getline('.'), ' -- [[:alpha:]][[:alnum:].]')!=-1 + let returnvalue = 1 + else + let returnvalue = 0 + endif + execute savelinenum + return returnvalue +endfunction + +" These functions implement the menus +function NewVersion() + " The new entry is unfinalised and shall be changed + amenu disable Changelog.New\ Version + amenu enable Changelog.Add\ Entry + amenu enable Changelog.Close\ Bug + amenu enable Changelog.Set\ Distribution + amenu enable Changelog.Set\ Urgency + amenu disable Changelog.Unfinalise + amenu enable Changelog.Finalise + call append(0, substitute(getline(1), '-\([[:digit:]]\+\))', '-$$\1)', '')) + call append(1, '') + call append(2, '') + call append(3, ' -- ') + call append(4, '') + call Urgency('low') + normal! 1G0 + call search(')') + normal! h + normal! + call setline(1, substitute(getline(1), '-\$\$', '-', '')) + if exists('g:debchangelog_fold_enable') + foldopen + endif + call AddEntry() +endfunction + +function AddEntry() + 1 + call search('^ -- ') + .-2 + call append('.', ' * ') + .+3 + let warn=<SID>WarnIfNotUnfinalised() + .-2 + if warn + echohl MoreMsg + call input('Hit ENTER') + echohl None + endif + startinsert! +endfunction + +function CloseBug() + 1 + call search('^ -- ') + let warn=<SID>WarnIfNotUnfinalised() + .-2 + call append('.', ' * (closes: #' . input('Bug number to close: ') . ')') + normal! j^ll + startinsert +endfunction + +function Distribution(dist) + call setline(1, substitute(getline(1), ') *\%(UNRELEASED\|\l\+\);', ') ' . a:dist . ';', '')) +endfunction + +function Urgency(urg) + call setline(1, substitute(getline(1), 'urgency=.*$', 'urgency=' . a:urg, '')) +endfunction + +function <SID>UnfinaliseMenu() + " This means the entry shall be changed + amenu disable Changelog.New\ Version + amenu enable Changelog.Add\ Entry + amenu enable Changelog.Close\ Bug + amenu enable Changelog.Set\ Distribution + amenu enable Changelog.Set\ Urgency + amenu disable Changelog.Unfinalise + amenu enable Changelog.Finalise +endfunction + +function Unfinalise() + call <SID>UnfinaliseMenu() + 1 + call search('^ -- ') + call setline('.', ' -- ') +endfunction + +function <SID>FinaliseMenu() + " This means the entry should not be changed anymore + amenu enable Changelog.New\ Version + amenu disable Changelog.Add\ Entry + amenu disable Changelog.Close\ Bug + amenu disable Changelog.Set\ Distribution + amenu disable Changelog.Set\ Urgency + amenu enable Changelog.Unfinalise + amenu disable Changelog.Finalise +endfunction + +function Finalise() + call <SID>FinaliseMenu() + 1 + call search('^ -- ') + call setline('.', ' -- ' . <SID>FullName() . ' <' . <SID>Email() . '> ' . <SID>Date()) +endfunction + + +function <SID>MakeMenu() + amenu &Changelog.&New\ Version :call NewVersion()<CR> + amenu Changelog.&Add\ Entry :call AddEntry()<CR> + amenu Changelog.&Close\ Bug :call CloseBug()<CR> + menu Changelog.-sep- <nul> + + amenu Changelog.Set\ &Distribution.&unstable :call Distribution("unstable")<CR> + amenu Changelog.Set\ Distribution.&frozen :call Distribution("frozen")<CR> + amenu Changelog.Set\ Distribution.&stable :call Distribution("stable")<CR> + menu Changelog.Set\ Distribution.-sep- <nul> + amenu Changelog.Set\ Distribution.frozen\ unstable :call Distribution("frozen unstable")<CR> + amenu Changelog.Set\ Distribution.stable\ unstable :call Distribution("stable unstable")<CR> + amenu Changelog.Set\ Distribution.stable\ frozen :call Distribution("stable frozen")<CR> + amenu Changelog.Set\ Distribution.stable\ frozen\ unstable :call Distribution("stable frozen unstable")<CR> + + amenu Changelog.Set\ &Urgency.&low :call Urgency("low")<CR> + amenu Changelog.Set\ Urgency.&medium :call Urgency("medium")<CR> + amenu Changelog.Set\ Urgency.&high :call Urgency("high")<CR> + + menu Changelog.-sep- <nul> + amenu Changelog.U&nfinalise :call Unfinalise()<CR> + amenu Changelog.&Finalise :call Finalise()<CR> + + if <SID>Finalised() + call <SID>FinaliseMenu() + else + call <SID>UnfinaliseMenu() + endif +endfunction + +augroup changelogMenu +au BufEnter * if &filetype == "debchangelog" | call <SID>MakeMenu() | endif +au BufLeave * if &filetype == "debchangelog" | silent! aunmenu Changelog | endif +augroup END + +" }}} +" {{{1 folding + +" look for an author name in the [zonestart zoneend] lines searching backward +function! s:getAuthor(zonestart, zoneend) + let linepos = a:zoneend + while linepos >= a:zonestart + let line = getline(linepos) + if line =~# '^ --' + return substitute(line, '^ --\s*\([^<]\+\)\s*.*', '\1', '') + endif + let linepos -= 1 + endwhile + return '[unknown]' +endfunction + +" Look for a package source name searching backward from the givenline and +" returns it. Return the empty string if the package name can't be found +function! DebGetPkgSrcName(lineno) + let lineidx = a:lineno + let pkgname = '' + while lineidx > 0 + let curline = getline(lineidx) + if curline =~# '^\S' + let pkgname = matchlist(curline, '^\(\S\+\).*$')[1] + break + endif + let lineidx = lineidx - 1 + endwhile + return pkgname +endfunction + +function! DebChangelogFoldText() + if v:folddashes ==# '-' " changelog entry fold + return foldtext() . ' -- ' . s:getAuthor(v:foldstart, v:foldend) . ' ' + endif + return foldtext() +endfunction + +function! DebGetChangelogFold(lnum) + let line = getline(a:lnum) + if line =~# '^\w\+' + return '>1' " beginning of a changelog entry + endif + if line =~# '^\s\+\[.*\]' + return '>2' " beginning of an author-specific chunk + endif + if line =~# '^ --' + return '1' + endif + return '=' +endfunction + +if exists('g:debchangelog_fold_enable') + silent! foldopen! " unfold the entry the cursor is on (usually the first one) +endif + +" }}} + +" {{{1 omnicompletion for Closes: # + +if !exists('g:debchangelog_listbugs_severities') + let g:debchangelog_listbugs_severities = 'critical,grave,serious,important,normal,minor,wishlist' +endif + +fun! DebCompleteBugs(findstart, base) + if a:findstart + let line = getline('.') + + " try to detect whether this is closes: or lp: + let g:debchangelog_complete_mode = 'debbugs' + let try_colidx = col('.') - 1 + let colidx = -1 " default to no-completion-possible + + while try_colidx > 0 && line[try_colidx - 1] =~# '\s\|\d\|#\|,\|:' + let try_colidx = try_colidx - 1 + if line[try_colidx] ==# '#' && colidx == -1 + " found hash, where we complete from: + let colidx = try_colidx + elseif line[try_colidx] ==# ':' + if try_colidx > 1 && strpart(line, try_colidx - 2, 3) =~? '\clp:' + let g:debchangelog_complete_mode = 'lp' + endif + break + endif + endwhile + return colidx + else " return matches: + let bug_lines = [] + if g:debchangelog_complete_mode ==? 'lp' + if ! has('python') + echoerr 'vim must be built with Python support to use LP bug completion' + return + endif + let pkgsrc = DebGetPkgSrcName(line('.')) + python << EOF +import vim +try: + from launchpadlib.launchpad import Launchpad + from lazr.restfulclient.errors import HTTPError + # login anonymously + lp = Launchpad.login_anonymously('debchangelog.vim', 'production') + ubuntu = lp.distributions['ubuntu'] + try: + sp = ubuntu.getSourcePackage(name=vim.eval('pkgsrc')) + status = ('New', 'Incomplete', 'Confirmed', 'Triaged', + 'In Progress', 'Fix Committed') + tasklist = sp.searchTasks(status=status, order_by='id') + liststr = '[' + for task in tasklist: + bug = task.bug + liststr += "'#%d - %s'," % (bug.id, bug.title.replace('\'', '\'\'')) + liststr += ']' + vim.command('silent let bug_lines = %s' % liststr.encode('utf-8')) + except HTTPError: + pass +except ImportError: + vim.command('echoerr \'python-launchpadlib >= 1.5.4 needs to be installed to use Launchpad bug completion\'') +EOF + else + if ! filereadable('/usr/sbin/apt-listbugs') + echoerr 'apt-listbugs not found, you should install it to use Closes bug completion' + return + endif + let pkgsrc = DebGetPkgSrcName(line('.')) + let listbugs_output = system('/usr/sbin/apt-listbugs -s ' . g:debchangelog_listbugs_severities . ' list ' . pkgsrc . ' | grep "^ #" 2> /dev/null') + let bug_lines = split(listbugs_output, '\n') + endif + let completions = [] + for line in bug_lines + let parts = matchlist(line, '^\s*\(#\S\+\)\s*-\s*\(.*\)$') + " filter only those which match a:base: + if parts[1] !~ '^' . a:base + continue + endif + let completion = {} + let completion['word'] = parts[1] + let completion['menu'] = parts[2] + let completion['info'] = parts[0] + let completions += [completion] + endfor + return completions + endif +endfun + +setlocal omnifunc=DebCompleteBugs + +" }}} + +" vim: set foldmethod=marker: + +endif diff --git a/ftplugin/debcontrol.vim b/ftplugin/debcontrol.vim new file mode 100644 index 00000000..47128050 --- /dev/null +++ b/ftplugin/debcontrol.vim @@ -0,0 +1,74 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'debcontrol') == -1 + +" Vim filetype plugin file (GUI menu and folding) +" Language: Debian control files +" Maintainer: Debian Vim Maintainers +" Former Maintainer: Pierre Habouzit <madcoder@debian.org> +" Last Change: 2018-01-28 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debcontrol.vim + +" Do these settings once per buffer +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin=1 + +" {{{1 Local settings (do on every load) +if exists('g:debcontrol_fold_enable') + setlocal foldmethod=expr + setlocal foldexpr=DebControlFold(v:lnum) + setlocal foldtext=DebControlFoldText() +endif +setlocal textwidth=0 + +" Clean unloading +let b:undo_ftplugin = 'setlocal tw< foldmethod< foldexpr< foldtext<' + +" }}}1 + +" {{{1 folding + +function! s:getField(f, lnum) + let line = getline(a:lnum) + let fwdsteps = 0 + while line !~ '^'.a:f.':' + let fwdsteps += 1 + let line = getline(a:lnum + fwdsteps) + if line ==# '' + return 'unknown' + endif + endwhile + return substitute(line, '^'.a:f.': *', '', '') +endfunction + +function! DebControlFoldText() + if v:folddashes ==# '-' " debcontrol entry fold + let type = substitute(getline(v:foldstart), ':.*', '', '') + if type ==# 'Source' + let ftext = substitute(foldtext(), ' *Source: *', ' ', '') + return ftext . ' -- ' . s:getField('Maintainer', v:foldstart) . ' ' + endif + let arch = s:getField('Architecture', v:foldstart) + let ftext = substitute(foldtext(), ' *Package: *', ' [' . arch . '] ', '') + return ftext . ': ' . s:getField('Description', v:foldstart) . ' ' + endif + return foldtext() +endfunction + +function! DebControlFold(l) + + " This is for not merging blank lines around folds to them + if getline(a:l) =~# '^Source:' + return '>1' + endif + + if getline(a:l) =~# '^Package:' + return '>1' + endif + + return '=' +endfunction + +" }}}1 + +endif diff --git a/ftplugin/denyhosts.vim b/ftplugin/denyhosts.vim new file mode 100644 index 00000000..9b5cbba3 --- /dev/null +++ b/ftplugin/denyhosts.vim @@ -0,0 +1,22 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'denyhosts') == -1 + +" Vim filetype plugin file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2007-12-04 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/dictconf.vim b/ftplugin/dictconf.vim new file mode 100644 index 00000000..0ac9a9f4 --- /dev/null +++ b/ftplugin/dictconf.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dictconf') == -1 + +" Vim filetype plugin file +" Language: dict(1) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/dictdconf.vim b/ftplugin/dictdconf.vim new file mode 100644 index 00000000..df6226c3 --- /dev/null +++ b/ftplugin/dictdconf.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dictdconf') == -1 + +" Vim filetype plugin file +" Language: dictd(8) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/diff.vim b/ftplugin/diff.vim new file mode 100644 index 00000000..8b7d0551 --- /dev/null +++ b/ftplugin/diff.vim @@ -0,0 +1,22 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'diff') == -1 + +" Vim filetype plugin file +" Language: Diff +" Maintainer: Bram Moolenaar <Bram@vim.org> +" Last Change: 2020 Jul 18 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl modeline<" + +" Don't use modelines in a diff, they apply to the diffed file +setlocal nomodeline + +" If there are comments they start with # +let &commentstring = "# %s" + +endif diff --git a/ftplugin/dircolors.vim b/ftplugin/dircolors.vim new file mode 100644 index 00000000..9e2ef46a --- /dev/null +++ b/ftplugin/dircolors.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dircolors') == -1 + +" Vim filetype plugin file +" Language: dircolors(1) input file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/dosbatch.vim b/ftplugin/dosbatch.vim new file mode 100644 index 00000000..b846f4f5 --- /dev/null +++ b/ftplugin/dosbatch.vim @@ -0,0 +1,44 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dosbatch') == -1 + +" Vim filetype plugin file +" Language: MS-DOS .bat files +" Maintainer: Mike Williams <mrw@eandem.co.uk> +" Last Change: 7th May 2020 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +" BAT comment formatting +setlocal comments=b:rem,b:@rem,b:REM,b:@REM,::: +setlocal commentstring=::\ %s +setlocal formatoptions-=t formatoptions+=rol + +" Lookup DOS keywords using Windows command help. +if executable('help.exe') + if has('terminal') + setlocal keywordprg=:term\ help.exe + else + setlocal keywordprg=help.exe + endif +endif + +" Define patterns for the browse file filter +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "DOS Batch Files (*.bat, *.cmd)\t*.bat;*.cmd\nAll Files (*.*)\t*.*\n" +endif + +let b:undo_ftplugin = "setlocal comments< formatoptions< keywordprg<" + \ . "| unlet! b:browsefiler" + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/dtd.vim b/ftplugin/dtd.vim new file mode 100644 index 00000000..d2c4876e --- /dev/null +++ b/ftplugin/dtd.vim @@ -0,0 +1,44 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dtd') == -1 + +" Vim filetype plugin file +" Language: dtd +" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> +" Last Changed: 20 Jan 2009 +" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin + +if exists("b:did_ftplugin") | finish | endif +let b:did_ftplugin = 1 + +" Make sure the continuation lines below do not cause problems in +" compatibility mode. +let s:save_cpo = &cpo +set cpo-=C + +setlocal commentstring=<!--%s--> +setlocal comments=s:<!--,m:\ \ \ \ \ ,e:--> + +setlocal formatoptions-=t +if !exists("g:ft_dtd_autocomment") || (g:ft_dtd_autocomment == 1) + setlocal formatoptions+=croql +endif + +if exists("loaded_matchit") + let b:match_words = '<!--:-->,<!:>' +endif + +" Change the :browse e filter to primarily show Java-related files. +if has("gui_win32") + let b:browsefilter="DTD Files (*.dtd)\t*.dtd\n" . + \ "XML Files (*.xml)\t*.xml\n" . + \ "All Files (*.*)\t*.*\n" +endif + +" Undo the stuff we changed. +let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" . + \ " | unlet! b:matchwords b:browsefilter" + +" Restore the saved compatibility options. +let &cpo = s:save_cpo +unlet s:save_cpo + +endif diff --git a/ftplugin/elinks.vim b/ftplugin/elinks.vim new file mode 100644 index 00000000..8e2611dc --- /dev/null +++ b/ftplugin/elinks.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'elinks') == -1 + +" Vim filetype plugin file +" Language: elinks(1) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/eterm.vim b/ftplugin/eterm.vim new file mode 100644 index 00000000..3211c867 --- /dev/null +++ b/ftplugin/eterm.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'eterm') == -1 + +" Vim filetype plugin file +" Language: eterm(1) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< inc< fo<" + +setlocal comments=:# commentstring=#\ %s include=^\\s*include +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/falcon.vim b/ftplugin/falcon.vim new file mode 100644 index 00000000..f0735dd5 --- /dev/null +++ b/ftplugin/falcon.vim @@ -0,0 +1,52 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'falcon') == -1 + +" Vim filetype plugin file +" Language: Falcon +" Author: Steven Oliver <oliver.steven@gmail.com> +" Copyright: Copyright (c) 2009-2013 Steven Oliver +" License: You may redistribute this under the same terms as Vim itself +" -------------------------------------------------------------------------- + +" Only do this when not done yet for this buffer +if (exists("b:did_ftplugin")) + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +setlocal softtabstop=4 shiftwidth=4 fileencoding=utf-8 +setlocal suffixesadd=.fal,.ftd + +" Matchit support +if exists("loaded_matchit") && !exists("b:match_words") + let b:match_ignorecase = 0 + + let b:match_words = + \ '\<\%(if\|case\|while\|until\|for\|do\|class\)\>=\@!' . + \ ':' . + \ '\<\%(else\|elsif\|when\)\>' . + \ ':' . + \ '\<end\>' . + \ ',{:},\[:\],(:)' +endif + +setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// + +" Windows allows you to filter the open file dialog +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "Falcon Source Files (*.fal *.ftd)\t*.fal;*.ftd\n" . + \ "All Files (*.*)\t*.*\n" +endif + +let b:undo_ftplugin = "setlocal tabstop< shiftwidth< expandtab< fileencoding<" + \ . " suffixesadd< comments<" + \ . "| unlet! b:browsefiler" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: set sw=4 sts=4 et tw=80 : + +endif diff --git a/ftplugin/fetchmail.vim b/ftplugin/fetchmail.vim new file mode 100644 index 00000000..2001caad --- /dev/null +++ b/ftplugin/fetchmail.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fetchmail') == -1 + +" Vim filetype plugin file +" Language: fetchmail(1) RC File +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/fortran.vim b/ftplugin/fortran.vim new file mode 100644 index 00000000..7b8a1fb1 --- /dev/null +++ b/ftplugin/fortran.vim @@ -0,0 +1,137 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fortran') == -1 + +" Vim settings file +" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, 77, 66) +" Version: 0.50 +" Last Change: 2020 Apr 20 +" Patched By: Eisuke Kawashima +" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/> +" Usage: For instructions, do :help fortran-plugin from Vim +" Credits: +" Useful suggestions were made by Stefano Zacchiroli, Hendrik Merx, Ben +" Fritz, and David Barnett. + +" Only do these settings when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +let s:cposet=&cpoptions +set cpoptions&vim + +" Don't do other file type settings for this buffer +let b:did_ftplugin = 1 + +" Determine whether this is a fixed or free format source file +" if this hasn't been done yet using the priority: +" buffer-local value +" > global value +" > file extension as in Intel ifort, gcc (gfortran), NAG, Pathscale, and Cray compilers +if !exists("b:fortran_fixed_source") + if exists("fortran_free_source") + " User guarantees free source form + let b:fortran_fixed_source = 0 + elseif exists("fortran_fixed_source") + " User guarantees fixed source form + let b:fortran_fixed_source = 1 + elseif expand("%:e") =~? '^f\%(90\|95\|03\|08\)$' + " Free-form file extension defaults as in Intel ifort, gcc(gfortran), NAG, Pathscale, and Cray compilers + let b:fortran_fixed_source = 0 + elseif expand("%:e") =~? '^\%(f\|f77\|for\)$' + " Fixed-form file extension defaults + let b:fortran_fixed_source = 1 + else + " Modern fortran still allows both fixed and free source form + " Assume fixed source form unless signs of free source form + " are detected in the first five columns of the first s:lmax lines. + " Detection becomes more accurate and time-consuming if more lines + " are checked. Increase the limit below if you keep lots of comments at + " the very top of each file and you have a fast computer. + let s:lmax = 500 + if ( s:lmax > line("$") ) + let s:lmax = line("$") + endif + let b:fortran_fixed_source = 1 + let s:ln=1 + while s:ln <= s:lmax + let s:test = strpart(getline(s:ln),0,5) + if s:test !~ '^[Cc*]' && s:test !~ '^ *[!#]' && s:test =~ '[^ 0-9\t]' && s:test !~ '^[ 0-9]*\t' + let b:fortran_fixed_source = 0 + break + endif + let s:ln = s:ln + 1 + endwhile + unlet! s:lmax s:ln s:test + endif +endif + +" Set comments and textwidth according to source type +if (b:fortran_fixed_source == 1) + setlocal comments=:!,:*,:C + " Fixed format requires a textwidth of 72 for code + setlocal tw=72 + " If you need to add "&" on continued lines so that the code is + " compatible with both free and fixed format, then you should do so + " in column 73 and uncomment the next line + " setlocal tw=73 +else + setlocal comments=:! + " Free format allows a textwidth of 132 + setlocal tw=132 +endif + +" Set commentstring for foldmethod=marker +setlocal cms=!%s + +" Tabs are not a good idea in Fortran so the default is to expand tabs +if !exists("fortran_have_tabs") + setlocal expandtab +endif + +" Set 'formatoptions' to break text lines +setlocal fo+=t + +setlocal include=^\\c#\\=\\s*include\\s\\+ +setlocal suffixesadd+=.f08,.f03,.f95,.f90,.for,.f,.F,.f77,.ftn,.fpp + +" Define patterns for the matchit plugin +if !exists("b:match_words") + let s:notend = '\%(\<end\s\+\)\@<!' + let s:notselect = '\%(\<select\s\+\)\@<!' + let s:notelse = '\%(\<end\s\+\|\<else\s\+\)\@<!' + let s:notprocedure = '\%(\s\+procedure\>\)\@!' + let b:match_ignorecase = 1 + let b:match_words = + \ '(:),' . + \ '\<select\s*case\>:' . s:notselect. '\<case\>:\<end\s*select\>,' . + \ s:notelse . '\<if\s*(.\+)\s*then\>:' . + \ '\<else\s*\%(if\s*(.\+)\s*then\)\=\>:\<end\s*if\>,'. + \ 'do\s\+\(\d\+\):\%(^\s*\)\@<=\1\s,'. + \ s:notend . '\<do\>:\<end\s*do\>,'. + \ s:notelse . '\<where\>:\<elsewhere\>:\<end\s*where\>,'. + \ s:notend . '\<type\s*[^(]:\<end\s*type\>,'. + \ s:notend . '\<forall\>:\<end\s*forall\>,'. + \ s:notend . '\<associate\>:\<end\s*associate\>,'. + \ s:notend . '\<enum\>:\<end\s*enum\>,'. + \ s:notend . '\<interface\>:\<end\s*interface\>,'. + \ s:notend . '\<subroutine\>:\<end\s*subroutine\>,'. + \ s:notend . '\<function\>:\<end\s*function\>,'. + \ s:notend . '\<module\>' . s:notprocedure . ':\<end\s*module\>,'. + \ s:notend . '\<program\>:\<end\s*program\>' +endif + +" File filters for :browse e +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "Fortran Files (*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn)\t*.f;*.for;*.f77;*.f90;*.f95;*.f03;*.f08;*.fpp;*.ftn\n" . + \ "All Files (*.*)\t*.*\n" +endif + +let b:undo_ftplugin = "setl fo< com< tw< cms< et< inc< sua<" + \ . "| unlet! b:match_ignorecase b:match_words b:browsefilter" + +let &cpoptions=s:cposet +unlet s:cposet + +" vim:sw=2 + +endif diff --git a/ftplugin/framescript.vim b/ftplugin/framescript.vim new file mode 100644 index 00000000..aa56a7b7 --- /dev/null +++ b/ftplugin/framescript.vim @@ -0,0 +1,34 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'framescript') == -1 + +" Vim ftplugin file +" Language: FrameScript +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-19 + +let s:cpo_save = &cpo +set cpo&vim + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl com< cms< fo< inc< | unlet! b:matchwords" + +setlocal comments=s1:/*,mb:*,ex:*/,:// commentstring=/*\ %s\ */ +setlocal formatoptions-=t formatoptions+=croql +setlocal include=^\\s*<#Include + +if exists("loaded_matchit") + let s:not_end = '\c\%(\<End\)\@<!' + let b:match_words = + \ s:not_end . '\<If\>:\c\<ElseIf\>:\c\<Else\>:\c\<EndIf\>,' . + \ s:not_end . '\<Loop\>:\c\<EndLoop\>' . + \ s:not_end . '\<Sub\>:\c\<EndSub\>' + unlet s:not_end +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/fvwm.vim b/ftplugin/fvwm.vim new file mode 100644 index 00000000..76ba9196 --- /dev/null +++ b/ftplugin/fvwm.vim @@ -0,0 +1,18 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'fvwm') == -1 + +" Created : Tue 09 May 2006 02:07:31 PM CDT +" Modified : Tue 09 May 2006 02:07:31 PM CDT +" Author : Gautam Iyer <gi1242@users.sourceforge.net> +" Description : ftplugin for fvwm config files + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s +setlocal formatoptions-=t formatoptions+=croql + +endif diff --git a/ftplugin/gdb.vim b/ftplugin/gdb.vim new file mode 100644 index 00000000..abfa3208 --- /dev/null +++ b/ftplugin/gdb.vim @@ -0,0 +1,16 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'gdb') == -1 + +" Vim filetype plugin file +" Language: gdb +" Maintainer: Michaël Peeters <NOSPAMm.vim@noekeon.org> +" Last Changed: 26 Oct 2017 + +if exists("b:did_ftplugin") | finish | endif +let b:did_ftplugin = 1 + +setlocal commentstring=#%s + +" Undo the stuff we changed. +let b:undo_ftplugin = "setlocal cms<" + +endif diff --git a/ftplugin/gpg.vim b/ftplugin/gpg.vim new file mode 100644 index 00000000..d7519924 --- /dev/null +++ b/ftplugin/gpg.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'gpg') == -1 + +" Vim filetype plugin file +" Language: gpg(1) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/group.vim b/ftplugin/group.vim new file mode 100644 index 00000000..5f0b4d90 --- /dev/null +++ b/ftplugin/group.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'group') == -1 + +" Vim filetype plugin file +" Language: group(5) user group file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/hgcommit.vim b/ftplugin/hgcommit.vim new file mode 100644 index 00000000..16c92796 --- /dev/null +++ b/ftplugin/hgcommit.vim @@ -0,0 +1,20 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'hgcommit') == -1 + +" Vim filetype plugin file +" Language: hg (Mercurial) commit file +" Maintainer: Ken Takata <kentkt at csc dot jp> +" Last Change: 2016 Jan 6 +" Filenames: hg-editor-*.txt +" License: VIM License +" URL: https://github.com/k-takata/hg-vim + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +setlocal nomodeline + +let b:undo_ftplugin = 'setl modeline<' + +endif diff --git a/ftplugin/hog.vim b/ftplugin/hog.vim new file mode 100644 index 00000000..b0541a39 --- /dev/null +++ b/ftplugin/hog.vim @@ -0,0 +1,43 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'hog') == -1 + +" Vim filetype plugin +" Language: hog (snort.conf) +" Maintainer: . Victor Roemer, <vroemer@badsec.org>. +" Last Change: Mar 1, 2013 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:undo_ftplugin = "setl fo< com< cms< def< inc<" + +let s:cpo_save = &cpo +set cpo&vim + +setlocal formatoptions=croq +setlocal comments=:# +setlocal commentstring=\c#\ %s +setlocal define=\c^\s\{-}var +setlocal include=\c^\s\{-}include + +" Move around configurations +let s:hog_keyword_match = '\c^\s*\<\(preprocessor\\|config\\|output\\|include\\|ipvar\\|portvar\\|var\\|dynamicpreprocessor\\|' . + \ 'dynamicengine\\|dynamicdetection\\|activate\\|alert\\|drop\\|block\\|dynamic\\|log\\|pass\\|reject\\|sdrop\\|sblock\)\>' + +exec "nnoremap <buffer><silent> ]] :call search('" . s:hog_keyword_match . "', 'W' )<CR>" +exec "nnoremap <buffer><silent> [[ :call search('" . s:hog_keyword_match . "', 'bW' )<CR>" + +if exists("loaded_matchit") + let b:match_words = + \ '^\s*\<\%(preprocessor\|config\|output\|include\|ipvar\|portvar' . + \ '\|var\|dynamicpreprocessor\|dynamicengine\|dynamicdetection' . + \ '\|activate\|alert\|drop\|block\|dynamic\|log\|pass\|reject' . + \ '\|sdrop\|sblock\>\):$,\::\,:;' + let b:match_skip = 'r:\\.\{-}$\|^\s*#.\{-}$\|^\s*$' +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/hostconf.vim b/ftplugin/hostconf.vim new file mode 100644 index 00000000..a6a9a840 --- /dev/null +++ b/ftplugin/hostconf.vim @@ -0,0 +1,22 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'hostconf') == -1 + +" Vim filetype plugin file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2007-12-04 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/hostsaccess.vim b/ftplugin/hostsaccess.vim new file mode 100644 index 00000000..36a67e90 --- /dev/null +++ b/ftplugin/hostsaccess.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'hostsaccess') == -1 + +" Vim filetype plugin file +" Language: hosts_access(5) control file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/indent.vim b/ftplugin/indent.vim new file mode 100644 index 00000000..c4c1ab4a --- /dev/null +++ b/ftplugin/indent.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'indent') == -1 + +" Vim filetype plugin file +" Language: indent(1) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=s1:/*,mb:*,ex:*/ commentstring& +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/j.vim b/ftplugin/j.vim new file mode 100644 index 00000000..0d8ef152 --- /dev/null +++ b/ftplugin/j.vim @@ -0,0 +1,85 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'j') == -1 + +" Vim filetype plugin +" Language: J +" Maintainer: David Bürgin <dbuergin@gluet.ch> +" URL: https://gitlab.com/glts/vim-j +" Last Change: 2015-10-27 + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +let s:save_cpo = &cpo +set cpo&vim + +setlocal iskeyword=48-57,A-Z,a-z,_ +setlocal comments=:NB. +setlocal commentstring=NB.\ %s +setlocal formatoptions-=t +setlocal matchpairs=(:) +setlocal path-=/usr/include + +" Includes. To make the shorthand form "require 'web/cgi'" work, double the +" last path component. Also strip off leading folder names like "~addons/". +setlocal include=\\v^\\s*(load\|require)\\s*'\\zs\\f+\\ze' +setlocal includeexpr=substitute(substitute(tr(v:fname,'\\','/'),'\\v^[^~][^/.]*(/[^/.]+)$','&\\1',''),'\\v^\\~[^/]+/','','') +setlocal suffixesadd=.ijs + +let b:undo_ftplugin = 'setlocal suffixesadd< includeexpr< include< path< matchpairs< formatoptions< commentstring< comments< iskeyword<' + +" Section movement with ]] ][ [[ []. The start/end patterns below are amended +" inside the function in order to avoid matching on the current cursor line. +let s:sectionstart = '\%(\s*Note\|.\{-}\<\%([0-4]\|13\|noun\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(:\s*0\|def\s\+0\|define\)\)\>.*' +let s:sectionend = '\s*)\s*' + +function! s:SearchSection(end, backwards, visualmode) abort + if a:visualmode !=# '' + normal! gv + endif + let l:flags = a:backwards ? 'bsW' : 'sW' + if a:end + call search('^' . s:sectionend . (a:backwards ? '\n\_.\{-}\%#' : '$'), l:flags) + else + call search('^' . s:sectionstart . (a:backwards ? '\n\_.\{-}\%#' : '$'), l:flags) + endif +endfunction + +noremap <buffer> <silent> ]] :<C-U>call <SID>SearchSection(0, 0, '')<CR> +xnoremap <buffer> <silent> ]] :<C-U>call <SID>SearchSection(0, 0, visualmode())<CR> +sunmap <buffer> ]] +noremap <buffer> <silent> ][ :<C-U>call <SID>SearchSection(1, 0, '')<CR> +xnoremap <buffer> <silent> ][ :<C-U>call <SID>SearchSection(1, 0, visualmode())<CR> +sunmap <buffer> ][ +noremap <buffer> <silent> [[ :<C-U>call <SID>SearchSection(0, 1, '')<CR> +xnoremap <buffer> <silent> [[ :<C-U>call <SID>SearchSection(0, 1, visualmode())<CR> +sunmap <buffer> [[ +noremap <buffer> <silent> [] :<C-U>call <SID>SearchSection(1, 1, '')<CR> +xnoremap <buffer> <silent> [] :<C-U>call <SID>SearchSection(1, 1, visualmode())<CR> +sunmap <buffer> [] + +let b:undo_ftplugin .= ' | silent! execute "unmap <buffer> ]]"' + \ . ' | silent! execute "unmap <buffer> ]["' + \ . ' | silent! execute "unmap <buffer> [["' + \ . ' | silent! execute "unmap <buffer> []"' + +" Browse dialog filter on Windows (see ":help browsefilter") +if has('gui_win32') && !exists('b:browsefilter') + let b:browsefilter = "J Script Files (*.ijs)\t*.ijs\n" + \ . "All Files (*.*)\t*.*\n" + let b:undo_ftplugin .= ' | unlet! b:browsefilter' +endif + +" Enhanced "%" matching (see ":help matchit") +if exists('loaded_matchit') && !exists('b:match_words') + let b:match_ignorecase = 0 + let b:match_words = '^\%(\s*Note\|.\{-}\<\%([0-4]\|13\|noun\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(\:\s*0\|def\s\+0\|define\)\)\>:^\s*\:\s*$:^\s*)\s*$' + \ . ',\<\%(for\%(_\a\k*\)\=\|if\|select\|try\|whil\%(e\|st\)\)\.:\<\%(case\|catch[dt]\=\|else\%(if\)\=\|fcase\)\.:\<end\.' + let b:undo_ftplugin .= ' | unlet! b:match_ignorecase b:match_words' +endif + +let &cpo = s:save_cpo +unlet s:save_cpo + +endif diff --git a/ftplugin/java.vim b/ftplugin/java.vim new file mode 100644 index 00000000..e41d53e0 --- /dev/null +++ b/ftplugin/java.vim @@ -0,0 +1,55 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'java') == -1 + +" Vim filetype plugin file +" Language: Java +" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> +" Last Change: 2012 Mar 11 +" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin + +if exists("b:did_ftplugin") | finish | endif +let b:did_ftplugin = 1 + +" Make sure the continuation lines below do not cause problems in +" compatibility mode. +let s:save_cpo = &cpo +set cpo-=C + +" For filename completion, prefer the .java extension over the .class +" extension. +set suffixes+=.class + +" Enable gf on import statements. Convert . in the package +" name to / and append .java to the name, then search the path. +setlocal includeexpr=substitute(v:fname,'\\.','/','g') +setlocal suffixesadd=.java +if exists("g:ftplugin_java_source_path") + let &l:path=g:ftplugin_java_source_path . ',' . &l:path +endif + +" Set 'formatoptions' to break comment lines but not other lines, +" and insert the comment leader when hitting <CR> or using "o". +setlocal formatoptions-=t formatoptions+=croql + +" Set 'comments' to format dashed lists in comments. Behaves just like C. +setlocal comments& comments^=sO:*\ -,mO:*\ \ ,exO:*/ + +setlocal commentstring=//%s + +" Change the :browse e filter to primarily show Java-related files. +if has("gui_win32") + let b:browsefilter="Java Files (*.java)\t*.java\n" . + \ "Properties Files (*.prop*)\t*.prop*\n" . + \ "Manifest Files (*.mf)\t*.mf\n" . + \ "All Files (*.*)\t*.*\n" +endif + +" Undo the stuff we changed. +let b:undo_ftplugin = "setlocal suffixes< suffixesadd<" . + \ " formatoptions< comments< commentstring< path< includeexpr<" . + \ " | unlet! b:browsefilter" + +" Restore the saved compatibility options. +let &cpo = s:save_cpo +unlet s:save_cpo + +endif diff --git a/ftplugin/jproperties.vim b/ftplugin/jproperties.vim new file mode 100644 index 00000000..a9cf4e62 --- /dev/null +++ b/ftplugin/jproperties.vim @@ -0,0 +1,19 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jproperties') == -1 + +" Vim filetype plugin +" Language: Java properties file +" Maintainer: None +" Last Change: 2019 Dec 01 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +setlocal formatoptions-=t +setlocal comments=:#,:! +setlocal commentstring=#\ %s + +let b:undo_ftplugin = "setl cms< com< fo<" + +endif diff --git a/ftplugin/jsp.vim b/ftplugin/jsp.vim new file mode 100644 index 00000000..091e359a --- /dev/null +++ b/ftplugin/jsp.vim @@ -0,0 +1,71 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jsp') == -1 + +" Vim filetype plugin file +" Language: jsp +" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> +" Last Changed: 20 Jan 2009 +" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin + +if exists("b:did_ftplugin") | finish | endif + +" Make sure the continuation lines below do not cause problems in +" compatibility mode. +let s:save_cpo = &cpo +set cpo-=C + +" Define some defaults in case the included ftplugins don't set them. +let s:undo_ftplugin = "" +let s:browsefilter = "Java Files (*.java)\t*.java\n" . + \ "HTML Files (*.html, *.htm)\t*.html;*.htm\n" . + \ "All Files (*.*)\t*.*\n" +let s:match_words = "" + +runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim +unlet b:did_ftplugin + +" Override our defaults if these were set by an included ftplugin. +if exists("b:undo_ftplugin") + let s:undo_ftplugin = b:undo_ftplugin + unlet b:undo_ftplugin +endif +if exists("b:browsefilter") + let s:browsefilter = b:browsefilter + unlet b:browsefilter +endif +if exists("b:match_words") + let s:match_words = b:match_words + unlet b:match_words +endif + +runtime! ftplugin/java.vim ftplugin/java_*.vim ftplugin/java/*.vim +let b:did_ftplugin = 1 + +" Combine the new set of values with those previously included. +if exists("b:undo_ftplugin") + let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin +endif +if exists ("b:browsefilter") + let s:browsefilter = b:browsefilter . s:browsefilter +endif +if exists("b:match_words") + let s:match_words = b:match_words . ',' . s:match_words +endif + +" Load the combined list of match_words for matchit.vim +if exists("loaded_matchit") + let b:match_words = s:match_words +endif + +" Change the :browse e filter to primarily show JSP-related files. +if has("gui_win32") + let b:browsefilter="JSP Files (*.jsp)\t*.jsp\n" . s:browsefilter +endif + +" Undo the stuff we changed. +let b:undo_ftplugin = "unlet! b:browsefilter b:match_words | " . s:undo_ftplugin + +" Restore the saved compatibility options. +let &cpo = s:save_cpo +unlet s:save_cpo + +endif diff --git a/ftplugin/kconfig.vim b/ftplugin/kconfig.vim new file mode 100644 index 00000000..b106b3d9 --- /dev/null +++ b/ftplugin/kconfig.vim @@ -0,0 +1,31 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'kconfig') == -1 + +" Vim filetype plugin file +" Vim syntax file +" Maintainer: Christian Brabandt <cb@256bit.org> +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2015-05-29 +" License: Vim (see :h license) +" Repository: https://github.com/chrisbra/vim-kconfig + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +" For matchit.vim +if exists("loaded_matchit") + let b:match_words = '^\<menu\>:\<endmenu\>,^\<if\>:\<endif\>,^\<choice\>:\<endchoice\>' +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/kwt.vim b/ftplugin/kwt.vim new file mode 100644 index 00000000..5bc89215 --- /dev/null +++ b/ftplugin/kwt.vim @@ -0,0 +1,36 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'kwt') == -1 + +" Vim filetype plugin file +" Language: Kimwitu++ +" Maintainer: Michael Piefel <entwurf@piefel.de> +" Last Change: 10 March 2012 + +" Behaves almost like C++ +runtime! ftplugin/cpp.vim ftplugin/cpp_*.vim ftplugin/cpp/*.vim + +let s:cpo_save = &cpo +set cpo&vim + +" Limit the browser to related files +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "Kimwitu/Kimwitu++ Files (*.k)\t*.k\n" . + \ "Lex/Flex Files (*.l)\t*.l\n" . + \ "Yacc/Bison Files (*.y)\t*.y\n" . + \ "All Files (*.*)\t*.*\n" +endif + +" Set the errorformat for the Kimwitu++ compiler +set efm+=kc%.%#:\ error\ at\ %f:%l:\ %m + +if exists("b:undo_ftplugin") + let b:undo_ftplugin = b:undo_ftplugin . " | setlocal efm<" + \ . "| unlet! b:browsefiler" +else + let b:undo_ftplugin = "setlocal efm<" + \ . "| unlet! b:browsefiler" +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/ld.vim b/ftplugin/ld.vim new file mode 100644 index 00000000..bd9723f4 --- /dev/null +++ b/ftplugin/ld.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ld') == -1 + +" Vim filetype plugin file +" Language: ld(1) script +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< inc< fo<" + +setlocal comments=s1:/*,mb:*,ex:*/ commentstring=/*%s*/ include=^\\s*INCLUDE +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/lftp.vim b/ftplugin/lftp.vim new file mode 100644 index 00000000..f9e0be86 --- /dev/null +++ b/ftplugin/lftp.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'lftp') == -1 + +" Vim filetype plugin file +" Language: lftp(1) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/libao.vim b/ftplugin/libao.vim new file mode 100644 index 00000000..d6d6e660 --- /dev/null +++ b/ftplugin/libao.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'libao') == -1 + +" Vim filetype plugin file +" Language: libao.conf(5) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/limits.vim b/ftplugin/limits.vim new file mode 100644 index 00000000..873f9341 --- /dev/null +++ b/ftplugin/limits.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'limits') == -1 + +" Vim filetype plugin file +" Language: limits(5) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/liquid.vim b/ftplugin/liquid.vim new file mode 100644 index 00000000..5ffbade6 --- /dev/null +++ b/ftplugin/liquid.vim @@ -0,0 +1,65 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'liquid') == -1 + +" Vim filetype plugin +" Language: Liquid +" Maintainer: Tim Pope <vimNOSPAM@tpope.org> +" Last Change: 2010 May 21 + +if exists('b:did_ftplugin') + finish +endif + +if !exists('g:liquid_default_subtype') + let g:liquid_default_subtype = 'html' +endif + +if !exists('b:liquid_subtype') + let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$") + let b:liquid_subtype = matchstr(s:lines,'liquid_subtype=\zs\w\+') + if b:liquid_subtype == '' + let b:liquid_subtype = matchstr(&filetype,'^liquid\.\zs\w\+') + endif + if b:liquid_subtype == '' + let b:liquid_subtype = matchstr(substitute(expand('%:t'),'\c\%(\.liquid\)\+$','',''),'\.\zs\w\+$') + endif + if b:liquid_subtype == '' + let b:liquid_subtype = g:liquid_default_subtype + endif +endif + +if exists('b:liquid_subtype') && b:liquid_subtype != '' + exe 'runtime! ftplugin/'.b:liquid_subtype.'.vim ftplugin/'.b:liquid_subtype.'_*.vim ftplugin/'.b:liquid_subtype.'/*.vim' +else + runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim +endif +let b:did_ftplugin = 1 + +if exists('b:undo_ftplugin') + let b:undo_ftplugin .= '|' +else + let b:undo_ftplugin = '' +endif +if exists('b:browsefilter') + let b:browsefilter = "\n".b:browsefilter +else + let b:browsefilter = '' +endif +if exists('b:match_words') + let b:match_words .= ',' +elseif exists('loaded_matchit') + let b:match_words = '' +endif + +if has('gui_win32') + let b:browsefilter="Liquid Files (*.liquid)\t*.liquid" . b:browsefilter +endif + +if exists('loaded_matchit') + let b:match_words .= '\<\%(if\w*\|unless\|case\)\>:\<\%(elsif\|else\|when\)\>:\<end\%(if\w*\|unless\|case\)\>,\<\%(for\|tablerow\)\>:\%({%\s*\)\@<=empty\>:\<end\%(for\|tablerow\)\>,<\(capture\|comment\|highlight\)\>:\<end\1\>' +endif + +setlocal commentstring={%\ comment\ %}%s{%\ endcomment\ %} + +let b:undo_ftplugin .= 'setl cms< | unlet! b:browsefilter b:match_words' + +endif diff --git a/ftplugin/lisp.vim b/ftplugin/lisp.vim new file mode 100644 index 00000000..eaae2795 --- /dev/null +++ b/ftplugin/lisp.vim @@ -0,0 +1,30 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'lisp') == -1 + +" Vim filetype plugin +" Language: Lisp +" Maintainer: Sergey Khorev <sergey.khorev@gmail.com> +" URL: http://sites.google.com/site/khorser/opensource/vim +" Original author: Dorai Sitaram <ds26@gte.com> +" Original URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html +" Last Change: Oct 23, 2013 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +setl comments=:; +setl define=^\\s*(def\\k* +setl formatoptions-=t +setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94 +setl lisp +setl commentstring=;%s + +setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|# + +let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lisp< commentstring<" + +endif diff --git a/ftplugin/logcheck.vim b/ftplugin/logcheck.vim new file mode 100644 index 00000000..1c1d8510 --- /dev/null +++ b/ftplugin/logcheck.vim @@ -0,0 +1,21 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'logcheck') == -1 + +" Vim filetype plugin file +" Language: Logcheck +" Maintainer: Debian Vim Maintainers +" Last Change: 2018 Dec 27 +" License: Vim License +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/logcheck.vim + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = 'setl fo<' + +" Do not hard-wrap non-comment lines since each line is a self-contained +" regular expression +setlocal formatoptions-=t + +endif diff --git a/ftplugin/loginaccess.vim b/ftplugin/loginaccess.vim new file mode 100644 index 00000000..e19e9d8d --- /dev/null +++ b/ftplugin/loginaccess.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'loginaccess') == -1 + +" Vim filetype plugin file +" Language: login.access(5) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/logindefs.vim b/ftplugin/logindefs.vim new file mode 100644 index 00000000..be22441f --- /dev/null +++ b/ftplugin/logindefs.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'logindefs') == -1 + +" Vim filetype plugin file +" Language: login.defs(5) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/logtalk.vim b/ftplugin/logtalk.vim new file mode 100644 index 00000000..2b79723f --- /dev/null +++ b/ftplugin/logtalk.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'logtalk') == -1 + +" Logtalk filetype plugin file +" Language: Logtalk +" Maintainer: Paulo Moura <pmoura@logtalk.org> +" Latest Revision: 2018-08-03 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl ts< sw< fdm< fdc< ai< dict<" + +setlocal ts=4 +setlocal sw=4 +setlocal fdm=syntax +setlocal fdn=10 +setlocal fdc=2 +setlocal autoindent +setlocal dict=$VIMRUNTIME/ftplugin/logtalk.dict + +endif diff --git a/ftplugin/lprolog.vim b/ftplugin/lprolog.vim new file mode 100644 index 00000000..8f465460 --- /dev/null +++ b/ftplugin/lprolog.vim @@ -0,0 +1,41 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'lprolog') == -1 + +" Vim settings file +" Language: LambdaProlog (Teyjus) +" Maintainer: Markus Mottl <markus.mottl@gmail.com> +" URL: http://www.ocaml.info/vim/ftplugin/lprolog.vim +" Last Change: 2006 Feb 05 +" 2001 Sep 16 - fixed 'no_mail_maps'-bug (MM) +" 2001 Sep 02 - initial release (MM) + +" Only do these settings when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't do other file type settings for this buffer +let b:did_ftplugin = 1 + +" Error format +setlocal efm=%+A./%f:%l.%c:\ %m formatprg=fmt\ -w75\ -p\\% + +" Formatting of comments +setlocal formatprg=fmt\ -w75\ -p\\% + +" Add mappings, unless the user didn't want this. +if !exists("no_plugin_maps") && !exists("no_lprolog_maps") + " Uncommenting + if !hasmapto('<Plug>Comment') + nmap <buffer> <LocalLeader>c <Plug>LUncomOn + vmap <buffer> <LocalLeader>c <Plug>BUncomOn + nmap <buffer> <LocalLeader>C <Plug>LUncomOff + vmap <buffer> <LocalLeader>C <Plug>BUncomOff + endif + + nnoremap <buffer> <Plug>LUncomOn mz0i/* <ESC>$A */<ESC>`z + nnoremap <buffer> <Plug>LUncomOff <ESC>:s/^\/\* \(.*\) \*\//\1/<CR> + vnoremap <buffer> <Plug>BUncomOn <ESC>:'<,'><CR>`<O<ESC>0i/*<ESC>`>o<ESC>0i*/<ESC>`< + vnoremap <buffer> <Plug>BUncomOff <ESC>:'<,'><CR>`<dd`>dd`< +endif + +endif diff --git a/ftplugin/mail.vim b/ftplugin/mail.vim new file mode 100644 index 00000000..b3d7f5b9 --- /dev/null +++ b/ftplugin/mail.vim @@ -0,0 +1,42 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'mail') == -1 + +" Vim filetype plugin file +" Language: Mail +" Maintainer: Bram Moolenaar <Bram@vim.org> +" Last Change: 2012 Nov 20 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl modeline< tw< fo< comments<" + +" Don't use modelines in e-mail messages, avoid trojan horses and nasty +" "jokes" (e.g., setting 'textwidth' to 5). +setlocal nomodeline + +" many people recommend keeping e-mail messages 72 chars wide +if &tw == 0 + setlocal tw=72 +endif + +" Set 'formatoptions' to break text lines and keep the comment leader ">". +setlocal fo+=tcql + +" Add n:> to 'comments, in case it was removed elsewhere +setlocal comments+=n:> + +" Add mappings, unless the user doesn't want this. +if !exists("no_plugin_maps") && !exists("no_mail_maps") + " Quote text by inserting "> " + if !hasmapto('<Plug>MailQuote') + vmap <buffer> <LocalLeader>q <Plug>MailQuote + nmap <buffer> <LocalLeader>q <Plug>MailQuote + endif + vnoremap <buffer> <Plug>MailQuote :s/^/> /<CR>:noh<CR>`` + nnoremap <buffer> <Plug>MailQuote :.,$s/^/> /<CR>:noh<CR>`` +endif + +endif diff --git a/ftplugin/mailaliases.vim b/ftplugin/mailaliases.vim new file mode 100644 index 00000000..ac7466cc --- /dev/null +++ b/ftplugin/mailaliases.vim @@ -0,0 +1,22 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'mailaliases') == -1 + +" Vim filetype plugin file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/mailcap.vim b/ftplugin/mailcap.vim new file mode 100644 index 00000000..fca0215b --- /dev/null +++ b/ftplugin/mailcap.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'mailcap') == -1 + +" Vim filetype plugin file +" Language: Mailcap configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/man.vim b/ftplugin/man.vim new file mode 100644 index 00000000..300129c2 --- /dev/null +++ b/ftplugin/man.vim @@ -0,0 +1,254 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'man') == -1 + +" Vim filetype plugin file +" Language: man +" Maintainer: Jason Franklin <vim@justemail.net> +" Maintainer: SungHyun Nam <goweol@gmail.com> +" Last Change: 2020 Jun 01 + +" To make the ":Man" command available before editing a manual page, source +" this script from your startup vimrc file. + +" If 'filetype' isn't "man", we must have been called to only define ":Man". +if &filetype == "man" + + " Only do this when not done yet for this buffer + if exists("b:did_ftplugin") + finish + endif + let b:did_ftplugin = 1 +endif + +let s:cpo_save = &cpo +set cpo-=C + +if &filetype == "man" + " allow dot and dash in manual page name. + setlocal iskeyword+=\.,- + let b:undo_ftplugin = "setlocal iskeyword<" + + " Add mappings, unless the user didn't want this. + if !exists("no_plugin_maps") && !exists("no_man_maps") + if !hasmapto('<Plug>ManBS') + nmap <buffer> <LocalLeader>h <Plug>ManBS + let b:undo_ftplugin = b:undo_ftplugin + \ . '|silent! nunmap <buffer> <LocalLeader>h' + endif + nnoremap <buffer> <Plug>ManBS :%s/.\b//g<CR>:setl nomod<CR>'' + + nnoremap <buffer> <silent> <c-]> :call <SID>PreGetPage(v:count)<CR> + nnoremap <buffer> <silent> <c-t> :call <SID>PopPage()<CR> + nnoremap <buffer> <silent> q :q<CR> + + " Add undo commands for the maps + let b:undo_ftplugin = b:undo_ftplugin + \ . '|silent! nunmap <buffer> <Plug>ManBS' + \ . '|silent! nunmap <buffer> <c-]>' + \ . '|silent! nunmap <buffer> <c-t>' + \ . '|silent! nunmap <buffer> q' + endif + + if exists('g:ft_man_folding_enable') && (g:ft_man_folding_enable == 1) + setlocal foldmethod=indent foldnestmax=1 foldenable + let b:undo_ftplugin = b:undo_ftplugin + \ . '|silent! setl fdm< fdn< fen<' + endif + +endif + +if exists(":Man") != 2 + com -nargs=+ -complete=shellcmd Man call s:GetPage(<q-mods>, <f-args>) + nmap <Leader>K :call <SID>PreGetPage(0)<CR> + nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR> +endif + +" Define functions only once. +if !exists("s:man_tag_depth") + +let s:man_tag_depth = 0 + +let s:man_sect_arg = "" +let s:man_find_arg = "-w" +try + if !has("win32") && $OSTYPE !~ 'cygwin\|linux' && system('uname -s') =~ "SunOS" && system('uname -r') =~ "^5" + let s:man_sect_arg = "-s" + let s:man_find_arg = "-l" + endif +catch /E145:/ + " Ignore the error in restricted mode +endtry + +func <SID>PreGetPage(cnt) + if a:cnt == 0 + let old_isk = &iskeyword + if &ft == 'man' + setl iskeyword+=(,) + endif + let str = expand("<cword>") + let &l:iskeyword = old_isk + let page = substitute(str, '(*\(\k\+\).*', '\1', '') + let sect = substitute(str, '\(\k\+\)(\([^()]*\)).*', '\2', '') + if match(sect, '^[0-9 ]\+$') == -1 + let sect = "" + endif + if sect == page + let sect = "" + endif + else + let sect = a:cnt + let page = expand("<cword>") + endif + call s:GetPage('', sect, page) +endfunc + +func <SID>GetCmdArg(sect, page) + if a:sect == '' + return a:page + endif + return s:man_sect_arg.' '.a:sect.' '.a:page +endfunc + +func <SID>FindPage(sect, page) + let where = system("man ".s:man_find_arg.' '.s:GetCmdArg(a:sect, a:page)) + if where !~ "^/" + if matchstr(where, " [^ ]*$") !~ "^ /" + return 0 + endif + endif + return 1 +endfunc + +func <SID>GetPage(cmdmods, ...) + if a:0 >= 2 + let sect = a:1 + let page = a:2 + elseif a:0 >= 1 + let sect = "" + let page = a:1 + else + return + endif + + " To support: nmap K :Man <cword> + if page == '<cword>' + let page = expand('<cword>') + endif + + if !exists('g:ft_man_no_sect_fallback') || (g:ft_man_no_sect_fallback == 0) + if sect != "" && s:FindPage(sect, page) == 0 + let sect = "" + endif + endif + if s:FindPage(sect, page) == 0 + let msg = 'man.vim: no manual entry for "' . page . '"' + if !empty(sect) + let msg .= ' in section ' . sect + endif + echomsg msg + return + endif + exec "let s:man_tag_buf_".s:man_tag_depth." = ".bufnr("%") + exec "let s:man_tag_lin_".s:man_tag_depth." = ".line(".") + exec "let s:man_tag_col_".s:man_tag_depth." = ".col(".") + let s:man_tag_depth = s:man_tag_depth + 1 + + let open_cmd = 'edit' + + " Use an existing "man" window if it exists, otherwise open a new one. + if &filetype != "man" + let thiswin = winnr() + exe "norm! \<C-W>b" + if winnr() > 1 + exe "norm! " . thiswin . "\<C-W>w" + while 1 + if &filetype == "man" + break + endif + exe "norm! \<C-W>w" + if thiswin == winnr() + break + endif + endwhile + endif + if &filetype != "man" + if exists("g:ft_man_open_mode") + if g:ft_man_open_mode == 'vert' + let open_cmd = 'vsplit' + elseif g:ft_man_open_mode == 'tab' + let open_cmd = 'tabedit' + else + let open_cmd = 'split' + endif + else + let open_cmd = a:cmdmods . ' split' + endif + endif + endif + + silent execute open_cmd . " $HOME/" . page . '.' . sect . '~' + + " Avoid warning for editing the dummy file twice + setl buftype=nofile noswapfile + + setl fdc=0 ma nofen nonu nornu + %delete _ + let unsetwidth = 0 + if empty($MANWIDTH) + let $MANWIDTH = winwidth(0) + let unsetwidth = 1 + endif + + " Ensure Vim is not recursively invoked (man-db does this) when doing ctrl-[ + " on a man page reference by unsetting MANPAGER. + " Some versions of env(1) do not support the '-u' option, and in such case + " we set MANPAGER=cat. + if !exists('s:env_has_u') + call system('env -u x true') + let s:env_has_u = (v:shell_error == 0) + endif + let env_cmd = s:env_has_u ? 'env -u MANPAGER' : 'env MANPAGER=cat' + let env_cmd .= ' GROFF_NO_SGR=1' + let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) . ' | col -b' + silent exec "r !" . man_cmd + + if unsetwidth + let $MANWIDTH = '' + endif + " Remove blank lines from top and bottom. + while line('$') > 1 && getline(1) =~ '^\s*$' + 1delete _ + endwhile + while line('$') > 1 && getline('$') =~ '^\s*$' + $delete _ + endwhile + 1 + setl ft=man nomod + setl bufhidden=hide + setl nobuflisted + setl noma +endfunc + +func <SID>PopPage() + if s:man_tag_depth > 0 + let s:man_tag_depth = s:man_tag_depth - 1 + exec "let s:man_tag_buf=s:man_tag_buf_".s:man_tag_depth + exec "let s:man_tag_lin=s:man_tag_lin_".s:man_tag_depth + exec "let s:man_tag_col=s:man_tag_col_".s:man_tag_depth + exec s:man_tag_buf."b" + exec s:man_tag_lin + exec "norm! ".s:man_tag_col."|" + exec "unlet s:man_tag_buf_".s:man_tag_depth + exec "unlet s:man_tag_lin_".s:man_tag_depth + exec "unlet s:man_tag_col_".s:man_tag_depth + unlet s:man_tag_buf s:man_tag_lin s:man_tag_col + endif +endfunc + +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: set sw=2 ts=8 noet: + +endif diff --git a/ftplugin/manconf.vim b/ftplugin/manconf.vim new file mode 100644 index 00000000..cfe01594 --- /dev/null +++ b/ftplugin/manconf.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'manconf') == -1 + +" Vim filetype plugin file +" Language: man.conf(5) - man configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/mf.vim b/ftplugin/mf.vim new file mode 100644 index 00000000..1a005d66 --- /dev/null +++ b/ftplugin/mf.vim @@ -0,0 +1,74 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'mf') == -1 + +" Vim filetype plugin file +" Language: METAFONT +" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com> +" Former Maintainers: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2016 Oct 2 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<" + \ . "| unlet! b:match_ignorecase b:match_words b:match_skip" + +setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=cjroql2 +setlocal suffixesadd=.mf +let &l:include = '\<input\>' +let &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+' +setlocal omnifunc=syntaxcomplete#Complete +let g:omni_syntax_group_include_mf = 'mf\w\+' +let g:omni_syntax_group_exclude_mf = 'mfTodoComment' + +let s:mp_regex = { + \ 'beginsection' : '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|beginchar\|beginlogochar\)\>', + \ 'endsection' : '^\s*\%(enddef\|endchar\)\>', + \ 'beginblock' : '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>', + \ 'endblock' : '^\s*\%(endgroup\|fi\|endfor\)\>' + \ } + +function! s:move_around(count, what, flags, visual) + if a:visual + exe "normal! gv" + endif + call search(s:mp_regex[a:what], a:flags.'s') " 's' sets previous context mark + call map(range(2, a:count), 'search(s:mp_regex[a:what], a:flags)') +endfunction + + +" Move around macros. +nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR> +vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR> +nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR> +vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR> +nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR> +vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR> +nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR> +vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR> +nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR> +vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR> +nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR> +vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR> + +if exists("loaded_matchit") + let b:match_ignorecase = 0 + let b:match_words = + \ '\<if\>:\<else\%[if]\>:\<fi\>,' . + \ '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' . + \ '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' . + \ '\<begingroup\>:\<endgroup\>,' . + \ '\<begin\%(logo\)\?char\>:\<endchar\>' + " Ignore comments and strings + let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name") + \ =~# "mf\\(Comment\\|String\\)$"' +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/modconf.vim b/ftplugin/modconf.vim new file mode 100644 index 00000000..07ea1669 --- /dev/null +++ b/ftplugin/modconf.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'modconf') == -1 + +" Vim filetype plugin file +" Language: modules.conf(5) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< inc< fo<" + +setlocal comments=:# commentstring=#\ %s include=^\\s*include +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/mp.vim b/ftplugin/mp.vim new file mode 100644 index 00000000..a13f5cff --- /dev/null +++ b/ftplugin/mp.vim @@ -0,0 +1,86 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'mp') == -1 + +" Vim filetype plugin file +" Language: MetaPost +" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com> +" Former Maintainers: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2016 Oct 2 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<" + \ . "| unlet! b:match_ignorecase b:match_words b:match_skip" + +setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=cjroql2 +setlocal suffixesadd=.mp,.mpiv +let &l:include = '\<\%(input\|loadmodule\)\>' " loadmodule is in MetaFun +let &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+' +setlocal omnifunc=syntaxcomplete#Complete +let g:omni_syntax_group_include_mp = 'mf\w\+,mp\w\+' +let g:omni_syntax_group_exclude_mp = 'mfTodoComment' + +if exists(":FixBeginfigs") != 2 + command -nargs=0 FixBeginfigs call s:fix_beginfigs() + + function! s:fix_beginfigs() + let i = 1 + g/^beginfig(\d*);$/s//\='beginfig('.i.');'/ | let i = i + 1 + endfunction +endif + +let s:mp_regex = { + \ 'beginsection' : '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|begin\%(fig\|char\|logochar\|glyph\|graph\)\)\>', + \ 'endsection' : '^\s*\%(enddef\|end\%(fig\|char\|glyph\|graph\)\)\>', + \ 'beginblock' : '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>', + \ 'endblock' : '^\s*\%(endgroup\|fi\|endfor\)\>' + \ } + +function! s:move_around(count, what, flags, visual) + if a:visual + exe "normal! gv" + endif + call search(s:mp_regex[a:what], a:flags.'s') " 's' sets previous context mark + call map(range(2, a:count), 'search(s:mp_regex[a:what], a:flags)') +endfunction + + +" Move around macros. +nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR> +vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR> +nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR> +vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR> +nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR> +vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR> +nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR> +vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR> +nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR> +vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR> +nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR> +vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR> + +if exists("loaded_matchit") + let b:match_ignorecase = 0 + let b:match_words = + \ '\<if\>:\<else\%[if]\>:\<fi\>,' . + \ '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' . + \ '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' . + \ '\<beginfig\>:\<endfig\>,' . + \ '\<begingroup\>:\<endgroup\>,' . + \ '\<begin\%(logo\)\?char\>:\<endchar\>,' . + \ '\<beginglyph\>:\<endglyph\>,' . + \ '\<begingraph\>:\<endgraph\>' + " Ignore comments and strings + let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name") + \ =~# "^mf\\%(Comment\\|String\\|\\)$\\|^mpTeXinsert$"' +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/mplayerconf.vim b/ftplugin/mplayerconf.vim new file mode 100644 index 00000000..b3587bdc --- /dev/null +++ b/ftplugin/mplayerconf.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'mplayerconf') == -1 + +" Vim filetype plugin file +" Language: mplayer(1) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< inc< fo<" + +setlocal comments=:# commentstring=#\ %s include=^\\s*include +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/mrxvtrc.vim b/ftplugin/mrxvtrc.vim new file mode 100644 index 00000000..bf73b0e4 --- /dev/null +++ b/ftplugin/mrxvtrc.vim @@ -0,0 +1,26 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'mrxvtrc') == -1 + +" Created : Wed 26 Apr 2006 01:20:53 AM CDT +" Modified : Fri 28 Apr 2006 03:24:01 AM CDT +" Author : Gautam Iyer <gi1242@users.sourceforge.net> +" Description : ftplugin for mrxvtrc + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl com< cms< fo<" + +" Really any line that does not match an option is a comment. But use '!' for +" compatibility with x-defaults files, and "#" (preferred) for compatibility +" with all other config files. +" +" Comments beginning with "#" are preferred because Vim will not flag the +" first word as a spelling error if it is not capitalised. The '!' used as +" comment leaders makes Vim think that every comment line is a new sentence. + +setlocal comments=:!,:# commentstring=#\ %s +setlocal formatoptions-=t formatoptions+=croql + +endif diff --git a/ftplugin/muttrc.vim b/ftplugin/muttrc.vim new file mode 100644 index 00000000..1d77a63f --- /dev/null +++ b/ftplugin/muttrc.vim @@ -0,0 +1,26 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'muttrc') == -1 + +" Vim filetype plugin file +" Language: mutt RC File +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2006-04-19 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< inc< fo<" + +setlocal comments=:# commentstring=#\ %s +setlocal formatoptions-=t formatoptions+=croql + +let &l:include = '^\s*source\>' + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/nanorc.vim b/ftplugin/nanorc.vim new file mode 100644 index 00000000..a116e318 --- /dev/null +++ b/ftplugin/nanorc.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nanorc') == -1 + +" Vim filetype plugin file +" Language: nanorc(5) - GNU nano configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/neomuttrc.vim b/ftplugin/neomuttrc.vim new file mode 100644 index 00000000..660931d0 --- /dev/null +++ b/ftplugin/neomuttrc.vim @@ -0,0 +1,27 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'neomuttrc') == -1 + +" Vim filetype plugin file +" Language: NeoMutt RC File +" Previous Maintainer: Guillaume Brogi <gui-gui@netcourrier.com> +" Latest Revision: 2017-09-17 +" Original version copied from ftplugin/muttrc.vim + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< inc< fo<" + +setlocal comments=:# commentstring=#\ %s +setlocal formatoptions-=t formatoptions+=croql + +let &l:include = '^\s*source\>' + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/netrc.vim b/ftplugin/netrc.vim new file mode 100644 index 00000000..75f5ff7f --- /dev/null +++ b/ftplugin/netrc.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'netrc') == -1 + +" Vim filetype plugin file +" Language: netrc(5) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/nroff.vim b/ftplugin/nroff.vim new file mode 100644 index 00000000..2d040e3a --- /dev/null +++ b/ftplugin/nroff.vim @@ -0,0 +1,15 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nroff') == -1 + +" Vim filetype plugin +" Language: roff(7) +" Maintainer: Chris Spiegel <cspiegel@gmail.com> +" Last Change: 2019 Apr 24 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +setlocal commentstring=.\\\"%s + +endif diff --git a/ftplugin/nsis.vim b/ftplugin/nsis.vim new file mode 100644 index 00000000..8820f066 --- /dev/null +++ b/ftplugin/nsis.vim @@ -0,0 +1,47 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'nsis') == -1 + +" Vim ftplugin file +" Language: NSIS script +" Maintainer: Ken Takata +" URL: https://github.com/k-takata/vim-nsis +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Last Change: 2018-01-26 + +if exists("b:did_ftplugin") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl com< cms< fo< def< inc<" + \ " | unlet! b:match_ignorecase b:match_words" + +setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s +setlocal formatoptions-=t formatoptions+=croql +setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\= +setlocal include=^\\s*!include\\%(/NONFATAL\\)\\= + +if exists("loaded_matchit") + let b:match_ignorecase = 1 + let b:match_words = + \ '\${\%(If\|IfNot\|Unless\)}:\${\%(Else\|ElseIf\|ElseIfNot\|ElseUnless\)}:\${\%(EndIf\|EndUnless\)},' . + \ '\${Select}:\${EndSelect},' . + \ '\${Switch}:\${EndSwitch},' . + \ '\${\%(Do\|DoWhile\|DoUntil\)}:\${\%(Loop\|LoopWhile\|LoopUntil\)},' . + \ '\${\%(For\|ForEach\)}:\${Next},' . + \ '\<Function\>:\<FunctionEnd\>,' . + \ '\<Section\>:\<SectionEnd\>,' . + \ '\<SectionGroup\>:\<SectionGroupEnd\>,' . + \ '\<PageEx\>:\<PageExEnd\>,' . + \ '\${MementoSection}:\${MementoSectionEnd},' . + \ '!if\%(\%(macro\)\?n\?def\)\?\>:!else\>:!endif\>,' . + \ '!macro\>:!macroend\>' +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/occam.vim b/ftplugin/occam.vim new file mode 100644 index 00000000..c428c13b --- /dev/null +++ b/ftplugin/occam.vim @@ -0,0 +1,53 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'occam') == -1 + +" Vim filetype plugin file +" Language: occam +" Copyright: Christian Jacobsen <clj3@kent.ac.uk>, Mario Schweigler <ms44@kent.ac.uk> +" Maintainer: Mario Schweigler <ms44@kent.ac.uk> +" Last Change: 23 April 2003 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 +let s:keepcpo= &cpo +set cpo&vim + +"{{{ Indent settings +" Set shift width for indent +setlocal shiftwidth=2 +" Set the tab key size to two spaces +setlocal softtabstop=2 +" Let tab keys always be expanded to spaces +setlocal expandtab +"}}} + +"{{{ Formatting +" Break comment lines and insert comment leader in this case +setlocal formatoptions-=t formatoptions+=cql +setlocal comments+=:-- +" Maximum length of comments is 78 +setlocal textwidth=78 +"}}} + +"{{{ File browsing filters +" Win32 can filter files in the browse dialog +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "All Occam Files (*.occ *.inc)\t*.occ;*.inc\n" . + \ "Occam Include Files (*.inc)\t*.inc\n" . + \ "Occam Source Files (*.occ)\t*.occ\n" . + \ "All Files (*.*)\t*.*\n" +endif +"}}} + +"{{{ Undo settings +let b:undo_ftplugin = "setlocal shiftwidth< softtabstop< expandtab<" + \ . " formatoptions< comments< textwidth<" + \ . "| unlet! b:browsefiler" +"}}} + +let &cpo = s:keepcpo +unlet s:keepcpo + +endif diff --git a/ftplugin/pamconf.vim b/ftplugin/pamconf.vim new file mode 100644 index 00000000..e8925de4 --- /dev/null +++ b/ftplugin/pamconf.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'pamconf') == -1 + +" Vim filetype plugin file +" Language: pam(8) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/pascal.vim b/ftplugin/pascal.vim new file mode 100644 index 00000000..f026da08 --- /dev/null +++ b/ftplugin/pascal.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'pascal') == -1 + +" Vim filetype plugin file +" Language: pascal +" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> +" Last Changed: 11 Apr 2011 +" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin + +if exists("b:did_ftplugin") | finish | endif +let b:did_ftplugin = 1 + +if exists("loaded_matchit") + let b:match_ignorecase = 1 " (pascal is case-insensitive) + + let b:match_words = '\<\%(begin\|case\|record\|object\|try\)\>' + let b:match_words .= ':\<^\s*\%(except\|finally\)\>:\<end\>' + let b:match_words .= ',\<repeat\>:\<until\>' + let b:match_words .= ',\<if\>:\<else\>' +endif + +" Undo the stuff we changed. +let b:undo_ftplugin = "unlet! b:match_words" + +endif diff --git a/ftplugin/passwd.vim b/ftplugin/passwd.vim new file mode 100644 index 00000000..d1375872 --- /dev/null +++ b/ftplugin/passwd.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'passwd') == -1 + +" Vim filetype plugin file +" Language: passwd(5) password file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/pdf.vim b/ftplugin/pdf.vim new file mode 100644 index 00000000..12dbc603 --- /dev/null +++ b/ftplugin/pdf.vim @@ -0,0 +1,93 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'pdf') == -1 + +" Vim filetype plugin file +" Language: PDF +" Maintainer: Tim Pope <vimNOSPAM@tpope.info> +" Last Change: 2007 Dec 16 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +setlocal commentstring=%%s +setlocal comments=:% +let b:undo_ftplugin = "setlocal cms< com< | unlet! b:match_words" + +if exists("g:loaded_matchit") + let b:match_words = '\<\%(\d\+\s\+\d\+\s\+\)obj\>:\<endobj\>,\<stream$:\<endstream\>,\<xref\>:\<trailer\>,<<:>>' +endif + +if exists("g:no_plugin_maps") || exists("g:no_pdf_maps") || v:version < 700 + finish +endif + +if !exists("b:pdf_tagstack") + let b:pdf_tagstack = [] +endif + +let b:undo_ftplugin .= " | silent! nunmap <buffer> <C-]> | silent! nunmap <buffer> <C-T>" +nnoremap <silent><buffer> <C-]> :call <SID>Tag()<CR> +" Inline, so the error from an empty tag stack will be simple. +nnoremap <silent><buffer> <C-T> :if len(b:pdf_tagstack) > 0 <Bar> call setpos('.',remove(b:pdf_tagstack, -1)) <Bar> else <Bar> exe "norm! \<Lt>C-T>" <Bar> endif<CR> + +function! s:Tag() + call add(b:pdf_tagstack,getpos('.')) + if getline('.') =~ '^\d\+$' && getline(line('.')-1) == 'startxref' + return s:dodigits(getline('.')) + elseif getline('.') =~ '/Prev\s\+\d\+\>\%(\s\+\d\)\@!' && expand("<cword>") =~ '^\d\+$' + return s:dodigits(expand("<cword>")) + elseif getline('.') =~ '^\d\{10\} \d\{5\} ' + return s:dodigits(matchstr(getline('.'),'^\d\+')) + else + let line = getline(".") + let lastend = 0 + let pat = '\<\d\+\s\+\d\+\s\+R\>' + while lastend >= 0 + let beg = match(line,'\C'.pat,lastend) + let end = matchend(line,'\C'.pat,lastend) + if beg < col(".") && end >= col(".") + return s:doobject(matchstr(line,'\C'.pat,lastend)) + endif + let lastend = end + endwhile + return s:notag() + endif +endfunction + +function! s:doobject(string) + let first = matchstr(a:string,'^\s*\zs\d\+') + let second = matchstr(a:string,'^\s*\d\+\s\+\zs\d\+') + norm! m' + if first != '' && second != '' + let oldline = line('.') + let oldcol = col('.') + 1 + if !search('^\s*'.first.'\s\+'.second.'\s\+obj\>') + exe oldline + exe 'norm! '.oldcol.'|' + return s:notag() + endif + endif +endfunction + +function! s:dodigits(digits) + let digits = 0 + substitute(a:digits,'^0*','','') + norm! m' + if digits <= 0 + norm! 1go + else + " Go one character before the destination and advance. This method + " lands us after a newline rather than before, if that is our target. + exe "goto ".(digits)."|norm! 1 " + endif +endfunction + +function! s:notag() + silent! call remove(b:pdf_tagstack,-1) + echohl ErrorMsg + echo "E426: tag not found" + echohl NONE +endfunction + +endif diff --git a/ftplugin/pinfo.vim b/ftplugin/pinfo.vim new file mode 100644 index 00000000..1fbcab16 --- /dev/null +++ b/ftplugin/pinfo.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'pinfo') == -1 + +" Vim filetype plugin file +" Language: pinfo(1) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/postscr.vim b/ftplugin/postscr.vim new file mode 100644 index 00000000..7730cdc8 --- /dev/null +++ b/ftplugin/postscr.vim @@ -0,0 +1,42 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'postscr') == -1 + +" Vim filetype plugin file +" Language: PostScript +" Maintainer: Mike Williams <mrw@eandem.co.uk> +" Last Change: 24th April 2012 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +" PS comment formatting +setlocal comments=b:% +setlocal formatoptions-=t formatoptions+=rol + +" Define patterns for the matchit macro +if !exists("b:match_words") + let b:match_ignorecase = 0 + let b:match_words = '<<:>>,\<begin\>:\<end\>,\<save\>:\<restore\>,\<gsave\>:\<grestore\>' +endif + +" Define patterns for the browse file filter +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "PostScript Files (*.ps)\t*.ps\n" . + \ "EPS Files (*.eps)\t*.eps\n" . + \ "All Files (*.*)\t*.*\n" +endif + +let b:undo_ftplugin = "setlocal comments< formatoptions<" + \ . "| unlet! b:browsefiler b:match_ignorecase b:match_words" + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/procmail.vim b/ftplugin/procmail.vim new file mode 100644 index 00000000..7bc335d7 --- /dev/null +++ b/ftplugin/procmail.vim @@ -0,0 +1,25 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'procmail') == -1 + +" Vim filetype plugin file +" Language: procmail(1) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< inc< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &l:include = '^\s*INCLUDERC\>' + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/protocols.vim b/ftplugin/protocols.vim new file mode 100644 index 00000000..293bc6c2 --- /dev/null +++ b/ftplugin/protocols.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'protocols') == -1 + +" Vim filetype plugin file +" Language: protocols(5) - Internet protocols definition file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/pyrex.vim b/ftplugin/pyrex.vim new file mode 100644 index 00000000..62b8e2ae --- /dev/null +++ b/ftplugin/pyrex.vim @@ -0,0 +1,31 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'pyrex') == -1 + +" Vim filetype plugin file +" Language: Pyrex +" Maintainer: Marco Barisione <marco.bari@people.it> +" URL: http://marcobari.altervista.org/pyrex_vim.html +" Last Change: 2012 May 18 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +" Behaves just like Python +runtime! ftplugin/python.vim ftplugin/python_*.vim ftplugin/python/*.vim + +if has("gui_win32") && exists("b:browsefilter") + let b:browsefilter = "Pyrex files (*.pyx,*.pxd)\t*.pyx;*.pxd\n" . + \ "Python Files (*.py)\t*.py\n" . + \ "C Source Files (*.c)\t*.c\n" . + \ "C Header Files (*.h)\t*.h\n" . + \ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" . + \ "All Files (*.*)\t*.*\n" +endif + +let &cpo = s:keepcpo +unlet s:keepcpo + +endif diff --git a/ftplugin/quake.vim b/ftplugin/quake.vim new file mode 100644 index 00000000..bab3eca1 --- /dev/null +++ b/ftplugin/quake.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'quake') == -1 + +" Vim filetype plugin file +" Language: Quake[1-3] configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:// commentstring=//\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/readline.vim b/ftplugin/readline.vim new file mode 100644 index 00000000..042f4b6b --- /dev/null +++ b/ftplugin/readline.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'readline') == -1 + +" Vim filetype plugin file +" Language: readline(3) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/reva.vim b/ftplugin/reva.vim new file mode 100644 index 00000000..5fe5f59f --- /dev/null +++ b/ftplugin/reva.vim @@ -0,0 +1,29 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'reva') == -1 + +" Vim ftplugin file +" Language: Reva Forth +" Version: 7.1 +" Last Change: 2008/01/11 +" Maintainer: Ron Aaron <ron@ronware.org> +" URL: http://ronware.org/reva/ +" Filetypes: *.rf *.frt +" NOTE: Forth allows any non-whitespace in a name, so you need to do: +" setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255 +" +" This goes with the syntax/reva.vim file. + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +setlocal sts=4 sw=4 +setlocal com=s1:/*,mb:*,ex:*/,:\|,:\\ +setlocal fo=tcrqol +setlocal matchpairs+=\::; +setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255 + +endif diff --git a/ftplugin/rmd.vim b/ftplugin/rmd.vim new file mode 100644 index 00000000..32fcc961 --- /dev/null +++ b/ftplugin/rmd.vim @@ -0,0 +1,67 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rmd') == -1 + +" Vim filetype plugin file +" Language: R Markdown file +" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> +" Homepage: https://github.com/jalvesaq/R-Vim-runtime +" Last Change: Sun Jul 22, 2018 06:51PM +" Original work by Alex Zvoleff (adjusted from R help for rmd by Michel Kuhlmann) + +" Only do this when not yet done for this buffer +if exists("b:did_ftplugin") + finish +endif + +if exists('g:rmd_include_html') && g:rmd_include_html + runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim +endif + +setlocal comments=fb:*,fb:-,fb:+,n:> +setlocal commentstring=#\ %s +setlocal formatoptions+=tcqln +setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+ +setlocal iskeyword=@,48-57,_,. + +let s:cpo_save = &cpo +set cpo&vim + +function! FormatRmd() + if search("^[ \t]*```[ ]*{r", "bncW") > search("^[ \t]*```$", "bncW") + setlocal comments=:#',:###,:##,:# + else + setlocal comments=fb:*,fb:-,fb:+,n:> + endif + return 1 +endfunction + +" If you do not want 'comments' dynamically defined, put in your vimrc: +" let g:rmd_dynamic_comments = 0 +if !exists("g:rmd_dynamic_comments") || (exists("g:rmd_dynamic_comments") && g:rmd_dynamic_comments == 1) + setlocal formatexpr=FormatRmd() +endif + + +" Enables pandoc if it is installed +unlet! b:did_ftplugin +runtime ftplugin/pandoc.vim + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" . + \ "All Files (*.*)\t*.*\n" +endif + +if exists('b:undo_ftplugin') + let b:undo_ftplugin .= " | setl cms< com< fo< flp< isk< | unlet! b:browsefilter" +else + let b:undo_ftplugin = "setl cms< com< fo< flp< isk< | unlet! b:browsefilter" +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: sw=2 + +endif diff --git a/ftplugin/rnc.vim b/ftplugin/rnc.vim new file mode 100644 index 00000000..78f30817 --- /dev/null +++ b/ftplugin/rnc.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rnc') == -1 + +" Vim filetype plugin file +" Language: Relax NG compact syntax +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/rnoweb.vim b/ftplugin/rnoweb.vim new file mode 100644 index 00000000..1253c451 --- /dev/null +++ b/ftplugin/rnoweb.vim @@ -0,0 +1,45 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rnoweb') == -1 + +" Vim filetype plugin file +" Language: Rnoweb +" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> +" Homepage: https://github.com/jalvesaq/R-Vim-runtime +" Last Change: Tue Apr 07, 2015 04:37PM + +" Only do this when not yet done for this buffer +if exists("b:did_ftplugin") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +runtime! ftplugin/tex.vim + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +" Enables Vim-Latex-Suite, LaTeX-Box if installed +runtime ftplugin/tex_*.vim + +setlocal iskeyword=@,48-57,_,. +setlocal suffixesadd=.bib,.tex +setlocal comments=b:%,b:#,b:##,b:###,b:#' + +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" . + \ "All Files (*.*)\t*.*\n" +endif + +if exists('b:undo_ftplugin') + let b:undo_ftplugin .= " | setl isk< sua< com< | unlet! b:browsefilter" +else + let b:undo_ftplugin = "setl isk< sua< com< | unlet! b:browsefilter" +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: sw=2 + +endif diff --git a/ftplugin/rpl.vim b/ftplugin/rpl.vim new file mode 100644 index 00000000..cc24fffd --- /dev/null +++ b/ftplugin/rpl.vim @@ -0,0 +1,26 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rpl') == -1 + +" Vim filetype plugin file +" Language: RPL/2 +" Maintainer: Joël BERTRAND <rpl2@free.fr> +" Last Change: 2012 Mar 07 +" Version: 0.1 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +" Set 'formatoptions' to break comment lines but not other lines, +" and insert the comment leader when hitting <CR> or using "o". +setlocal fo-=t fo+=croql + +" Set 'comments' to format dashed lists in comments. +setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// + +let b:undo_ftplugin = "setlocal fo< comments<" + +endif diff --git a/ftplugin/rrst.vim b/ftplugin/rrst.vim new file mode 100644 index 00000000..7ddc0fc7 --- /dev/null +++ b/ftplugin/rrst.vim @@ -0,0 +1,58 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rrst') == -1 + +" Vim filetype plugin file +" Language: reStructuredText documentation format with R code +" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> +" Homepage: https://github.com/jalvesaq/R-Vim-runtime +" Last Change: Wed Nov 01, 2017 10:47PM +" Original work by Alex Zvoleff + +" Only do this when not yet done for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +setlocal comments=fb:*,fb:-,fb:+,n:> +setlocal commentstring=#\ %s +setlocal formatoptions+=tcqln +setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+ +setlocal iskeyword=@,48-57,_,. + +function! FormatRrst() + if search('^\.\. {r', "bncW") > search('^\.\. \.\.$', "bncW") + setlocal comments=:#',:###,:##,:# + else + setlocal comments=fb:*,fb:-,fb:+,n:> + endif + return 1 +endfunction + +" If you do not want 'comments' dynamically defined, put in your vimrc: +" let g:rrst_dynamic_comments = 0 +if !exists("g:rrst_dynamic_comments") || (exists("g:rrst_dynamic_comments") && g:rrst_dynamic_comments == 1) + setlocal formatexpr=FormatRrst() +endif + +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" . + \ "All Files (*.*)\t*.*\n" +endif + +if exists('b:undo_ftplugin') + let b:undo_ftplugin .= " | setl cms< com< fo< flp< isk< | unlet! b:browsefilter" +else + let b:undo_ftplugin = "setl cms< com< fo< flp< isk< | unlet! b:browsefilter" +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: sw=2 + +endif diff --git a/ftplugin/sass.vim b/ftplugin/sass.vim new file mode 100644 index 00000000..d13a9e18 --- /dev/null +++ b/ftplugin/sass.vim @@ -0,0 +1,41 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'sass') == -1 + +" Vim filetype plugin +" Language: Sass +" Maintainer: Tim Pope <vimNOSPAM@tpope.org> +" Last Change: 2019 Dec 05 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl com< cms< def< inc< inex< ofu< sua<" + +setlocal comments=:// +setlocal commentstring=//\ %s +setlocal includeexpr=SassIncludeExpr(v:fname) +setlocal omnifunc=csscomplete#CompleteCSS +setlocal suffixesadd=.sass,.scss,.css +if &filetype =~# '\<s[ac]ss]\>' + setlocal iskeyword+=- + setlocal iskeyword+=$ + setlocal iskeyword+=% + let b:undo_ftplugin .= ' isk<' +endif + +let &l:define = '^\C\v\s*%(\@function|\@mixin|\=)|^\s*%(\$[[:alnum:]-]+:|[%.][:alnum:]-]+\s*%(\{|$))@=' +let &l:include = '^\s*@import\s\+\%(url(\)\=["'']\=' + +function! SassIncludeExpr(file) abort + let partial = substitute(a:file, '\%(.*/\|^\)\zs', '_', '') + if !empty(findfile(partial)) + return partial + endif + return a:file +endfunction + +" vim:set sw=2: + +endif diff --git a/ftplugin/scheme.vim b/ftplugin/scheme.vim new file mode 100644 index 00000000..e79efe7e --- /dev/null +++ b/ftplugin/scheme.vim @@ -0,0 +1,61 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'scheme') == -1 + +" Vim filetype plugin file +" Language: Scheme (R7RS) +" Last Change: 2019 Nov 18 +" Author: Evan Hanson <evhan@foldling.org> +" Maintainer: Evan Hanson <evhan@foldling.org> +" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com> +" URL: https://foldling.org/vim/ftplugin/scheme.vim + +if exists('b:did_ftplugin') + finish +endif + +let s:cpo = &cpo +set cpo&vim + +setl lisp +setl comments=:;;;;,:;;;,:;;,:;,sr:#\|,mb:\|,ex:\|# +setl commentstring=;%s +setl define=^\\s*(def\\k* +setl iskeyword=33,35-39,42-43,45-58,60-90,94,95,97-122,126 + +let b:undo_ftplugin = 'setl lisp< comments< commentstring< define< iskeyword<' + +setl lispwords+=case +setl lispwords+=define +setl lispwords+=define-record-type +setl lispwords+=define-syntax +setl lispwords+=define-values +setl lispwords+=do +setl lispwords+=guard +setl lispwords+=lambda +setl lispwords+=let +setl lispwords+=let* +setl lispwords+=let*-values +setl lispwords+=let-syntax +setl lispwords+=let-values +setl lispwords+=letrec +setl lispwords+=letrec* +setl lispwords+=letrec-syntax +setl lispwords+=parameterize +setl lispwords+=set! +setl lispwords+=syntax-rules +setl lispwords+=unless +setl lispwords+=when + +let b:undo_ftplugin = b:undo_ftplugin . ' lispwords<' + +let b:did_scheme_ftplugin = 1 + +if exists('b:is_chicken') || exists('g:is_chicken') + exe 'ru! ftplugin/chicken.vim' +endif + +unlet b:did_scheme_ftplugin +let b:did_ftplugin = 1 +let &cpo = s:cpo +unlet s:cpo + +endif diff --git a/ftplugin/screen.vim b/ftplugin/screen.vim new file mode 100644 index 00000000..ecd1f5ac --- /dev/null +++ b/ftplugin/screen.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'screen') == -1 + +" Vim filetype plugin file +" Language: screen(1) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/sensors.vim b/ftplugin/sensors.vim new file mode 100644 index 00000000..bdf1ea91 --- /dev/null +++ b/ftplugin/sensors.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'sensors') == -1 + +" Vim filetype plugin file +" Language: sensors.conf(5) - libsensors configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/services.vim b/ftplugin/services.vim new file mode 100644 index 00000000..c676b8a7 --- /dev/null +++ b/ftplugin/services.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'services') == -1 + +" Vim filetype plugin file +" Language: services(5) - Internet network services list +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/setserial.vim b/ftplugin/setserial.vim new file mode 100644 index 00000000..270f2e0f --- /dev/null +++ b/ftplugin/setserial.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'setserial') == -1 + +" Vim filetype plugin file +" Language: setserial(8) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/sieve.vim b/ftplugin/sieve.vim new file mode 100644 index 00000000..e14eadf4 --- /dev/null +++ b/ftplugin/sieve.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'sieve') == -1 + +" Vim filetype plugin file +" Language: Sieve filtering language input file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=s1:/*,mb:*,ex:*/,:# commentstring=#\ %s +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/slpconf.vim b/ftplugin/slpconf.vim new file mode 100644 index 00000000..c03df0c1 --- /dev/null +++ b/ftplugin/slpconf.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'slpconf') == -1 + +" Vim filetype plugin file +" Language: RFC 2614 - An API for Service Location configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:#,:; commentstring=#\ %s +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/slpreg.vim b/ftplugin/slpreg.vim new file mode 100644 index 00000000..5e6bcfeb --- /dev/null +++ b/ftplugin/slpreg.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'slpreg') == -1 + +" Vim filetype plugin file +" Language: RFC 2614 - An API for Service Location registration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:#,:; commentstring=#\ %s +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/slpspi.vim b/ftplugin/slpspi.vim new file mode 100644 index 00000000..1e253e1f --- /dev/null +++ b/ftplugin/slpspi.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'slpspi') == -1 + +" Vim filetype plugin file +" Language: RFC 2614 - An API for Service Location SPI file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:#,:; commentstring=#\ %s +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/spec.vim b/ftplugin/spec.vim new file mode 100644 index 00000000..cf93a223 --- /dev/null +++ b/ftplugin/spec.vim @@ -0,0 +1,212 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'spec') == -1 + +" Plugin to update the %changelog section of RPM spec files +" Filename: spec.vim +" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com +" Former Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com> (until March 2014) +" Last Change: Mon Jun 01 21:15 MSK 2015 Igor Gnatenko + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +if !exists("no_plugin_maps") && !exists("no_spec_maps") + if !hasmapto("<Plug>SpecChangelog") + map <buffer> <LocalLeader>c <Plug>SpecChangelog + endif +endif + +if !hasmapto("call <SID>SpecChangelog(\"\")<CR>") + noremap <buffer> <unique> <script> <Plug>SpecChangelog :call <SID>SpecChangelog("")<CR> +endif + +if !exists("*s:GetRelVer") + function! s:GetRelVer() + if has('python') +python << PYEND +import sys, datetime, shutil, tempfile +import vim + +try: + import rpm +except ImportError: + pass +else: + specfile = vim.current.buffer.name + if specfile: + rpm.delMacro("dist") + spec = rpm.spec(specfile) + headers = spec.sourceHeader + version = headers["Version"] + release = headers["Release"] + vim.command("let ver = " + version) + vim.command("let rel = " + release) +PYEND + endif + endfunction +endif + +if !exists("*s:SpecChangelog") + function s:SpecChangelog(format) + if strlen(a:format) == 0 + if !exists("g:spec_chglog_format") + let email = input("Name <email address>: ") + let g:spec_chglog_format = "%a %b %d %Y " . l:email + echo "\r" + endif + let format = g:spec_chglog_format + else + if !exists("g:spec_chglog_format") + let g:spec_chglog_format = a:format + endif + let format = a:format + endif + let line = 0 + let name = "" + let ver = "" + let rel = "" + let nameline = -1 + let verline = -1 + let relline = -1 + let chgline = -1 + while (line <= line("$")) + let linestr = getline(line) + if (name == "" && linestr =~? '^Name:') + let nameline = line + let name = substitute(strpart(linestr,5), '^[ ]*\([^ ]\+\)[ ]*$','\1','') + elseif (ver == "" && linestr =~? '^Version:') + let verline = line + let ver = substitute(strpart(linestr,8), '^[ ]*\([^ ]\+\)[ ]*$','\1','') + elseif (rel == "" && linestr =~? '^Release:') + let relline = line + let rel = substitute(strpart(linestr,8), '^[ ]*\([^ ]\+\)[ ]*$','\1','') + elseif (linestr =~? '^%changelog') + let chgline = line + execute line + break + endif + let line = line+1 + endwhile + if (nameline != -1 && verline != -1 && relline != -1) + let include_release_info = exists("g:spec_chglog_release_info") + let name = s:ParseRpmVars(name, nameline) + let ver = s:ParseRpmVars(ver, verline) + let rel = s:ParseRpmVars(rel, relline) + else + let include_release_info = 0 + endif + + call s:GetRelVer() + + if (chgline == -1) + let option = confirm("Can't find %changelog. Create one? ","&End of file\n&Here\n&Cancel",3) + if (option == 1) + call append(line("$"),"") + call append(line("$"),"%changelog") + execute line("$") + let chgline = line(".") + elseif (option == 2) + call append(line("."),"%changelog") + normal j + chgline = line(".") + endif + endif + if (chgline != -1) + let tmptime = v:lc_time + language time C + let parsed_format = "* ".strftime(format)." - ".ver."-".rel + execute "language time" tmptime + let release_info = "+ ".name."-".ver."-".rel + let wrong_format = 0 + let wrong_release = 0 + let insert_line = 0 + if (getline(chgline+1) != parsed_format) + let wrong_format = 1 + endif + if (include_release_info && getline(chgline+2) != release_info) + let wrong_release = 1 + endif + if (wrong_format || wrong_release) + if (include_release_info && !wrong_release && !exists("g:spec_chglog_never_increase_release")) + let option = confirm("Increase release? ","&Yes\n&No",1) + if (option == 1) + execute relline + normal + let rel = substitute(strpart(getline(relline),8), '^[ ]*\([^ ]\+\)[ ]*$','\1','') + let release_info = "+ ".name."-".ver."-".rel + endif + endif + let n = 0 + call append(chgline+n, parsed_format) + if include_release_info + let n = n + 1 + call append(chgline+n, release_info) + endif + let n = n + 1 + call append(chgline+n,"- ") + let n = n + 1 + call append(chgline+n,"") + let insert_line = chgline+n + else + let line = chgline + if !exists("g:spec_chglog_prepend") + while !(getline(line+2) =~ '^\( *\|\*.*\)$') + let line = line+1 + endwhile + endif + call append(line+1,"- ") + let insert_line = line+2 + endif + execute insert_line + startinsert! + endif + endfunction +endif + +if !exists("*s:ParseRpmVars") + function s:ParseRpmVars(str, strline) + let end = -1 + let ret = "" + while (1) + let start = match(a:str, "\%{", end+1) + if (start == -1) + let ret = ret . strpart(a:str, end+1) + break + endif + let ret = ret . strpart(a:str, end+1, start-(end+1)) + let end = match(a:str, "}", start) + if (end == -1) + let ret = ret . strpart(a:str, start) + break + endif + let varname = strpart(a:str, start+2, end-(start+2)) + execute a:strline + let definestr = "^[ \t]*%\\(define\\|global\\)[ \t]\\+".varname."[ \t]\\+\\(.*\\)$" + let linenum = search(definestr, "bW") + if (linenum != 0) + let ret = ret . substitute(getline(linenum), definestr, "\\2", "") + endif + endwhile + return ret + endfunction +endif + +" The following lines, along with the macros/matchit.vim plugin, +" make it easy to navigate the different sections of a spec file +" with the % key (thanks to Max Ischenko). + +let b:match_ignorecase = 0 +let b:match_words = + \ '^Name:^%description:^%clean:^%(?:auto)?setup:^%build:^%install:^%files:' . + \ '^%package:^%preun:^%postun:^%changelog' + +let &cpo = s:cpo_save +unlet s:cpo_save + +let b:undo_ftplugin = "unlet! b:match_ignorecase b:match_words" + +endif diff --git a/ftplugin/sshconfig.vim b/ftplugin/sshconfig.vim new file mode 100644 index 00000000..3233a591 --- /dev/null +++ b/ftplugin/sshconfig.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'sshconfig') == -1 + +" Vim filetype plugin file +" Language: OpenSSH client configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/sudoers.vim b/ftplugin/sudoers.vim new file mode 100644 index 00000000..61a5f708 --- /dev/null +++ b/ftplugin/sudoers.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'sudoers') == -1 + +" Vim filetype plugin file +" Language: sudoers(5) configuration files +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/swiftgyb.vim b/ftplugin/swiftgyb.vim new file mode 100644 index 00000000..a8f2ebcf --- /dev/null +++ b/ftplugin/swiftgyb.vim @@ -0,0 +1,15 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'swiftgyb') == -1 + +" This source file is part of the Swift.org open source project +" +" Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors +" Licensed under Apache License v2.0 with Runtime Library Exception +" +" See https://swift.org/LICENSE.txt for license information +" See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +" +" Vim maintainer: Emir SARI <bitigchi@me.com> + +runtime! ftplugin/swift.vim + +endif diff --git a/ftplugin/sysctl.vim b/ftplugin/sysctl.vim new file mode 100644 index 00000000..7288f020 --- /dev/null +++ b/ftplugin/sysctl.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'sysctl') == -1 + +" Vim filetype plugin file +" Language: sysctl.conf(5) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:;,:# commentstring=#\ %s +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/systemverilog.vim b/ftplugin/systemverilog.vim new file mode 100644 index 00000000..49502bfa --- /dev/null +++ b/ftplugin/systemverilog.vim @@ -0,0 +1,15 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'systemverilog') == -1 + +" Vim filetype plugin file +" Language: SystemVerilog +" Maintainer: kocha <kocha.lsifrontend@gmail.com> +" Last Change: 12-Aug-2013. + +if exists("b:did_ftplugin") + finish +endif + +" Behaves just like Verilog +runtime! ftplugin/verilog.vim + +endif diff --git a/ftplugin/tcl.vim b/ftplugin/tcl.vim new file mode 100644 index 00000000..d9bd25c2 --- /dev/null +++ b/ftplugin/tcl.vim @@ -0,0 +1,41 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'tcl') == -1 + +" Vim filetype plugin file +" Language: Tcl +" Maintainer: Robert L Hicks <sigzero@gmail.com> +" Latest Revision: 2009-05-01 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +" Make sure the continuation lines below do not cause problems in +" compatibility mode. +let s:cpo_save = &cpo +set cpo-=C + +setlocal comments=:# +setlocal commentstring=#%s +setlocal formatoptions+=croql + +" Change the browse dialog on Windows to show mainly Tcl-related files +if has("gui_win32") + let b:browsefilter = "Tcl Source Files (.tcl)\t*.tcl\n" . + \ "Tcl Test Files (.test)\t*.test\n" . + \ "All Files (*.*)\t*.*\n" +endif + +"----------------------------------------------------------------------------- + +" Undo the stuff we changed. +let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp<" . + \ " | unlet! b:browsefilter" + +" Restore the saved compatibility options. +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: set et ts=4 sw=4 tw=78: + +endif diff --git a/ftplugin/terminfo.vim b/ftplugin/terminfo.vim new file mode 100644 index 00000000..6466f3c6 --- /dev/null +++ b/ftplugin/terminfo.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'terminfo') == -1 + +" Vim filetype plugin file +" Language: terminfo(5) definition +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/tex.vim b/ftplugin/tex.vim new file mode 100644 index 00000000..4890dba3 --- /dev/null +++ b/ftplugin/tex.vim @@ -0,0 +1,50 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'tex') == -1 + +" LaTeX filetype plugin +" Language: LaTeX (ft=tex) +" Maintainer: Benji Fisher, Ph.D. <benji@member.AMS.org> +" Version: 1.4 +" Last Change: Wed 19 Apr 2006 +" URL: http://www.vim.org/script.php?script_id=411 + +" Only do this when not done yet for this buffer. +if exists("b:did_ftplugin") + finish +endif + +" Start with plain TeX. This will also define b:did_ftplugin . +source $VIMRUNTIME/ftplugin/plaintex.vim + +" Avoid problems if running in 'compatible' mode. +let s:save_cpo = &cpo +set cpo&vim + +let b:undo_ftplugin .= "| setl inex<" + +" Allow "[d" to be used to find a macro definition: +" Recognize plain TeX \def as well as LaTeX \newcommand and \renewcommand . +" I may as well add the AMS-LaTeX DeclareMathOperator as well. +let &l:define .= '\|\\\(re\)\=new\(boolean\|command\|counter\|environment\|font' + \ . '\|if\|length\|savebox\|theorem\(style\)\=\)\s*\*\=\s*{\=' + \ . '\|DeclareMathOperator\s*{\=\s*' + +" Tell Vim how to recognize LaTeX \include{foo} and plain \input bar : +let &l:include .= '\|\\include{' +" On some file systems, "{" and "}" are inluded in 'isfname'. In case the +" TeX file has \include{fname} (LaTeX only), strip everything except "fname". +let &l:includeexpr = "substitute(v:fname, '^.\\{-}{\\|}.*', '', 'g')" + +" The following lines enable the macros/matchit.vim plugin for +" extended matching with the % key. +" ftplugin/plaintex.vim already defines b:match_skip and b:match_ignorecase +" and matches \(, \), \[, \], \{, and \} . +if exists("loaded_matchit") + let b:match_words .= ',\\begin\s*\({\a\+\*\=}\):\\end\s*\1' +endif " exists("loaded_matchit") + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim:sts=2:sw=2: + +endif diff --git a/ftplugin/text.vim b/ftplugin/text.vim new file mode 100644 index 00000000..8dcebd6d --- /dev/null +++ b/ftplugin/text.vim @@ -0,0 +1,22 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'text') == -1 + +" Vim filetype plugin +" Language: Text +" Maintainer: David Barnett <daviebdawg+vim@gmail.com> +" Last Change: 2019 Jan 10 + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = 'setlocal comments< commentstring<' + +" We intentionally don't set formatoptions-=t since text should wrap as text. + +" Pseudo comment leaders to indent bulleted lists with '-' and '*'. And allow +" for Mail quoted text with '>'. +setlocal comments=fb:-,fb:*,n:> +setlocal commentstring= + +endif diff --git a/ftplugin/treetop.vim b/ftplugin/treetop.vim new file mode 100644 index 00000000..59376a3b --- /dev/null +++ b/ftplugin/treetop.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'treetop') == -1 + +" Vim filetype plugin file +" Language: Treetop +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2011-03-14 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +setlocal comments=b:# commentstring=#\ %s formatoptions-=tcroq formatoptions+=l + +let b:undo_ftplugin = "setl com< cms< fo<" + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/udevconf.vim b/ftplugin/udevconf.vim new file mode 100644 index 00000000..2e706fd1 --- /dev/null +++ b/ftplugin/udevconf.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'udevconf') == -1 + +" Vim filetype plugin file +" Language: udev(8) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/udevperm.vim b/ftplugin/udevperm.vim new file mode 100644 index 00000000..26616d82 --- /dev/null +++ b/ftplugin/udevperm.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'udevperm') == -1 + +" Vim filetype plugin file +" Language: udev(8) permissions file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/updatedb.vim b/ftplugin/updatedb.vim new file mode 100644 index 00000000..69f4c712 --- /dev/null +++ b/ftplugin/updatedb.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'updatedb') == -1 + +" Vim filetype plugin file +" Language: updatedb.conf(5) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/verilog.vim b/ftplugin/verilog.vim new file mode 100644 index 00000000..dd380525 --- /dev/null +++ b/ftplugin/verilog.vim @@ -0,0 +1,70 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'verilog') == -1 + +" Vim filetype plugin file +" Language: Verilog HDL +" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw> +" Last Change: 2017 Aug 25 by Chih-Tsun Huang +" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim +" +" Credits: +" Suggestions for improvement, bug reports by +" Shao <shaominghai2005@163.com> + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +" Set 'cpoptions' to allow line continuations +let s:cpo_save = &cpo +set cpo&vim + +" Undo the plugin effect +let b:undo_ftplugin = "setlocal fo< com< tw<" + \ . "| unlet! b:browsefilter b:match_ignorecase b:match_words" + +" Set 'formatoptions' to break comment lines but not other lines, +" and insert the comment leader when hitting <CR> or using "o". +setlocal fo-=t fo+=croqlm1 + +" Set 'comments' to format dashed lists in comments. +setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// + +" Format comments to be up to 78 characters long +if &textwidth == 0 + setlocal tw=78 +endif + +" Win32 can filter files in the browse dialog +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "Verilog Source Files (*.v)\t*.v\n" . + \ "All Files (*.*)\t*.*\n" +endif + +" Let the matchit plugin know what items can be matched. +if exists("loaded_matchit") + let b:match_ignorecase=0 + let b:match_words= + \ '\<begin\>:\<end\>,' . + \ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' . + \ '\<module\>:\<endmodule\>,' . + \ '\<if\>:`\@<!\<else\>,' . + \ '\<function\>:\<endfunction\>,' . + \ '`ifn\?def\>:`elsif\>:`else\>:`endif\>,' . + \ '\<task\>:\<endtask\>,' . + \ '\<specify\>:\<endspecify\>,' . + \ '\<config\>:\<endconfig\>,' . + \ '\<generate\>:\<endgenerate\>,' . + \ '\<fork\>:\<join\>,' . + \ '\<primitive\>:\<endprimitive\>,' . + \ '\<table\>:\<endtable\>' +endif + +" Reset 'cpoptions' back to the user's setting +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/vhdl.vim b/ftplugin/vhdl.vim new file mode 100644 index 00000000..55490ffb --- /dev/null +++ b/ftplugin/vhdl.vim @@ -0,0 +1,92 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vhdl') == -1 + +" VHDL filetype plugin +" Language: VHDL +" Maintainer: R.Shankar <shankar.pec?gmail.com> +" Modified By: Gerald Lai <laigera+vim?gmail.com> +" Last Change: 2011 Dec 11 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +" Set 'formatoptions' to break comment lines but not other lines, +" and insert the comment leader when hitting <CR> or using "o". +"setlocal fo-=t fo+=croqlm1 + +" Set 'comments' to format dashed lists in comments. +"setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// + +" Format comments to be up to 78 characters long +"setlocal tw=75 + +" Win32 can filter files in the browse dialog +"if has("gui_win32") && !exists("b:browsefilter") +" let b:browsefilter = "Verilog Source Files (*.v)\t*.v\n" . +" \ "All Files (*.*)\t*.*\n" +"endif + +" Let the matchit plugin know what items can be matched. +if ! exists("b:match_words") && exists("loaded_matchit") + let b:match_ignorecase=1 + let s:notend = '\%(\<end\s\+\)\@<!' + let b:match_words = + \ s:notend.'\<if\>:\<elsif\>:\<else\>:\<end\s\+if\>,'. + \ s:notend.'\<case\>:\<when\>:\<end\s\+case\>,'. + \ s:notend.'\<loop\>:\<end\s\+loop\>,'. + \ s:notend.'\<for\>:\<end\s\+for\>,'. + \ s:notend.'\<generate\>:\<end\s\+generate\>,'. + \ s:notend.'\<record\>:\<end\s\+record\>,'. + \ s:notend.'\<units\>:\<end\s\+units\>,'. + \ s:notend.'\<process\>:\<end\s\+process\>,'. + \ s:notend.'\<block\>:\<end\s\+block\>,'. + \ s:notend.'\<function\>:\<end\s\+function\>,'. + \ s:notend.'\<entity\>:\<end\s\+entity\>,'. + \ s:notend.'\<component\>:\<end\s\+component\>,'. + \ s:notend.'\<architecture\>:\<end\s\+architecture\>,'. + \ s:notend.'\<package\>:\<end\s\+package\>,'. + \ s:notend.'\<procedure\>:\<end\s\+procedure\>,'. + \ s:notend.'\<configuration\>:\<end\s\+configuration\>' +endif + +" count repeat +function! <SID>CountWrapper(cmd) + let i = v:count1 + if a:cmd[0] == ":" + while i > 0 + execute a:cmd + let i = i - 1 + endwhile + else + execute "normal! gv\<Esc>" + execute "normal ".i.a:cmd + let curcol = col(".") + let curline = line(".") + normal! gv + call cursor(curline, curcol) + endif +endfunction + +" explore motion +" keywords: "architecture", "block", "configuration", "component", "entity", "function", "package", "procedure", "process", "record", "units" +let b:vhdl_explore = '\%(architecture\|block\|configuration\|component\|entity\|function\|package\|procedure\|process\|record\|units\)' +noremap <buffer><silent>[[ :<C-u>cal <SID>CountWrapper(':cal search("\\%(--.*\\)\\@<!\\%(\\<end\\s\\+\\)\\@<!\\<".b:vhdl_explore."\\>\\c\\<Bar>\\%^","bW")')<CR> +noremap <buffer><silent>]] :<C-u>cal <SID>CountWrapper(':cal search("\\%(--.*\\)\\@<!\\%(\\<end\\s\\+\\)\\@<!\\<".b:vhdl_explore."\\>\\c\\<Bar>\\%$","W")')<CR> +noremap <buffer><silent>[] :<C-u>cal <SID>CountWrapper(':cal search("\\%(--.*\\)\\@<!\\<end\\s\\+".b:vhdl_explore."\\>\\c\\<Bar>\\%^","bW")')<CR> +noremap <buffer><silent>][ :<C-u>cal <SID>CountWrapper(':cal search("\\%(--.*\\)\\@<!\\<end\\s\\+".b:vhdl_explore."\\>\\c\\<Bar>\\%$","W")')<CR> +vnoremap <buffer><silent>[[ :<C-u>cal <SID>CountWrapper('[[')<CR> +vnoremap <buffer><silent>]] :<C-u>cal <SID>CountWrapper(']]')<CR> +vnoremap <buffer><silent>[] :<C-u>cal <SID>CountWrapper('[]')<CR> +vnoremap <buffer><silent>][ :<C-u>cal <SID>CountWrapper('][')<CR> + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/vim.vim b/ftplugin/vim.vim new file mode 100644 index 00000000..bf721a02 --- /dev/null +++ b/ftplugin/vim.vim @@ -0,0 +1,109 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin +" Language: Vim +" Maintainer: Bram Moolenaar <Bram@vim.org> +" Last Change: 2020 Aug 14 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +if !exists('*VimFtpluginUndo') + func VimFtpluginUndo() + setl fo< isk< com< tw< commentstring< + if exists('b:did_add_maps') + silent! nunmap <buffer> [[ + silent! vunmap <buffer> [[ + silent! nunmap <buffer> ]] + silent! vunmap <buffer> ]] + silent! nunmap <buffer> [] + silent! vunmap <buffer> [] + silent! nunmap <buffer> ][ + silent! vunmap <buffer> ][ + silent! nunmap <buffer> ]" + silent! vunmap <buffer> ]" + silent! nunmap <buffer> [" + silent! vunmap <buffer> [" + endif + unlet! b:match_ignorecase b:match_words b:match_skip b:did_add_maps + endfunc +endif + +let b:undo_ftplugin = "call VimFtpluginUndo()" + +" Set 'formatoptions' to break comment lines but not other lines, +" and insert the comment leader when hitting <CR> or using "o". +setlocal fo-=t fo+=croql + +" To allow tag lookup via CTRL-] for autoload functions, '#' must be a +" keyword character. E.g., for netrw#Nread(). +setlocal isk+=# + +" Use :help to lookup the keyword under the cursor with K. +setlocal keywordprg=:help + +" Set 'comments' to format dashed lists in comments +" Avoid that #{} starts a comment. +setlocal com=sO:\"\ -,mO:\"\ \ ,sO:#\ -,mO:#\ \ ,eO:##,:\",b:# + +" Format comments to be up to 78 characters long +if &tw == 0 + setlocal tw=78 +endif + +" Comments start with a double quote; in Vim9 script # would also work +setlocal commentstring=\"%s + +if !exists("no_plugin_maps") && !exists("no_vim_maps") + let b:did_add_maps = 1 + + " Move around functions. + nnoremap <silent><buffer> [[ m':call search('^\s*\(fu\%[nction]\\|def\)\>', "bW")<CR> + vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*\(fu\%[nction]\\|def\)\>', "bW")<CR> + nnoremap <silent><buffer> ]] m':call search('^\s*\(fu\%[nction]\\|def\)\>', "W")<CR> + vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*\(fu\%[nction]\\|def\)\>', "W")<CR> + nnoremap <silent><buffer> [] m':call search('^\s*end\(f\%[unction]\\|def\)\>', "bW")<CR> + vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*end\(f\%[unction]\\|def\)\>', "bW")<CR> + nnoremap <silent><buffer> ][ m':call search('^\s*end\(f\%[unction]\\|def\)\>', "W")<CR> + vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*end\(f\%[unction]\\|def\)\>', "W")<CR> + + " Move around comments + nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR> + vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR> + nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR> + vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR> +endif + +" Let the matchit plugin know what items can be matched. +if exists("loaded_matchit") + let b:match_ignorecase = 0 + let b:match_words = + \ '\<\%(fu\%[nction]\|def\)\>)\@!:\<retu\%[rn]\>:\<\%(endf\%[unction]\|enddef\)\>,' . + \ '\<\(wh\%[ile]\|for\)\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<end\(w\%[hile]\|fo\%[r]\)\>,' . + \ '\<if\>:\<el\%[seif]\>:\<en\%[dif]\>,' . + \ '{:},' . + \ '\<try\>:\<cat\%[ch]\>:\<fina\%[lly]\>:\<endt\%[ry]\>,' . + \ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,' + " Ignore syntax region commands and settings, any 'en*' would clobber + " if-endif. + " - set spl=de,en + " - au! FileType javascript syntax region foldBraces start=/{/ end=/}/ … + let b:match_skip = 'synIDattr(synID(line("."),col("."),1),"name") + \ =~? "comment\\|string\\|vimSynReg\\|vimSet"' +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +" removed this, because 'cpoptions' is a global option. +" setlocal cpo+=M " makes \%( match \) + +endif diff --git a/ftplugin/vroom.vim b/ftplugin/vroom.vim new file mode 100644 index 00000000..0c1eee80 --- /dev/null +++ b/ftplugin/vroom.vim @@ -0,0 +1,39 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vroom') == -1 + +" Vim filetype plugin file +" Language: Vroom (vim testing and executable documentation) +" Maintainer: David Barnett (https://github.com/google/vim-ft-vroom) +" Last Change: 2014 Jul 23 + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo-=C + + +let b:undo_ftplugin = 'setlocal formatoptions< shiftwidth< softtabstop<' . + \ ' expandtab< iskeyword< comments< commentstring<' + +setlocal formatoptions-=t + +" The vroom interpreter doesn't accept anything but 2-space indent. +setlocal shiftwidth=2 +setlocal softtabstop=2 +setlocal expandtab + +" To allow tag lookup and autocomplete for whole autoload functions, '#' must be +" a keyword character. This also conforms to the behavior of ftplugin/vim.vim. +setlocal iskeyword+=# + +" Vroom files have no comments (text is inert documentation unless indented). +setlocal comments= +setlocal commentstring= + + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/wast.vim b/ftplugin/wast.vim new file mode 100644 index 00000000..b211e6f5 --- /dev/null +++ b/ftplugin/wast.vim @@ -0,0 +1,21 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'wast') == -1 + +" Vim filetype plugin file +" Language: WebAssembly +" Maintainer: rhysd <lin90162@yahoo.co.jp> +" Last Change: Jul 29, 2018 +" For bugs, patches and license go to https://github.com/rhysd/vim-wasm + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +setlocal comments=s:(;,e:;),:;; +setlocal commentstring=(;%s;) +setlocal formatoptions-=t +setlocal iskeyword+=$,.,/ + +let b:undo_ftplugin = "setlocal comments< commentstring< formatoptions< iskeyword<" + +endif diff --git a/ftplugin/xdefaults.vim b/ftplugin/xdefaults.vim new file mode 100644 index 00000000..d3fb6487 --- /dev/null +++ b/ftplugin/xdefaults.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'xdefaults') == -1 + +" Vim filetype plugin file +" Language: X resources files like ~/.Xdefaults (xrdb) +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< inc< fo<" + +setlocal comments=s1:/*,mb:*,ex:*/,:! commentstring& inc& +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/xhtml.vim b/ftplugin/xhtml.vim new file mode 100644 index 00000000..0556d1be --- /dev/null +++ b/ftplugin/xhtml.vim @@ -0,0 +1,71 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'xhtml') == -1 + +" Vim filetype plugin file +" Language: xhtml +" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> +" Last Changed: 20 Jan 2009 +" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin + +if exists("b:did_ftplugin") | finish | endif + +" Make sure the continuation lines below do not cause problems in +" compatibility mode. +let s:save_cpo = &cpo +set cpo-=C + +" Define some defaults in case the included ftplugins don't set them. +let s:undo_ftplugin = "" +let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" . + \ "XML Files (*.xml)\t*.xml\n" . + \ "All Files (*.*)\t*.*\n" +let s:match_words = "" + +runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim +unlet b:did_ftplugin + +" Override our defaults if these were set by an included ftplugin. +if exists("b:undo_ftplugin") + let s:undo_ftplugin = b:undo_ftplugin + unlet b:undo_ftplugin +endif +if exists("b:browsefilter") + let s:browsefilter = b:browsefilter + unlet b:browsefilter +endif +if exists("b:match_words") + let s:match_words = b:match_words + unlet b:match_words +endif + +runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim +let b:did_ftplugin = 1 + +" Combine the new set of values with those previously included. +if exists("b:undo_ftplugin") + let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin +endif +if exists("b:browsefilter") + let s:browsefilter = b:browsefilter . s:browsefilter +endif +if exists("b:match_words") + let s:match_words = b:match_words . "," . s:match_words +endif + +" Load the combined list of match_words for matchit.vim +if exists("loaded_matchit") + let b:match_words = s:match_words +endif + +" Change the :browse e filter to primarily show tcsh-related files. +if has("gui_win32") + let b:browsefilter="XHTML files (*.xhtml, *.xhtm)\t*.xhtml;*.xhtm\n" . s:browsefilter +endif + +" Undo the stuff we changed. +let b:undo_ftplugin = "unlet! b:browsefilter b:match_words | " . s:undo_ftplugin + +" Restore the saved compatibility options. +let &cpo = s:save_cpo +unlet s:save_cpo + +endif diff --git a/ftplugin/xinetd.vim b/ftplugin/xinetd.vim new file mode 100644 index 00000000..f99a91ac --- /dev/null +++ b/ftplugin/xinetd.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'xinetd') == -1 + +" Vim filetype plugin file +" Language: xinetd.conf(5) configuration file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< inc< fo<" + +setlocal comments=:# commentstring=#\ %s include=^\\s*include +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/xmodmap.vim b/ftplugin/xmodmap.vim new file mode 100644 index 00000000..16ab12ee --- /dev/null +++ b/ftplugin/xmodmap.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'xmodmap') == -1 + +" Vim filetype plugin file +" Language: xmodmap(1) definition file +" Previous Maintainer: Nikolai Weibull <now@bitwi.se> +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:! commentstring=!\ %s formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/xsd.vim b/ftplugin/xsd.vim new file mode 100644 index 00000000..f3f94d91 --- /dev/null +++ b/ftplugin/xsd.vim @@ -0,0 +1,43 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'xsd') == -1 + +" Vim filetype plugin file +" Language: xsd +" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> +" Last Changed: 20 Jan 2009 +" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin + +if exists("b:did_ftplugin") | finish | endif + +" Make sure the continuation lines below do not cause problems in +" compatibility mode. +let s:save_cpo = &cpo +set cpo-=C + +" Define some defaults in case the included ftplugins don't set them. +let s:undo_ftplugin = "" +let s:browsefilter = "XML Files (*.xml)\t*.xml\n" . + \ "All Files (*.*)\t*.*\n" + +runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim +let b:did_ftplugin = 1 + +" Override our defaults if these were set by an included ftplugin. +if exists("b:undo_ftplugin") + let s:undo_ftplugin = b:undo_ftplugin +endif +if exists("b:browsefilter") + let s:browsefilter = b:browsefilter +endif + +" Change the :browse e filter to primarily show xsd-related files. +if has("gui_win32") + let b:browsefilter="XSD Files (*.xsd)\t*.xsd\n" . s:browsefilter +endif + +let b:undo_ftplugin = "unlet! b:browsefilter | " . s:undo_ftplugin + +" Restore the saved compatibility options. +let &cpo = s:save_cpo +unlet s:save_cpo + +endif diff --git a/ftplugin/xslt.vim b/ftplugin/xslt.vim new file mode 100644 index 00000000..2d2320ae --- /dev/null +++ b/ftplugin/xslt.vim @@ -0,0 +1,20 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'xslt') == -1 + +" Vim filetype plugin file +" Language: xslt +" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> +" Last Changed: 20 Jan 2009 +" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin + +if exists("b:did_ftplugin") | finish | endif + +runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim + +let b:did_ftplugin = 1 + +" Change the :browse e filter to primarily show xsd-related files. +if has("gui_win32") && exists("b:browsefilter") + let b:browsefilter="XSLT Files (*.xsl,*.xslt)\t*.xsl;*.xslt\n" . b:browsefilter +endif + +endif diff --git a/ftplugin/yaml.vim b/ftplugin/yaml.vim deleted file mode 100644 index 261d71ca..00000000 --- a/ftplugin/yaml.vim +++ /dev/null @@ -1,29 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'yaml') == -1 - -" Vim filetype plugin file -" Language: YAML (YAML Ain't Markup Language) -" Previous Maintainer: Nikolai Weibull <now@bitwi.se> (inactive) -" Last Change: 2020 Mar 02 - -if exists("b:did_ftplugin") - finish -endif -let b:did_ftplugin = 1 - -let s:cpo_save = &cpo -set cpo&vim - -let b:undo_ftplugin = "setl com< cms< et< fo<" - -setlocal comments=:# commentstring=#\ %s expandtab -setlocal formatoptions-=t formatoptions+=croql - -if !exists("g:yaml_recommended_style") || g:yaml_recommended_style != 0 - let b:undo_ftplugin .= " sw< sts<" - setlocal shiftwidth=2 softtabstop=2 -endif - -let &cpo = s:cpo_save -unlet s:cpo_save - -endif diff --git a/ftplugin/zimbu.vim b/ftplugin/zimbu.vim new file mode 100644 index 00000000..fc939fde --- /dev/null +++ b/ftplugin/zimbu.vim @@ -0,0 +1,157 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'zimbu') == -1 + +" Vim filetype plugin file +" Language: Zimbu +" Maintainer: Bram Moolenaar <Bram@vim.org> +" Last Change: 2017 Dec 05 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +" Using line continuation here. +let s:cpo_save = &cpo +set cpo-=C + +let b:undo_ftplugin = "setl fo< com< ofu< efm< tw< et< sts< sw< | if has('vms') | setl isk< | endif" + +" Set 'formatoptions' to break comment lines but not other lines, +" and insert the comment leader when hitting <CR> or using "o". +setlocal fo-=t fo+=croql + +" Set completion with CTRL-X CTRL-O to autoloaded function. +if exists('&ofu') + setlocal ofu=ccomplete#Complete +endif + +" Set 'comments' to format dashed lists in comments. +" And to keep Zudocu comment characters. +setlocal comments=sO:#\ -,mO:#\ \ ,:#=,:#-,:#%,:# + +setlocal errorformat^=%f\ line\ %l\ col\ %c:\ %m,ERROR:\ %m + +" When the matchit plugin is loaded, this makes the % command skip parens and +" braces in comments. +let b:match_words = '\(^\s*\)\@<=\(MODULE\|CLASS\|INTERFACE\|BITS\|ENUM\|SHARED\|FUNC\|REPLACE\|DEFINE\|PROC\|EQUAL\|MAIN\|IF\|GENERATE_IF\|WHILE\|REPEAT\|WITH\|DO\|FOR\|SWITCH\|TRY\)\>\|{\s*$:\(^\s*\)\@<=\(ELSE\|ELSEIF\|GENERATE_ELSE\|GENERATE_ELSEIF\|CATCH\|FINALLY\)\>:\(^\s*\)\@<=\(}\|\<UNTIL\>\)' + +let b:match_skip = 's:comment\|string\|zimbuchar' + +setlocal tw=78 +setlocal et sts=2 sw=2 + +" Does replace when a dot, space or closing brace is typed. +func! GCUpperDot(what) + if v:char != ' ' && v:char != "\r" && v:char != "\x1b" && v:char != '.' && v:char != ')' && v:char != '}' && v:char != ',' + " no space or dot after the typed text + let g:got_char = v:char + return a:what + endif + return GCUpperCommon(a:what) +endfunc + +" Does not replace when a dot is typed. +func! GCUpper(what) + if v:char != ' ' && v:char != "\r" && v:char != "\x1b" && v:char != ')' && v:char != ',' + " no space or other "terminating" character after the typed text + let g:got_char = v:char + return a:what + endif + return GCUpperCommon(a:what) +endfunc + +" Only replaces when a space is typed. +func! GCUpperSpace(what) + if v:char != ' ' + " no space after the typed text + let g:got_char = v:char + return a:what + endif + return GCUpperCommon(a:what) +endfunc + +func! GCUpperCommon(what) + let col = col(".") - strlen(a:what) + if col > 1 && getline('.')[col - 2] != ' ' + " no space before the typed text + let g:got_char = 999 + return a:what + endif + let synName = synIDattr(synID(line("."), col(".") - 2, 1), "name") + if synName =~ 'Comment\|String\|zimbuCregion\|\<c' + " inside a comment or C code + let g:got_char = 777 + return a:what + endif + let g:got_char = 1111 + return toupper(a:what) +endfunc + +iabbr <buffer> <expr> alias GCUpperSpace("alias") +iabbr <buffer> <expr> arg GCUpperDot("arg") +iabbr <buffer> <expr> break GCUpper("break") +iabbr <buffer> <expr> case GCUpperSpace("case") +iabbr <buffer> <expr> catch GCUpperSpace("catch") +iabbr <buffer> <expr> check GCUpperDot("check") +iabbr <buffer> <expr> class GCUpperSpace("class") +iabbr <buffer> <expr> interface GCUpperSpace("interface") +iabbr <buffer> <expr> implements GCUpperSpace("implements") +iabbr <buffer> <expr> shared GCUpperSpace("shared") +iabbr <buffer> <expr> continue GCUpper("continue") +iabbr <buffer> <expr> default GCUpper("default") +iabbr <buffer> <expr> extends GCUpper("extends") +iabbr <buffer> <expr> do GCUpper("do") +iabbr <buffer> <expr> else GCUpper("else") +iabbr <buffer> <expr> elseif GCUpperSpace("elseif") +iabbr <buffer> <expr> enum GCUpperSpace("enum") +iabbr <buffer> <expr> exit GCUpper("exit") +iabbr <buffer> <expr> false GCUpper("false") +iabbr <buffer> <expr> fail GCUpper("fail") +iabbr <buffer> <expr> finally GCUpper("finally") +iabbr <buffer> <expr> for GCUpperSpace("for") +iabbr <buffer> <expr> func GCUpperSpace("func") +iabbr <buffer> <expr> if GCUpperSpace("if") +iabbr <buffer> <expr> import GCUpperSpace("import") +iabbr <buffer> <expr> in GCUpperSpace("in") +iabbr <buffer> <expr> io GCUpperDot("io") +iabbr <buffer> <expr> main GCUpper("main") +iabbr <buffer> <expr> module GCUpperSpace("module") +iabbr <buffer> <expr> new GCUpper("new") +iabbr <buffer> <expr> nil GCUpper("nil") +iabbr <buffer> <expr> ok GCUpper("ok") +iabbr <buffer> <expr> proc GCUpperSpace("proc") +iabbr <buffer> <expr> proceed GCUpper("proceed") +iabbr <buffer> <expr> return GCUpper("return") +iabbr <buffer> <expr> step GCUpperSpace("step") +iabbr <buffer> <expr> switch GCUpperSpace("switch") +iabbr <buffer> <expr> sys GCUpperDot("sys") +iabbr <buffer> <expr> this GCUpperDot("this") +iabbr <buffer> <expr> throw GCUpperSpace("throw") +iabbr <buffer> <expr> try GCUpper("try") +iabbr <buffer> <expr> to GCUpperSpace("to") +iabbr <buffer> <expr> true GCUpper("true") +iabbr <buffer> <expr> until GCUpperSpace("until") +iabbr <buffer> <expr> while GCUpperSpace("while") +iabbr <buffer> <expr> repeat GCUpper("repeat") + +if !exists("no_plugin_maps") && !exists("no_zimbu_maps") + nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR> + nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR> +endif + +" Using a function makes sure the search pattern is restored +func! ZimbuGoStartBlock() + ?^\s*\(FUNC\|PROC\|MAIN\|ENUM\|CLASS\|INTERFACE\)\> +endfunc +func! ZimbuGoEndBlock() + /^\s*\(FUNC\|PROC\|MAIN\|ENUM\|CLASS\|INTERFACE\)\> +endfunc + + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif |