From 5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1 Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Wed, 27 Sep 2017 20:43:42 +0200 Subject: Add syntax files from upstream vim repository --- ftplugin/a2ps.vim | 24 ++ ftplugin/aap.vim | 29 +++ ftplugin/abap.vim | 33 +++ ftplugin/abaqus.vim | 101 ++++++++ ftplugin/ada.vim | 214 ++++++++++++++++ ftplugin/alsaconf.vim | 23 ++ ftplugin/ant.vim | 48 ++++ ftplugin/arch.vim | 23 ++ ftplugin/art.vim | 19 ++ ftplugin/aspvbs.vim | 64 +++++ ftplugin/automake.vim | 20 ++ ftplugin/awk.vim | 22 ++ ftplugin/bdf.vim | 24 ++ ftplugin/bst.vim | 19 ++ ftplugin/btm.vim | 16 ++ ftplugin/bzl.vim | 98 +++++++ ftplugin/c.vim | 68 +++++ ftplugin/calendar.vim | 24 ++ ftplugin/cdrdaoconf.vim | 22 ++ ftplugin/ch.vim | 21 ++ ftplugin/changelog.vim | 305 ++++++++++++++++++++++ ftplugin/clojure.vim | 99 +++++++ ftplugin/cobol.vim | 271 ++++++++++++++++++++ ftplugin/conf.vim | 23 ++ ftplugin/config.vim | 46 ++++ ftplugin/context.vim | 106 ++++++++ ftplugin/cpp.vim | 16 ++ ftplugin/crm.vim | 23 ++ ftplugin/cs.vim | 33 +++ ftplugin/csc.vim | 31 +++ ftplugin/csh.vim | 52 ++++ ftplugin/css.vim | 27 ++ ftplugin/cucumber.vim | 154 +++++++++++ ftplugin/cvsrc.vim | 23 ++ ftplugin/debchangelog.vim | 387 ++++++++++++++++++++++++++++ ftplugin/debcontrol.vim | 74 ++++++ ftplugin/denyhosts.vim | 22 ++ ftplugin/dictconf.vim | 23 ++ ftplugin/dictdconf.vim | 23 ++ ftplugin/diff.vim | 19 ++ ftplugin/dircolors.vim | 23 ++ ftplugin/docbk.vim | 28 ++ ftplugin/dockerfile.vim | 20 ++ ftplugin/dosbatch.vim | 34 +++ ftplugin/dosini.vim | 23 ++ ftplugin/dtd.vim | 44 ++++ ftplugin/dtrace.vim | 44 ++++ ftplugin/eiffel.vim | 100 ++++++++ ftplugin/elinks.vim | 23 ++ ftplugin/erlang.vim | 91 +++++++ ftplugin/eruby.vim | 106 ++++++++ ftplugin/eterm.vim | 24 ++ ftplugin/falcon.vim | 52 ++++ ftplugin/fetchmail.vim | 23 ++ ftplugin/flexwiki.vim | 63 +++++ ftplugin/fortran.vim | 136 ++++++++++ ftplugin/framescript.vim | 34 +++ ftplugin/fvwm.vim | 18 ++ ftplugin/git.vim | 45 ++++ ftplugin/gitcommit.vim | 68 +++++ ftplugin/gitconfig.vim | 19 ++ ftplugin/gitrebase.vim | 48 ++++ ftplugin/gitsendemail.vim | 10 + ftplugin/go.vim | 22 ++ ftplugin/gpg.vim | 23 ++ ftplugin/gprof.vim | 36 +++ ftplugin/groovy.vim | 23 ++ ftplugin/group.vim | 23 ++ ftplugin/grub.vim | 23 ++ ftplugin/haml.vim | 73 ++++++ ftplugin/hamster.vim | 66 +++++ ftplugin/haskell.vim | 24 ++ ftplugin/help.vim | 26 ++ ftplugin/hgcommit.vim | 20 ++ ftplugin/hog.vim | 43 ++++ ftplugin/hostconf.vim | 22 ++ ftplugin/hostsaccess.vim | 23 ++ ftplugin/html.vim | 55 ++++ ftplugin/htmldjango.vim | 17 ++ ftplugin/indent.vim | 24 ++ ftplugin/initex.vim | 43 ++++ ftplugin/ishd.vim | 37 +++ ftplugin/j.vim | 85 ++++++ ftplugin/java.vim | 55 ++++ ftplugin/javascript.vim | 42 +++ ftplugin/jproperties.vim | 19 ++ ftplugin/json.vim | 21 ++ ftplugin/jsp.vim | 71 ++++++ ftplugin/kconfig.vim | 31 +++ ftplugin/kwt.vim | 36 +++ ftplugin/ld.vim | 24 ++ ftplugin/less.vim | 24 ++ ftplugin/lftp.vim | 23 ++ ftplugin/libao.vim | 23 ++ ftplugin/limits.vim | 23 ++ ftplugin/liquid.vim | 65 +++++ ftplugin/lisp.vim | 30 +++ ftplugin/logcheck.vim | 21 ++ ftplugin/loginaccess.vim | 23 ++ ftplugin/logindefs.vim | 23 ++ ftplugin/logtalk.vim | 22 ++ ftplugin/lprolog.vim | 41 +++ ftplugin/lua.vim | 46 ++++ ftplugin/m4.vim | 24 ++ ftplugin/mail.vim | 42 +++ ftplugin/mailaliases.vim | 22 ++ ftplugin/mailcap.vim | 23 ++ ftplugin/make.vim | 37 +++ ftplugin/man.vim | 219 ++++++++++++++++ ftplugin/manconf.vim | 23 ++ ftplugin/markdown.vim | 54 ++++ ftplugin/matlab.vim | 36 +++ ftplugin/mf.vim | 74 ++++++ ftplugin/modconf.vim | 24 ++ ftplugin/mp.vim | 86 +++++++ ftplugin/mplayerconf.vim | 24 ++ ftplugin/mrxvtrc.vim | 26 ++ ftplugin/msmessages.vim | 44 ++++ ftplugin/muttrc.vim | 26 ++ ftplugin/nanorc.vim | 23 ++ ftplugin/netrc.vim | 23 ++ ftplugin/nsis.vim | 26 ++ ftplugin/objc.vim | 16 ++ ftplugin/ocaml.vim | 624 +++++++++++++++++++++++++++++++++++++++++++++ ftplugin/occam.vim | 53 ++++ ftplugin/pamconf.vim | 23 ++ ftplugin/pascal.vim | 24 ++ ftplugin/passwd.vim | 23 ++ ftplugin/pdf.vim | 93 +++++++ ftplugin/perl.vim | 93 +++++++ ftplugin/perl6.vim | 81 ++++++ ftplugin/php.vim | 87 +++++++ ftplugin/pinfo.vim | 23 ++ ftplugin/plaintex.vim | 41 +++ ftplugin/postscr.vim | 42 +++ ftplugin/procmail.vim | 25 ++ ftplugin/prolog.vim | 24 ++ ftplugin/protocols.vim | 23 ++ ftplugin/pyrex.vim | 31 +++ ftplugin/python.vim | 92 +++++++ ftplugin/qf.vim | 20 ++ ftplugin/quake.vim | 23 ++ ftplugin/r.vim | 36 +++ ftplugin/racc.vim | 24 ++ ftplugin/readline.vim | 23 ++ ftplugin/registry.vim | 40 +++ ftplugin/reva.vim | 29 +++ ftplugin/rhelp.vim | 34 +++ ftplugin/rmd.vim | 58 +++++ ftplugin/rnc.vim | 23 ++ ftplugin/rnoweb.vim | 45 ++++ ftplugin/rpl.vim | 26 ++ ftplugin/rrst.vim | 42 +++ ftplugin/rst.vim | 24 ++ ftplugin/ruby.vim | 424 ++++++++++++++++++++++++++++++ ftplugin/rust.vim | 201 +++++++++++++++ ftplugin/sass.vim | 27 ++ ftplugin/sbt.vim | 19 ++ ftplugin/scala.vim | 39 +++ ftplugin/scheme.vim | 49 ++++ ftplugin/screen.vim | 23 ++ ftplugin/scss.vim | 17 ++ ftplugin/sensors.vim | 23 ++ ftplugin/services.vim | 23 ++ ftplugin/setserial.vim | 23 ++ ftplugin/sgml.vim | 44 ++++ ftplugin/sh.vim | 43 ++++ ftplugin/sieve.vim | 24 ++ ftplugin/slpconf.vim | 24 ++ ftplugin/slpreg.vim | 24 ++ ftplugin/slpspi.vim | 24 ++ ftplugin/spec.vim | 214 ++++++++++++++++ ftplugin/sql.vim | 552 +++++++++++++++++++++++++++++++++++++++ ftplugin/sshconfig.vim | 23 ++ ftplugin/sudoers.vim | 23 ++ ftplugin/svg.vim | 44 ++++ ftplugin/sysctl.vim | 24 ++ ftplugin/systemd.vim | 11 + ftplugin/systemverilog.vim | 15 ++ ftplugin/tcl.vim | 41 +++ ftplugin/tcsh.vim | 44 ++++ ftplugin/terminfo.vim | 23 ++ ftplugin/tex.vim | 50 ++++ ftplugin/text.vim | 21 ++ ftplugin/tmux.vim | 16 ++ ftplugin/treetop.vim | 23 ++ ftplugin/tt2html.vim | 17 ++ ftplugin/udevconf.vim | 23 ++ ftplugin/udevperm.vim | 23 ++ ftplugin/udevrules.vim | 23 ++ ftplugin/updatedb.vim | 23 ++ ftplugin/vb.vim | 49 ++++ ftplugin/verilog.vim | 70 +++++ ftplugin/vhdl.vim | 92 +++++++ ftplugin/vim.vim | 81 ++++++ ftplugin/vroom.vim | 39 +++ ftplugin/xdefaults.vim | 24 ++ ftplugin/xf86conf.vim | 23 ++ ftplugin/xhtml.vim | 71 ++++++ ftplugin/xinetd.vim | 24 ++ ftplugin/xml.vim | 68 +++++ ftplugin/xmodmap.vim | 23 ++ ftplugin/xs.vim | 18 ++ ftplugin/xsd.vim | 43 ++++ ftplugin/xslt.vim | 20 ++ ftplugin/yaml.vim | 24 ++ ftplugin/zimbu.vim | 155 +++++++++++ ftplugin/zsh.vim | 33 +++ 208 files changed, 10978 insertions(+) create mode 100644 ftplugin/a2ps.vim create mode 100644 ftplugin/aap.vim create mode 100644 ftplugin/abap.vim create mode 100644 ftplugin/abaqus.vim create mode 100644 ftplugin/ada.vim create mode 100644 ftplugin/alsaconf.vim create mode 100644 ftplugin/ant.vim create mode 100644 ftplugin/arch.vim create mode 100644 ftplugin/art.vim create mode 100644 ftplugin/aspvbs.vim create mode 100644 ftplugin/automake.vim create mode 100644 ftplugin/awk.vim create mode 100644 ftplugin/bdf.vim create mode 100644 ftplugin/bst.vim create mode 100644 ftplugin/btm.vim create mode 100644 ftplugin/bzl.vim create mode 100644 ftplugin/c.vim create mode 100644 ftplugin/calendar.vim create mode 100644 ftplugin/cdrdaoconf.vim create mode 100644 ftplugin/ch.vim create mode 100644 ftplugin/changelog.vim create mode 100644 ftplugin/cobol.vim create mode 100644 ftplugin/conf.vim create mode 100644 ftplugin/config.vim create mode 100644 ftplugin/context.vim create mode 100644 ftplugin/cpp.vim create mode 100644 ftplugin/crm.vim create mode 100644 ftplugin/cs.vim create mode 100644 ftplugin/csc.vim create mode 100644 ftplugin/csh.vim create mode 100644 ftplugin/css.vim create mode 100644 ftplugin/cvsrc.vim create mode 100644 ftplugin/debchangelog.vim create mode 100644 ftplugin/debcontrol.vim create mode 100644 ftplugin/denyhosts.vim create mode 100644 ftplugin/dictconf.vim create mode 100644 ftplugin/dictdconf.vim create mode 100644 ftplugin/diff.vim create mode 100644 ftplugin/dircolors.vim create mode 100644 ftplugin/docbk.vim create mode 100644 ftplugin/dockerfile.vim create mode 100644 ftplugin/dosbatch.vim create mode 100644 ftplugin/dosini.vim create mode 100644 ftplugin/dtd.vim create mode 100644 ftplugin/dtrace.vim create mode 100644 ftplugin/eiffel.vim create mode 100644 ftplugin/elinks.vim create mode 100644 ftplugin/erlang.vim create mode 100644 ftplugin/eterm.vim create mode 100644 ftplugin/falcon.vim create mode 100644 ftplugin/fetchmail.vim create mode 100644 ftplugin/flexwiki.vim create mode 100644 ftplugin/fortran.vim create mode 100644 ftplugin/framescript.vim create mode 100644 ftplugin/fvwm.vim create mode 100644 ftplugin/go.vim create mode 100644 ftplugin/gpg.vim create mode 100644 ftplugin/gprof.vim create mode 100644 ftplugin/groovy.vim create mode 100644 ftplugin/group.vim create mode 100644 ftplugin/grub.vim create mode 100644 ftplugin/hamster.vim create mode 100644 ftplugin/help.vim create mode 100644 ftplugin/hgcommit.vim create mode 100644 ftplugin/hog.vim create mode 100644 ftplugin/hostconf.vim create mode 100644 ftplugin/hostsaccess.vim create mode 100644 ftplugin/htmldjango.vim create mode 100644 ftplugin/indent.vim create mode 100644 ftplugin/initex.vim create mode 100644 ftplugin/ishd.vim create mode 100644 ftplugin/j.vim create mode 100644 ftplugin/java.vim create mode 100644 ftplugin/javascript.vim create mode 100644 ftplugin/jproperties.vim create mode 100644 ftplugin/jsp.vim create mode 100644 ftplugin/kconfig.vim create mode 100644 ftplugin/kwt.vim create mode 100644 ftplugin/ld.vim create mode 100644 ftplugin/lftp.vim create mode 100644 ftplugin/libao.vim create mode 100644 ftplugin/limits.vim create mode 100644 ftplugin/lisp.vim create mode 100644 ftplugin/logcheck.vim create mode 100644 ftplugin/loginaccess.vim create mode 100644 ftplugin/logindefs.vim create mode 100644 ftplugin/logtalk.vim create mode 100644 ftplugin/lprolog.vim create mode 100644 ftplugin/lua.vim create mode 100644 ftplugin/m4.vim create mode 100644 ftplugin/mail.vim create mode 100644 ftplugin/mailaliases.vim create mode 100644 ftplugin/mailcap.vim create mode 100644 ftplugin/make.vim create mode 100644 ftplugin/man.vim create mode 100644 ftplugin/manconf.vim create mode 100644 ftplugin/markdown.vim create mode 100644 ftplugin/matlab.vim create mode 100644 ftplugin/mf.vim create mode 100644 ftplugin/modconf.vim create mode 100644 ftplugin/mp.vim create mode 100644 ftplugin/mplayerconf.vim create mode 100644 ftplugin/mrxvtrc.vim create mode 100644 ftplugin/msmessages.vim create mode 100644 ftplugin/muttrc.vim create mode 100644 ftplugin/nanorc.vim create mode 100644 ftplugin/netrc.vim create mode 100644 ftplugin/nsis.vim create mode 100644 ftplugin/occam.vim create mode 100644 ftplugin/pamconf.vim create mode 100644 ftplugin/pascal.vim create mode 100644 ftplugin/passwd.vim create mode 100644 ftplugin/pdf.vim create mode 100644 ftplugin/perl6.vim create mode 100644 ftplugin/php.vim create mode 100644 ftplugin/pinfo.vim create mode 100644 ftplugin/plaintex.vim create mode 100644 ftplugin/postscr.vim create mode 100644 ftplugin/procmail.vim create mode 100644 ftplugin/prolog.vim create mode 100644 ftplugin/protocols.vim create mode 100644 ftplugin/pyrex.vim create mode 100644 ftplugin/python.vim create mode 100644 ftplugin/qf.vim create mode 100644 ftplugin/quake.vim create mode 100644 ftplugin/racc.vim create mode 100644 ftplugin/readline.vim create mode 100644 ftplugin/registry.vim create mode 100644 ftplugin/reva.vim create mode 100644 ftplugin/rmd.vim create mode 100644 ftplugin/rnc.vim create mode 100644 ftplugin/rpl.vim create mode 100644 ftplugin/rrst.vim create mode 100644 ftplugin/rst.vim create mode 100644 ftplugin/sass.vim create mode 100644 ftplugin/sbt.vim create mode 100644 ftplugin/scheme.vim create mode 100644 ftplugin/screen.vim create mode 100644 ftplugin/sensors.vim create mode 100644 ftplugin/services.vim create mode 100644 ftplugin/setserial.vim create mode 100644 ftplugin/sgml.vim create mode 100644 ftplugin/sh.vim create mode 100644 ftplugin/sieve.vim create mode 100644 ftplugin/slpconf.vim create mode 100644 ftplugin/slpreg.vim create mode 100644 ftplugin/slpspi.vim create mode 100644 ftplugin/spec.vim create mode 100644 ftplugin/sql.vim create mode 100644 ftplugin/sshconfig.vim create mode 100644 ftplugin/sudoers.vim create mode 100644 ftplugin/svg.vim create mode 100644 ftplugin/sysctl.vim create mode 100644 ftplugin/systemd.vim create mode 100644 ftplugin/systemverilog.vim create mode 100644 ftplugin/tcl.vim create mode 100644 ftplugin/tcsh.vim create mode 100644 ftplugin/terminfo.vim create mode 100644 ftplugin/tex.vim create mode 100644 ftplugin/text.vim create mode 100644 ftplugin/treetop.vim create mode 100644 ftplugin/udevconf.vim create mode 100644 ftplugin/udevperm.vim create mode 100644 ftplugin/udevrules.vim create mode 100644 ftplugin/updatedb.vim create mode 100644 ftplugin/vb.vim create mode 100644 ftplugin/verilog.vim create mode 100644 ftplugin/vhdl.vim create mode 100644 ftplugin/vim.vim create mode 100644 ftplugin/vroom.vim create mode 100644 ftplugin/xdefaults.vim create mode 100644 ftplugin/xf86conf.vim create mode 100644 ftplugin/xhtml.vim create mode 100644 ftplugin/xinetd.vim create mode 100644 ftplugin/xml.vim create mode 100644 ftplugin/xmodmap.vim create mode 100644 ftplugin/xsd.vim create mode 100644 ftplugin/xslt.vim create mode 100644 ftplugin/yaml.vim create mode 100644 ftplugin/zimbu.vim create mode 100644 ftplugin/zsh.vim (limited to 'ftplugin') diff --git a/ftplugin/a2ps.vim b/ftplugin/a2ps.vim new file mode 100644 index 00000000..309766c9 --- /dev/null +++ b/ftplugin/a2ps.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: a2ps(1) configuration file +" Previous Maintainer: Nikolai Weibull +" 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/aap.vim b/ftplugin/aap.vim new file mode 100644 index 00000000..48e0d27d --- /dev/null +++ b/ftplugin/aap.vim @@ -0,0 +1,29 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: Aap recipe +" Maintainer: Bram Moolenaar +" Last Change: 2013 Apr 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 + +" Reset 'formatoptions', 'comments' and 'expandtab' to undo this plugin. +let b:undo_ftplugin = "setl fo< com< et<" + +" Set 'formatoptions' to break comment lines but not other lines, +" and insert the comment leader when hitting or using "o". +setlocal fo-=t fo+=croql + +" Set 'comments' to format dashed lists in comments. +setlocal comments=s:#\ -,m:#\ \ ,e:#,n:#,fb:- + +" Expand tabs to spaces to avoid trouble. +setlocal expandtab + +endif diff --git a/ftplugin/abap.vim b/ftplugin/abap.vim new file mode 100644 index 00000000..1da04c8b --- /dev/null +++ b/ftplugin/abap.vim @@ -0,0 +1,33 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: ABAP +" Author: Steven Oliver +" Copyright: Copyright (c) 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=2 shiftwidth=2 +setlocal suffixesadd=.abap + +" Windows allows you to filter the open file dialog +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "ABAP Source Files (*.abap)\t*.abap\n" . + \ "All Files (*.*)\t*.*\n" +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: set sw=4 sts=4 et tw=80 : + +endif diff --git a/ftplugin/abaqus.vim b/ftplugin/abaqus.vim new file mode 100644 index 00000000..6a24aac4 --- /dev/null +++ b/ftplugin/abaqus.vim @@ -0,0 +1,101 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: Abaqus finite element input file (www.abaqus.com) +" Maintainer: Carl Osterwisch +" Last Change: 2012 Apr 30 + +" 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 + +" Save the compatibility options and temporarily switch to vim defaults +let s:cpo_save = &cpoptions +set cpoptions&vim + +" Set the format of the include file specification for Abaqus +" Used in :check gf ^wf [i and other commands +setlocal include=\\<\\cINPUT\\s*= + +" Remove characters up to the first = when evaluating filenames +setlocal includeexpr=substitute(v:fname,'.\\{-}=','','') + +" Remove comma from valid filename characters since it is used to +" separate keyword parameters +setlocal isfname-=, + +" Define format of comment lines (see 'formatoptions' for uses) +setlocal comments=:** +setlocal commentstring=**%s + +" Definitions start with a * and assign a NAME, NSET, or ELSET +" Used in [d ^wd and other commands +setlocal define=^\\*\\a.*\\c\\(NAME\\\|NSET\\\|ELSET\\)\\s*= + +" Abaqus keywords and identifiers may include a - character +setlocal iskeyword+=- + +let b:undo_ftplugin = "setlocal include< includeexpr< isfname<" + \ . " comments< commentstring< define< iskeyword<" + +if has("folding") + " Fold all lines that do not begin with * + setlocal foldexpr=getline(v:lnum)[0]!=\"\*\" + setlocal foldmethod=expr + let b:undo_ftplugin .= " foldexpr< foldmethod<" +endif + +" Set the file browse filter (currently only supported under Win32 gui) +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" . + \ "Abaqus Results (*.dat)\t*.dat\n" . + \ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" . + \ "All Files (*.*)\t*.*\n" + let b:undo_ftplugin .= "|unlet! b:browsefilter" +endif + +" Define patterns for the matchit plugin +if exists("loaded_matchit") && !exists("b:match_words") + let b:match_ignorecase = 1 + let b:match_words = + \ '\*part:\*end\s*part,' . + \ '\*assembly:\*end\s*assembly,' . + \ '\*instance:\*end\s*instance,' . + \ '\*step:\*end\s*step' + let b:undo_ftplugin .= "|unlet! b:match_ignorecase b:match_words" +endif + +" Define keys used to move [count] keywords backward or forward. +noremap [[ ?^\*\a:nohlsearch +noremap ]] /^\*\a:nohlsearch + +" Define key to toggle commenting of the current line or range +noremap + \ :call Abaqus_ToggleComment()j +function! Abaqus_ToggleComment() range + if strpart(getline(a:firstline), 0, 2) == "**" + " Un-comment all lines in range + silent execute a:firstline . ',' . a:lastline . 's/^\*\*//' + else + " Comment all lines in range + silent execute a:firstline . ',' . a:lastline . 's/^/**/' + endif +endfunction + +let b:undo_ftplugin .= "|unmap [[|unmap ]]" + \ . "|unmap " + +" Undo must be done in nocompatible mode for . +let b:undo_ftplugin = "let s:cpo_save = &cpoptions|" + \ . "set cpoptions&vim|" + \ . b:undo_ftplugin + \ . "|let &cpoptions = s:cpo_save" + \ . "|unlet s:cpo_save" + +" Restore saved compatibility options +let &cpoptions = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/ada.vim b/ftplugin/ada.vim new file mode 100644 index 00000000..b48fa0c4 --- /dev/null +++ b/ftplugin/ada.vim @@ -0,0 +1,214 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +"------------------------------------------------------------------------------ +" Description: Perform Ada specific completion & tagging. +" Language: Ada (2005) +" $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $ +" Maintainer: Martin Krischik +" Taylor Venable +" Neil Bird +" $Author: krischik $ +" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $ +" Version: 4.6 with patch from David Bürgin +" $Revision: 887 $ +" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/ftplugin/ada.vim $ +" History: 24.05.2006 MK Unified Headers +" 26.05.2006 MK ' should not be in iskeyword. +" 16.07.2006 MK Ada-Mode as vim-ball +" 02.10.2006 MK Better folding. +" 15.10.2006 MK Bram's suggestion for runtime integration +" 05.11.2006 MK Bram suggested not to use include protection for +" autoload +" 05.11.2006 MK Bram suggested to save on spaces +" 08.07.2007 TV fix default compiler problems. +" Help Page: ft-ada-plugin +"------------------------------------------------------------------------------ +" Provides mapping overrides for tag jumping that figure out the current +" Ada object and tag jump to that, not the 'simple' vim word. +" Similarly allows matching of full-length ada entities from tags. +"------------------------------------------------------------------------------ + +" Only do this when not done yet for this buffer +if exists ("b:did_ftplugin") || version < 700 + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 45 + +" +" Temporarily set cpoptions to ensure the script loads OK +" +let s:cpoptions = &cpoptions +set cpoptions-=C + +" Section: Comments {{{1 +" +setlocal comments=O:--,:--\ \ +setlocal commentstring=--\ \ %s +setlocal complete=.,w,b,u,t,i + +" Section: case {{{1 +" +setlocal nosmartcase +setlocal ignorecase + +" Section: formatoptions {{{1 +" +setlocal formatoptions+=ron + +" Section: Tagging {{{1 +" +if exists ("g:ada_extended_tagging") + " Make local tag mappings for this buffer (if not already set) + if g:ada_extended_tagging == 'jump' + if mapcheck('','n') == '' + nnoremap :call ada#Jump_Tag ('', 'tjump') + endif + if mapcheck('g','n') == '' + nnoremap g :call ada#Jump_Tag ('','stjump') + endif + elseif g:ada_extended_tagging == 'list' + if mapcheck('','n') == '' + nnoremap :call ada#List_Tag () + endif + if mapcheck('g','n') == '' + nnoremap g :call ada#List_Tag () + endif + endif +endif + +" Section: Completion {{{1 +" +setlocal completefunc=ada#User_Complete +setlocal omnifunc=adacomplete#Complete + +if exists ("g:ada_extended_completion") + if mapcheck ('','i') == '' + inoremap =ada#Completion("\C-N>") + endif + if mapcheck ('','i') == '' + inoremap =ada#Completion("\C-P>") + endif + if mapcheck ('','i') == '' + inoremap =ada#Completion("\C-X>\C-]>") + endif + if mapcheck ('','i') == '' + inoremap =ada#Insert_Backspace () + endif +endif + +" Section: Matchit {{{1 +" +" Only do this when not done yet for this buffer & matchit is used +" +if !exists ("b:match_words") && + \ exists ("loaded_matchit") + " + " The following lines enable the macros/matchit.vim plugin for + " Ada-specific extended matching with the % key. + " + let s:notend = '\%(\:\:\:\\s\+\,' . + \ s:notend . '\:\:\\s\+\,' . + \ '\%(\.*\|\.*\|'.s:notend.'\)\:\\s\+\,' . + \ '\%(\\|\\):\:\\s*\%($\|[;A-Z]\),' . + \ s:notend . '\:\\s\+\' +endif + + +" Section: Compiler {{{1 +" +if ! exists("g:ada_default_compiler") + if has("vms") + let g:ada_default_compiler = 'decada' + else + let g:ada_default_compiler = 'gnat' + endif +endif + +if ! exists("current_compiler") || + \ current_compiler != g:ada_default_compiler + execute "compiler " . g:ada_default_compiler +endif + +" Section: Folding {{{1 +" +if exists("g:ada_folding") + if g:ada_folding[0] == 'i' + setlocal foldmethod=indent + setlocal foldignore=-- + setlocal foldnestmax=5 + elseif g:ada_folding[0] == 'g' + setlocal foldmethod=expr + setlocal foldexpr=ada#Pretty_Print_Folding(v:lnum) + elseif g:ada_folding[0] == 's' + setlocal foldmethod=syntax + endif + setlocal tabstop=8 + setlocal softtabstop=3 + setlocal shiftwidth=3 +endif + +" Section: Abbrev {{{1 +" +if exists("g:ada_abbrev") + iabbrev ret return + iabbrev proc procedure + iabbrev pack package + iabbrev func function +endif + +" Section: Commands, Mapping, Menus {{{1 +" +call ada#Map_Popup ( + \ 'Tag.List', + \ 'l', + \ 'call ada#List_Tag ()') +call ada#Map_Popup ( + \'Tag.Jump', + \'j', + \'call ada#Jump_Tag ()') +call ada#Map_Menu ( + \'Tag.Create File', + \':AdaTagFile', + \'call ada#Create_Tags (''file'')') +call ada#Map_Menu ( + \'Tag.Create Dir', + \':AdaTagDir', + \'call ada#Create_Tags (''dir'')') + +call ada#Map_Menu ( + \'Highlight.Toggle Space Errors', + \ ':AdaSpaces', + \'call ada#Switch_Syntax_Option (''space_errors'')') +call ada#Map_Menu ( + \'Highlight.Toggle Lines Errors', + \ ':AdaLines', + \'call ada#Switch_Syntax_Option (''line_errors'')') +call ada#Map_Menu ( + \'Highlight.Toggle Rainbow Color', + \ ':AdaRainbow', + \'call ada#Switch_Syntax_Option (''rainbow_color'')') +call ada#Map_Menu ( + \'Highlight.Toggle Standard Types', + \ ':AdaTypes', + \'call ada#Switch_Syntax_Option (''standard_types'')') + +" 1}}} +" Reset cpoptions +let &cpoptions = s:cpoptions +unlet s:cpoptions + +finish " 1}}} + +"------------------------------------------------------------------------------ +" Copyright (C) 2006 Martin Krischik +" +" Vim is Charityware - see ":help license" or uganda.txt for licence details. +"------------------------------------------------------------------------------ +" vim: textwidth=78 nowrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab +" vim: foldmethod=marker + +endif diff --git a/ftplugin/alsaconf.vim b/ftplugin/alsaconf.vim new file mode 100644 index 00000000..a09c6b53 --- /dev/null +++ b/ftplugin/alsaconf.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: alsaconf(8) configuration file +" Previous Maintainer: Nikolai Weibull +" 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/ant.vim b/ftplugin/ant.vim new file mode 100644 index 00000000..b0a26bc8 --- /dev/null +++ b/ftplugin/ant.vim @@ -0,0 +1,48 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: ant +" Maintainer: Dan Sharp +" 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 Ant-related files. +if has("gui_win32") + let b:browsefilter = "Build Files (build.xml)\tbuild.xml\n" . + \ "Java Files (*.java)\t*.java\n" . + \ "Properties Files (*.prop*)\t*.prop*\n" . + \ "Manifest Files (*.mf)\t*.mf\n" . + \ s:browsefilter +endif + +" Undo the stuff we changed. +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/arch.vim b/ftplugin/arch.vim new file mode 100644 index 00000000..44410cf6 --- /dev/null +++ b/ftplugin/arch.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: GNU Arch inventory file +" Previous Maintainer: Nikolai Weibull +" 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/art.vim b/ftplugin/art.vim new file mode 100644 index 00000000..b40e99fd --- /dev/null +++ b/ftplugin/art.vim @@ -0,0 +1,19 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin +" Language: ART-IM and ART*Enterprise +" Maintainer: Dorai Sitaram +" URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html +" Last Change: Apr 2, 2003 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +run ftplugin/lisp.vim + +setl lw-=if +setl lw+=def-art-fun,deffacts,defglobal,defrule,defschema,for,schema,while + +endif diff --git a/ftplugin/aspvbs.vim b/ftplugin/aspvbs.vim new file mode 100644 index 00000000..881e579c --- /dev/null +++ b/ftplugin/aspvbs.vim @@ -0,0 +1,64 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: aspvbs +" Maintainer: Dan Sharp +" 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*.htm*\n" . + \ "All Files (*.*)\t*.*\n" +let s:match_words = "" + +runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.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 +if exists("b:match_words") + let s:match_words = b:match_words +endif + +" ASP: Active Server Pages (with Visual Basic Script) +" thanks to Gontran BAERTS +if exists("loaded_matchit") + let s:notend = '\%(\\%(.\{-}then\s\+\w\)\@!:\:^\s*\:\,' . + \ s:notend . '\:\:\:\,' . + \ '^\s*\:\,' . + \ '^\s*\:\,' . + \ '\:\,' . + \ '^\s*\:\,' . + \ '^\s*\:\,' . + \ '\:\,' . + \ s:match_words +endif + +" Change the :browse e filter to primarily show ASP-related files. +if has("gui_win32") + let b:browsefilter="ASP Files (*.asp)\t*.asp\n" . s:browsefilter +endif + +let b:undo_ftplugin = "unlet! b:match_words b:match_ignorecase b:browsefilter | " . s:undo_ftplugin + +" Restore the saved compatibility options. +let &cpo = s:save_cpo +unlet s:save_cpo + +endif diff --git a/ftplugin/automake.vim b/ftplugin/automake.vim new file mode 100644 index 00000000..bf443d7e --- /dev/null +++ b/ftplugin/automake.vim @@ -0,0 +1,20 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: Automake +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2008-07-09 + +if exists("b:did_ftplugin") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +runtime! ftplugin/make.vim ftplugin/make_*.vim ftplugin/make/*.vim + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/awk.vim b/ftplugin/awk.vim new file mode 100644 index 00000000..76b2b66e --- /dev/null +++ b/ftplugin/awk.vim @@ -0,0 +1,22 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin +" Language: awk, nawk, gawk, mawk +" Maintainer: Antonio Colombo +" Last Change: 2017 Feb 17 + +" This plugin was prepared by Mark Sikora + +" 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 b:undo_ftplugin = "setl commentstring<" + +setlocal commentstring=#\ %s + +endif diff --git a/ftplugin/bdf.vim b/ftplugin/bdf.vim new file mode 100644 index 00000000..cc1005d5 --- /dev/null +++ b/ftplugin/bdf.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: BDF font definition +" Previous Maintainer: Nikolai Weibull +" 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..163b1007 --- /dev/null +++ b/ftplugin/bst.vim @@ -0,0 +1,19 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: bst +" Author: Tim Pope +" $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/btm.vim b/ftplugin/btm.vim new file mode 100644 index 00000000..09b473d5 --- /dev/null +++ b/ftplugin/btm.vim @@ -0,0 +1,16 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: BTM +" Maintainer: Bram Moolenaar +" Last Change: 2004 Jul 06 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Behaves just like dosbatch +runtime! ftplugin/dosbatch.vim ftplugin/dosbatch_*.vim ftplugin/dosbatch/*.vim + +endif diff --git a/ftplugin/bzl.vim b/ftplugin/bzl.vim new file mode 100644 index 00000000..a8cfdc4b --- /dev/null +++ b/ftplugin/bzl.vim @@ -0,0 +1,98 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: Bazel (http://bazel.io) +" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl) +" Last Change: 2015 Aug 11 + +"" +" @section Introduction, intro +" Core settings for the bzl filetype, used for BUILD and *.bzl files for the +" Bazel build system (http://bazel.io/). + +if exists('b:did_ftplugin') + finish +endif + + +" Vim 7.4.051 has opinionated settings in ftplugin/python.vim that try to force +" PEP8 conventions on every python file, but these conflict with Google's +" indentation guidelines. As a workaround, we explicitly source the system +" ftplugin, but save indentation settings beforehand and restore them after. +let s:save_expandtab = &l:expandtab +let s:save_shiftwidth = &l:shiftwidth +let s:save_softtabstop = &l:softtabstop +let s:save_tabstop = &l:tabstop + +" NOTE: Vim versions before 7.3.511 had a ftplugin/python.vim that was broken +" for compatible mode. +let s:save_cpo = &cpo +set cpo&vim + +" Load base python ftplugin (also defines b:did_ftplugin). +source $VIMRUNTIME/ftplugin/python.vim + +" NOTE: Vim versions before 7.4.104 and later set this in ftplugin/python.vim. +setlocal comments=b:#,fb:- + +" Restore pre-existing indentation settings. +let &l:expandtab = s:save_expandtab +let &l:shiftwidth = s:save_shiftwidth +let &l:softtabstop = s:save_softtabstop +let &l:tabstop = s:save_tabstop + +setlocal formatoptions-=t + +" Make gf work with imports in BUILD files. +setlocal includeexpr=substitute(v:fname,'//','','') + +" Enable syntax-based folding, if specified. +if get(g:, 'ft_bzl_fold', 0) + setlocal foldmethod=syntax + setlocal foldtext=BzlFoldText() +endif + +if exists('*BzlFoldText') + finish +endif + +function BzlFoldText() abort + let l:start_num = nextnonblank(v:foldstart) + let l:end_num = prevnonblank(v:foldend) + + if l:end_num <= l:start_num + 1 + " If the fold is empty, don't print anything for the contents. + let l:content = '' + else + " Otherwise look for something matching the content regex. + " And if nothing matches, print an ellipsis. + let l:content = '...' + for l:line in getline(l:start_num + 1, l:end_num - 1) + let l:content_match = matchstr(l:line, '\m\C^\s*name = \zs.*\ze,$') + if !empty(l:content_match) + let l:content = l:content_match + break + endif + endfor + endif + + " Enclose content with start and end + let l:start_text = getline(l:start_num) + let l:end_text = substitute(getline(l:end_num), '^\s*', '', '') + let l:text = l:start_text . ' ' . l:content . ' ' . l:end_text + + " Compute the available width for the displayed text. + let l:width = winwidth(0) - &foldcolumn - (&number ? &numberwidth : 0) + let l:lines_folded = ' ' . string(1 + v:foldend - v:foldstart) . ' lines' + + " Expand tabs, truncate, pad, and concatenate + let l:text = substitute(l:text, '\t', repeat(' ', &tabstop), 'g') + let l:text = strpart(l:text, 0, l:width - len(l:lines_folded)) + let l:padding = repeat(' ', l:width - len(l:lines_folded) - len(l:text)) + return l:text . l:padding . l:lines_folded +endfunction + +let &cpo = s:save_cpo +unlet s:save_cpo + +endif diff --git a/ftplugin/c.vim b/ftplugin/c.vim new file mode 100644 index 00000000..06c6b777 --- /dev/null +++ b/ftplugin/c.vim @@ -0,0 +1,68 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: C +" Maintainer: Bram Moolenaar +" Last Change: 2016 Jun 12 + +" 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< | if has('vms') | setl isk< | endif" + +" Set 'formatoptions' to break comment lines but not other lines, +" and insert the comment leader when hitting 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. +setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// + +" In VMS C keywords contain '$' characters. +if has("vms") + setlocal iskeyword+=$ +endif + +" When the matchit plugin is loaded, this makes the % command skip parens and +" braces in comments. +let b:match_words = &matchpairs . ',^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>' +let b:match_skip = 's:comment\|string\|character\|special' + +" Win32 can filter files in the browse dialog +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") + if &ft == "cpp" + let b:browsefilter = "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" . + \ "C Header Files (*.h)\t*.h\n" . + \ "C Source Files (*.c)\t*.c\n" . + \ "All Files (*.*)\t*.*\n" + elseif &ft == "ch" + let b:browsefilter = "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" . + \ "C Header Files (*.h)\t*.h\n" . + \ "C Source Files (*.c)\t*.c\n" . + \ "All Files (*.*)\t*.*\n" + else + let b:browsefilter = "C Source Files (*.c)\t*.c\n" . + \ "C Header Files (*.h)\t*.h\n" . + \ "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" . + \ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" . + \ "All Files (*.*)\t*.*\n" + endif +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif diff --git a/ftplugin/calendar.vim b/ftplugin/calendar.vim new file mode 100644 index 00000000..a765d83f --- /dev/null +++ b/ftplugin/calendar.vim @@ -0,0 +1,24 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: calendar(1) input file +" Previous Maintainer: Nikolai Weibull +" 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..caafe2ea --- /dev/null +++ b/ftplugin/cdrdaoconf.vim @@ -0,0 +1,22 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Previous Maintainer: Nikolai Weibull +" 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/ch.vim b/ftplugin/ch.vim new file mode 100644 index 00000000..41145d1b --- /dev/null +++ b/ftplugin/ch.vim @@ -0,0 +1,21 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: Ch +" Maintainer: SoftIntegration, Inc. +" 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/changelog.vim b/ftplugin/changelog.vim new file mode 100644 index 00000000..dd02344d --- /dev/null +++ b/ftplugin/changelog.vim @@ -0,0 +1,305 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: generic Changelog file +" Maintainer: Martin Florian +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2015-10-25 +" Variables: +" g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) - +" description: the timeformat used in ChangeLog entries. +" default: "%Y-%m-%d". +" g:changelog_dateformat - +" description: the format sent to strftime() to generate a date string. +" default: "%Y-%m-%d". +" g:changelog_username - +" description: the username to use in ChangeLog entries +" default: try to deduce it from environment variables and system files. +" Local Mappings: +" o - +" adds a new changelog entry for the current user for the current date. +" Global Mappings: +" o - +" switches to the ChangeLog buffer opened for the current directory, or +" opens it in a new buffer if it exists in the current directory. Then +" it does the same as the local o described above. +" Notes: +" run 'runtime ftplugin/changelog.vim' to enable the global mapping for +" changelog files. +" TODO: +" should we perhaps open the ChangeLog file even if it doesn't exist already? +" Problem is that you might end up with ChangeLog files all over the place. + +" If 'filetype' isn't "changelog", we must have been to add ChangeLog opener +if &filetype == 'changelog' + if exists('b:did_ftplugin') + finish + endif + let b:did_ftplugin = 1 + + let s:cpo_save = &cpo + set cpo&vim + + " Set up the format used for dates. + if !exists('g:changelog_dateformat') + if exists('g:changelog_timeformat') + let g:changelog_dateformat = g:changelog_timeformat + else + let g:changelog_dateformat = "%Y-%m-%d" + endif + endif + + function! s:username() + if exists('g:changelog_username') + return g:changelog_username + elseif $EMAIL != "" + return $EMAIL + elseif $EMAIL_ADDRESS != "" + return $EMAIL_ADDRESS + endif + + let login = s:login() + return printf('%s <%s@%s>', s:name(login), login, s:hostname()) + endfunction + + function! s:login() + return s:trimmed_system_with_default('whoami', 'unknown') + endfunction + + function! s:trimmed_system_with_default(command, default) + return s:first_line(s:system_with_default(a:command, a:default)) + endfunction + + function! s:system_with_default(command, default) + let output = system(a:command) + if v:shell_error + return default + endif + return output + endfunction + + function! s:first_line(string) + return substitute(a:string, '\n.*$', "", "") + endfunction + + function! s:name(login) + for name in [s:gecos_name(a:login), $NAME, s:capitalize(a:login)] + if name != "" + return name + endif + endfor + endfunction + + function! s:gecos_name(login) + for line in s:try_reading_file('/etc/passwd') + if line =~ '^' . a:login . ':' + return substitute(s:passwd_field(line, 5), '&', s:capitalize(a:login), "") + endif + endfor + return "" + endfunction + + function! s:try_reading_file(path) + try + return readfile(a:path) + catch + return [] + endtry + endfunction + + function! s:passwd_field(line, field) + let fields = split(a:line, ':', 1) + if len(fields) < a:field + return "" + endif + return fields[a:field - 1] + endfunction + + function! s:capitalize(word) + return toupper(a:word[0]) . strpart(a:word, 1) + endfunction + + function! s:hostname() + return s:trimmed_system_with_default('hostname', 'localhost') + endfunction + + " Format used for new date entries. + if !exists('g:changelog_new_date_format') + let g:changelog_new_date_format = "%d %u\n\n\t* %p%c\n\n" + endif + + " Format used for new entries to current date entry. + if !exists('g:changelog_new_entry_format') + let g:changelog_new_entry_format = "\t* %p%c" + endif + + " Regular expression used to find a given date entry. + if !exists('g:changelog_date_entry_search') + let g:changelog_date_entry_search = '^\s*%d\_s*%u' + endif + + " Regular expression used to find the end of a date entry + if !exists('g:changelog_date_end_entry_search') + let g:changelog_date_end_entry_search = '^\s*$' + endif + + + " Substitutes specific items in new date-entry formats and search strings. + " Can be done with substitute of course, but unclean, and need \@! then. + function! s:substitute_items(str, date, user, prefix) + let str = a:str + let middles = {'%': '%', 'd': a:date, 'u': a:user, 'p': a:prefix, 'c': '{cursor}'} + let i = stridx(str, '%') + while i != -1 + let inc = 0 + if has_key(middles, str[i + 1]) + let mid = middles[str[i + 1]] + let str = strpart(str, 0, i) . mid . strpart(str, i + 2) + let inc = strlen(mid) - 1 + endif + let i = stridx(str, '%', i + 1 + inc) + endwhile + return str + endfunction + + " Position the cursor once we've done all the funky substitution. + function! s:position_cursor() + if search('{cursor}') > 0 + let lnum = line('.') + let line = getline(lnum) + let cursor = stridx(line, '{cursor}') + call setline(lnum, substitute(line, '{cursor}', '', '')) + endif + startinsert + endfunction + + " Internal function to create a new entry in the ChangeLog. + function! s:new_changelog_entry(prefix) + " Deal with 'paste' option. + let save_paste = &paste + let &paste = 1 + call cursor(1, 1) + " Look for an entry for today by our user. + let date = strftime(g:changelog_dateformat) + let search = s:substitute_items(g:changelog_date_entry_search, date, + \ s:username(), a:prefix) + if search(search) > 0 + " Ok, now we look for the end of the date entry, and add an entry. + call cursor(nextnonblank(line('.') + 1), 1) + if search(g:changelog_date_end_entry_search, 'W') > 0 + let p = (line('.') == line('$')) ? line('.') : line('.') - 1 + else + let p = line('.') + endif + let ls = split(s:substitute_items(g:changelog_new_entry_format, '', '', a:prefix), + \ '\n') + call append(p, ls) + call cursor(p + 1, 1) + else + " Flag for removing empty lines at end of new ChangeLogs. + let remove_empty = line('$') == 1 + + " No entry today, so create a date-user header and insert an entry. + let todays_entry = s:substitute_items(g:changelog_new_date_format, + \ date, s:username(), a:prefix) + " Make sure we have a cursor positioning. + if stridx(todays_entry, '{cursor}') == -1 + let todays_entry = todays_entry . '{cursor}' + endif + + " Now do the work. + call append(0, split(todays_entry, '\n')) + + " Remove empty lines at end of file. + if remove_empty + $-/^\s*$/-1,$delete + endif + + " Reposition cursor once we're done. + call cursor(1, 1) + endif + + call s:position_cursor() + + " And reset 'paste' option + let &paste = save_paste + endfunction + + if exists(":NewChangelogEntry") != 2 + nnoremap o :call new_changelog_entry('') + xnoremap o :call new_changelog_entry('') + command! -nargs=0 NewChangelogEntry call s:new_changelog_entry('') + endif + + let b:undo_ftplugin = "setl com< fo< et< ai<" + + setlocal comments= + setlocal formatoptions+=t + setlocal noexpandtab + setlocal autoindent + + if &textwidth == 0 + setlocal textwidth=78 + let b:undo_ftplugin .= " tw<" + endif + + let &cpo = s:cpo_save + unlet s:cpo_save +else + let s:cpo_save = &cpo + set cpo&vim + + " Add the Changelog opening mapping + nnoremap o :call open_changelog() + + function! s:open_changelog() + let path = expand('%:p:h') + if exists('b:changelog_path') + let changelog = b:changelog_path + else + if exists('b:changelog_name') + let name = b:changelog_name + else + let name = 'ChangeLog' + endif + while isdirectory(path) + let changelog = path . '/' . name + if filereadable(changelog) + break + endif + let parent = substitute(path, '/\+[^/]*$', "", "") + if path == parent + break + endif + let path = parent + endwhile + endif + if !filereadable(changelog) + return + endif + + if exists('b:changelog_entry_prefix') + let prefix = call(b:changelog_entry_prefix, []) + else + let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "") + endif + + let buf = bufnr(changelog) + if buf != -1 + if bufwinnr(buf) != -1 + execute bufwinnr(buf) . 'wincmd w' + else + execute 'sbuffer' buf + endif + else + execute 'split' fnameescape(changelog) + endif + + call s:new_changelog_entry(prefix) + endfunction + + let &cpo = s:cpo_save + unlet s:cpo_save +endif + +endif diff --git a/ftplugin/clojure.vim b/ftplugin/clojure.vim index 4568d46e..2bbbf849 100644 --- a/ftplugin/clojure.vim +++ b/ftplugin/clojure.vim @@ -1,3 +1,102 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: Clojure +" Author: Meikel Brandmeyer +" +" Maintainer: Sung Pae +" URL: https://github.com/guns/vim-clojure-static +" License: Same as Vim +" Last Change: 18 July 2016 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = 'setlocal iskeyword< define< formatoptions< comments< commentstring< lispwords<' + +setlocal iskeyword+=?,-,*,!,+,/,=,<,>,.,:,$ + +" There will be false positives, but this is better than missing the whole set +" of user-defined def* definitions. +setlocal define=\\v[(/]def(ault)@!\\S* + +" Remove 't' from 'formatoptions' to avoid auto-wrapping code. +setlocal formatoptions-=t + +" Lisp comments are routinely nested (e.g. ;;; SECTION HEADING) +setlocal comments=n:; +setlocal commentstring=;\ %s + +" Specially indented symbols from clojure.core and clojure.test. +" +" Clojure symbols are indented in the defn style when they: +" +" * Define vars and anonymous functions +" * Create new lexical scopes or scopes with altered environments +" * Create conditional branches from a predicate function or value +" +" The arglists for these functions are generally in the form of [x & body]; +" Functions that accept a flat list of forms do not treat the first argument +" specially and hence are not indented specially. +" +" -*- LISPWORDS -*- +" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj +setlocal lispwords=as->,binding,bound-fn,case,catch,cond->,cond->>,condp,def,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftest,deftest-,deftype,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,if-some,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,when-some,while,with-bindings,with-in-str,with-local-vars,with-open,with-precision,with-redefs,with-redefs-fn,with-test + +" Provide insert mode completions for special forms and clojure.core. As +" 'omnifunc' is set by popular Clojure REPL client plugins, we also set +" 'completefunc' so that the user has some form of completion available when +" 'omnifunc' is set and no REPL connection exists. +for s:setting in ['omnifunc', 'completefunc'] + if exists('&' . s:setting) && empty(eval('&' . s:setting)) + execute 'setlocal ' . s:setting . '=clojurecomplete#Complete' + let b:undo_ftplugin .= ' | setlocal ' . s:setting . '<' + endif +endfor + +" Take all directories of the CLOJURE_SOURCE_DIRS environment variable +" and add them to the path option. +" +" This is a legacy option for VimClojure users. +if exists('$CLOJURE_SOURCE_DIRS') + for s:dir in split($CLOJURE_SOURCE_DIRS, (has("win32") || has("win64")) ? ';' : ':') + let s:dir = fnameescape(s:dir) + " Whitespace escaping for Windows + let s:dir = substitute(s:dir, '\', '\\\\', 'g') + let s:dir = substitute(s:dir, '\ ', '\\ ', 'g') + execute "setlocal path+=" . s:dir . "/**" + endfor + let b:undo_ftplugin .= ' | setlocal path<' +endif + +" Skip brackets in ignored syntax regions when using the % command +if exists('loaded_matchit') + let b:match_words = &matchpairs + let b:match_skip = 's:comment\|string\|regex\|character' + let b:undo_ftplugin .= ' | unlet! b:match_words b:match_skip' +endif + +" Win32 can filter files in the browse dialog +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" . + \ "ClojureScript Source Files (*.cljs)\t*.cljs\n" . + \ "Java Source Files (*.java)\t*.java\n" . + \ "All Files (*.*)\t*.*\n" + let b:undo_ftplugin .= ' | unlet! b:browsefilter' +endif + +let &cpo = s:cpo_save + +unlet! s:cpo_save s:setting s:dir + +" vim:sts=8:sw=8:ts=8:noet + +endif if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'clojure') == -1 " Vim filetype plugin file diff --git a/ftplugin/cobol.vim b/ftplugin/cobol.vim new file mode 100644 index 00000000..a72cc1ca --- /dev/null +++ b/ftplugin/cobol.vim @@ -0,0 +1,271 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: cobol +" Author: Tim Pope +" Last Update: By ZyX: use shiftwidth() + +" Insert mode mappings: +" 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\>,' . + \ '[$-]\@:\<\%(then\|else\)\>:\'.s:ordot.',' . + \ '-\@:\'.s:ordot . ',' . + \ '-\@:\<\%(when\)\>:\' .s:ordot . ',' . + \ '-\@\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(not\s\+\)\=on\s\+size\s\+error\>\)\)\@=:\%(\:\' .s:ordot . ',' . + \ '-\@\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(not\s\+\)\=on\s\+\%(overflow\|exception\)\>\)\)\@=:\%(\:\' .s:ordot . ',' . + \ '-\@\%(.*\(\%$\|\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*\%(invalid\s\+key\|at\s\+end\|no\s\+data\|at\s\+end-of-page\)\>\)\)\@=:\%(\:\' .s:ordot +endif + +if has("gui_win32") && !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 <'" . + \ " | sil! exe 'nunmap >'" . + \ " | sil! exe 'nunmap <<'" . + \ " | sil! exe 'nunmap >>'" . + \ " | sil! exe 'vunmap <'" . + \ " | sil! exe 'vunmap >'" . + \ " | sil! exe 'iunmap '" . + \ " | sil! exe 'iunmap '" . + \ " | sil! exe 'iunmap '" . + \ " | sil! exe 'nunmap Traditional'" . + \ " | sil! exe 'nunmap Comment'" . + \ " | sil! exe 'nunmap DeComment'" . + \ " | sil! exe 'vunmap VisualTraditional'" . + \ " | sil! exe 'vunmap VisualComment'" . + \ " | sil! exe 'iunmap VisualDeComment'" . + \ " | sil! exe 'unmap [['" . + \ " | sil! exe 'unmap ]]'" . + \ " | sil! exe 'unmap []'" . + \ " | sil! exe 'unmap ]['" +endif + +if !exists("g:no_plugin_maps") && !exists("g:no_cobol_maps") + if version >= 700 + nnoremap > :set opfunc=IncreaseFuncg@ + nnoremap < :set opfunc=DecreaseFuncg@ + endif + nnoremap >> :call CobolIndentBlock(1) + nnoremap << :call CobolIndentBlock(-1) + vnoremap > :call CobolIndentBlock(v:count1) + vnoremap < :call CobolIndentBlock(-v:count1) + inoremap =IncreaseIndent()=RestoreShiftwidth() + inoremap =DecreaseIndent()=RestoreShiftwidth() + if !maparg("","i") + inoremap =Tab()=RestoreShiftwidth() + endif + noremap [[ m':call search('\c^\%(\s*\.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\section\)\s*\.','bW') + noremap ]] m':call search('\c^\%(\s*\.\{6\}\s\+\)\zs[A-Za-z0-9-]\+\s\+\%(division\section\)\.','W') + noremap [] m':call toend('b') + noremap ][ m':call toend('') + " For EnhancedCommentify + noremap Traditional :call Comment('t') + noremap Comment :call Comment('c') + noremap DeComment :call Comment('u') + noremap VisualTraditional :'<,'>call Comment('t') + noremap VisualComment :'<,'>call Comment('c') + noremap VisualDeComment :'<,'>call Comment('u') +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 = "\" + 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 "\".lastchar.c + else + return s:repeat(c,interval) + endif +endfunction + +function! s:DecreaseIndent() + let c = "\" + 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 "\" + 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/conf.vim b/ftplugin/conf.vim new file mode 100644 index 00000000..c82b7470 --- /dev/null +++ b/ftplugin/conf.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: generic configuration file +" Previous Maintainer: Nikolai Weibull +" 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/config.vim b/ftplugin/config.vim new file mode 100644 index 00000000..f0238bca --- /dev/null +++ b/ftplugin/config.vim @@ -0,0 +1,46 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: config +" Maintainer: Dan Sharp +" 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..25459928 --- /dev/null +++ b/ftplugin/context.vim @@ -0,0 +1,106 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: ConTeXt typesetting engine +" Maintainer: Nicola Vitacolonna +" Former Maintainers: Nikolai Weibull +" 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:\\\@', + \ '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 [[ :call move_around(v:count1, "beginsection", "bW", v:false) +vnoremap [[ :call move_around(v:count1, "beginsection", "bW", v:true) +nnoremap ]] :call move_around(v:count1, "beginsection", "W", v:false) +vnoremap ]] :call move_around(v:count1, "beginsection", "W", v:true) +nnoremap [] :call move_around(v:count1, "endsection", "bW", v:false) +vnoremap [] :call move_around(v:count1, "endsection", "bW", v:true) +nnoremap ][ :call move_around(v:count1, "endsection", "W", v:false) +vnoremap ][ :call move_around(v:count1, "endsection", "W", v:true) +nnoremap [{ :call move_around(v:count1, "beginblock", "bW", v:false) +vnoremap [{ :call move_around(v:count1, "beginblock", "bW", v:true) +nnoremap ]} :call move_around(v:count1, "endblock", "W", v:false) +vnoremap ]} :call move_around(v:count1, "endblock", "W", v:true) + +" 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 tp :call tp() + " Select TeX paragraph + vnoremap tp :call tp() + + " $...$ text object + onoremap i$ :normal! T$vt$ + onoremap a$ :normal! F$vf$ + vnoremap i$ T$ot$ + vnoremap a$ F$of$ +endif + +" Commands for asynchronous typesetting +command! -buffer -nargs=? -complete=file ConTeXt call context#typeset() +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/cpp.vim b/ftplugin/cpp.vim new file mode 100644 index 00000000..8f291364 --- /dev/null +++ b/ftplugin/cpp.vim @@ -0,0 +1,16 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: C++ +" Maintainer: Bram Moolenaar +" Last Change: 2001 Jan 15 + +" 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/crm.vim b/ftplugin/crm.vim new file mode 100644 index 00000000..d0fa9dd2 --- /dev/null +++ b/ftplugin/crm.vim @@ -0,0 +1,23 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: CRM114 +" Previous Maintainer: Nikolai Weibull +" 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..82354add --- /dev/null +++ b/ftplugin/cs.vim @@ -0,0 +1,33 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: C# +" Maintainer: Johannes Zellner +" 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 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..31e77abb --- /dev/null +++ b/ftplugin/csc.vim @@ -0,0 +1,31 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: csc +" Maintainer: Dan Sharp +" 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= + \ '\:\,' . + \ '\:\:\,' . + \ '\\|\:\' +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/csh.vim b/ftplugin/csh.vim new file mode 100644 index 00000000..9a1050d7 --- /dev/null +++ b/ftplugin/csh.vim @@ -0,0 +1,52 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: csh +" Maintainer: Dan Sharp +" 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 formatoptions-=t +setlocal formatoptions+=crql + +" Csh: thanks to Johannes Zellner +" - Both foreach and end must appear alone on separate lines. +" - The words else and endif must appear at the beginning of input lines; +" the if must appear alone on its input line or after an else. +" - Each case label and the default label must appear at the start of a +" line. +" - while and end must appear alone on their input lines. +if exists("loaded_matchit") + let b:match_words = + \ '^\s*\.*(.*).*\:'. + \ '^\s*\\s\+\.*(.*).*\:^\s*\:'. + \ '^\s*\,'. + \ '\%(^\s*\\s\+\S\+\|^s*\\).*(.*):'. + \ '\:\:^\s*\,'. + \ '^\s*\.*(.*):^\s*\\s\+:^\s*\:^\s*\' +endif + +" Change the :browse e filter to primarily show csh-related files. +if has("gui_win32") + let b:browsefilter="csh Scripts (*.csh)\t*.csh\n" . + \ "All Files (*.*)\t*.*\n" +endif + +" Undo the stuff we changed. +let b:undo_ftplugin = "setlocal commentstring< formatoptions<" . + \ " | unlet! b:match_words b:browsefilter" + +" 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..82eedf74 --- /dev/null +++ b/ftplugin/css.vim @@ -0,0 +1,27 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin file +" Language: CSS +" Previous Maintainer: Nikolai Weibull +" 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/cucumber.vim b/ftplugin/cucumber.vim index 2b9fff04..c0cb8dcf 100644 --- a/ftplugin/cucumber.vim +++ b/ftplugin/cucumber.vim @@ -1,3 +1,157 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 + +" Vim filetype plugin +" Language: Cucumber +" Maintainer: Tim Pope +" Last Change: 2016 Aug 29 + +" 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 + +setlocal formatoptions-=t formatoptions+=croql +setlocal comments=:# commentstring=#\ %s +setlocal omnifunc=CucumberComplete + +let b:undo_ftplugin = "setl fo< com< cms< ofu<" + +let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??') +if !exists("b:cucumber_steps_glob") + let b:cucumber_steps_glob = b:cucumber_root.'/**/*.rb' +endif + +if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps") + cnoremap foldopen if &foldopen =~# 'tag'exe 'norm! zv'endif + nnoremap