From a98a6996c291b3e300d27b791eded9eed333d677 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 11 Jul 2014 04:05:51 +0000 Subject: re-integrate runtime/ vim-patch:0 #938 Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7 Excluding: Amiga icons (*.info, icons/) doc/hangulin.txt tutor/ spell/ lang/ (only used for menu translations) macros/maze/, macros/hanoi/, macros/life/, macros/urm/ These were used to test vi compatibility. termcap "Demonstration of a termcap file (for the Amiga and Archimedes)" Helped-by: Rich Wareham Helped-by: John Helped-by: Yann Helped-by: Christophe Badoit Helped-by: drasill Helped-by: Tae Sandoval Murgan Helped-by: Lowe Thiderman --- runtime/ftplugin/README.txt | 24 ++ runtime/ftplugin/a2ps.vim | 20 ++ runtime/ftplugin/aap.vim | 25 ++ runtime/ftplugin/abap.vim | 29 ++ runtime/ftplugin/abaqus.vim | 97 ++++++ runtime/ftplugin/ada.vim | 210 +++++++++++++ runtime/ftplugin/alsaconf.vim | 19 ++ runtime/ftplugin/ant.vim | 44 +++ runtime/ftplugin/arch.vim | 19 ++ runtime/ftplugin/art.vim | 15 + runtime/ftplugin/aspvbs.vim | 60 ++++ runtime/ftplugin/automake.vim | 16 + runtime/ftplugin/bdf.vim | 20 ++ runtime/ftplugin/bst.vim | 15 + runtime/ftplugin/btm.vim | 12 + runtime/ftplugin/c.vim | 64 ++++ runtime/ftplugin/calendar.vim | 20 ++ runtime/ftplugin/cdrdaoconf.vim | 18 ++ runtime/ftplugin/ch.vim | 17 + runtime/ftplugin/changelog.vim | 299 ++++++++++++++++++ runtime/ftplugin/clojure.vim | 95 ++++++ runtime/ftplugin/cobol.vim | 267 ++++++++++++++++ runtime/ftplugin/conf.vim | 19 ++ runtime/ftplugin/config.vim | 42 +++ runtime/ftplugin/context.vim | 35 +++ runtime/ftplugin/cpp.vim | 12 + runtime/ftplugin/crm.vim | 19 ++ runtime/ftplugin/cs.vim | 29 ++ runtime/ftplugin/csc.vim | 27 ++ runtime/ftplugin/csh.vim | 48 +++ runtime/ftplugin/css.vim | 23 ++ runtime/ftplugin/cucumber.vim | 154 +++++++++ runtime/ftplugin/cvsrc.vim | 19 ++ runtime/ftplugin/debchangelog.vim | 383 +++++++++++++++++++++++ runtime/ftplugin/debcontrol.vim | 70 +++++ runtime/ftplugin/denyhosts.vim | 18 ++ runtime/ftplugin/dictconf.vim | 19 ++ runtime/ftplugin/dictdconf.vim | 19 ++ runtime/ftplugin/diff.vim | 15 + runtime/ftplugin/dircolors.vim | 19 ++ runtime/ftplugin/docbk.vim | 24 ++ runtime/ftplugin/dosbatch.vim | 30 ++ runtime/ftplugin/dosini.vim | 19 ++ runtime/ftplugin/dtd.vim | 40 +++ runtime/ftplugin/dtrace.vim | 40 +++ runtime/ftplugin/elinks.vim | 19 ++ runtime/ftplugin/erlang.vim | 87 ++++++ runtime/ftplugin/eruby.vim | 102 ++++++ runtime/ftplugin/eterm.vim | 20 ++ runtime/ftplugin/falcon.vim | 48 +++ runtime/ftplugin/fetchmail.vim | 19 ++ runtime/ftplugin/flexwiki.vim | 59 ++++ runtime/ftplugin/fortran.vim | 123 ++++++++ runtime/ftplugin/framescript.vim | 30 ++ runtime/ftplugin/fvwm.vim | 14 + runtime/ftplugin/git.vim | 39 +++ runtime/ftplugin/gitcommit.vim | 67 ++++ runtime/ftplugin/gitconfig.vim | 15 + runtime/ftplugin/gitrebase.vim | 43 +++ runtime/ftplugin/gitsendemail.vim | 6 + runtime/ftplugin/gpg.vim | 19 ++ runtime/ftplugin/gprof.vim | 32 ++ runtime/ftplugin/group.vim | 19 ++ runtime/ftplugin/grub.vim | 19 ++ runtime/ftplugin/haml.vim | 69 +++++ runtime/ftplugin/hamster.vim | 62 ++++ runtime/ftplugin/haskell.vim | 20 ++ runtime/ftplugin/help.vim | 22 ++ runtime/ftplugin/hostconf.vim | 18 ++ runtime/ftplugin/hostsaccess.vim | 19 ++ runtime/ftplugin/html.vim | 51 +++ runtime/ftplugin/htmldjango.vim | 13 + runtime/ftplugin/indent.vim | 20 ++ runtime/ftplugin/initex.vim | 39 +++ runtime/ftplugin/ishd.vim | 33 ++ runtime/ftplugin/j.vim | 75 +++++ runtime/ftplugin/java.vim | 51 +++ runtime/ftplugin/javascript.vim | 38 +++ runtime/ftplugin/jproperties.vim | 15 + runtime/ftplugin/json.vim | 17 + runtime/ftplugin/jsp.vim | 67 ++++ runtime/ftplugin/kconfig.vim | 18 ++ runtime/ftplugin/kwt.vim | 32 ++ runtime/ftplugin/ld.vim | 20 ++ runtime/ftplugin/lftp.vim | 19 ++ runtime/ftplugin/libao.vim | 19 ++ runtime/ftplugin/limits.vim | 19 ++ runtime/ftplugin/liquid.vim | 61 ++++ runtime/ftplugin/lisp.vim | 26 ++ runtime/ftplugin/logcheck.vim | 17 + runtime/ftplugin/loginaccess.vim | 19 ++ runtime/ftplugin/logindefs.vim | 19 ++ runtime/ftplugin/logtalk.dict | 164 ++++++++++ runtime/ftplugin/logtalk.vim | 18 ++ runtime/ftplugin/lprolog.vim | 37 +++ runtime/ftplugin/lua.vim | 42 +++ runtime/ftplugin/m4.vim | 20 ++ runtime/ftplugin/mail.vim | 38 +++ runtime/ftplugin/mailaliases.vim | 18 ++ runtime/ftplugin/mailcap.vim | 19 ++ runtime/ftplugin/make.vim | 33 ++ runtime/ftplugin/man.vim | 189 +++++++++++ runtime/ftplugin/manconf.vim | 19 ++ runtime/ftplugin/markdown.vim | 22 ++ runtime/ftplugin/matlab.vim | 28 ++ runtime/ftplugin/mf.vim | 19 ++ runtime/ftplugin/modconf.vim | 20 ++ runtime/ftplugin/mp.vim | 28 ++ runtime/ftplugin/mplayerconf.vim | 20 ++ runtime/ftplugin/mrxvtrc.vim | 22 ++ runtime/ftplugin/msmessages.vim | 40 +++ runtime/ftplugin/muttrc.vim | 22 ++ runtime/ftplugin/nanorc.vim | 19 ++ runtime/ftplugin/netrc.vim | 19 ++ runtime/ftplugin/nsis.vim | 22 ++ runtime/ftplugin/objc.vim | 12 + runtime/ftplugin/ocaml.vim | 620 +++++++++++++++++++++++++++++++++++++ runtime/ftplugin/occam.vim | 49 +++ runtime/ftplugin/pamconf.vim | 19 ++ runtime/ftplugin/pascal.vim | 20 ++ runtime/ftplugin/passwd.vim | 19 ++ runtime/ftplugin/pdf.vim | 89 ++++++ runtime/ftplugin/perl.vim | 88 ++++++ runtime/ftplugin/perl6.vim | 77 +++++ runtime/ftplugin/php.vim | 83 +++++ runtime/ftplugin/pinfo.vim | 19 ++ runtime/ftplugin/plaintex.vim | 37 +++ runtime/ftplugin/postscr.vim | 38 +++ runtime/ftplugin/procmail.vim | 21 ++ runtime/ftplugin/prolog.vim | 20 ++ runtime/ftplugin/protocols.vim | 19 ++ runtime/ftplugin/pyrex.vim | 27 ++ runtime/ftplugin/python.vim | 65 ++++ runtime/ftplugin/qf.vim | 16 + runtime/ftplugin/quake.vim | 19 ++ runtime/ftplugin/r.vim | 31 ++ runtime/ftplugin/racc.vim | 20 ++ runtime/ftplugin/readline.vim | 19 ++ runtime/ftplugin/registry.vim | 36 +++ runtime/ftplugin/reva.vim | 25 ++ runtime/ftplugin/rhelp.vim | 29 ++ runtime/ftplugin/rmd.vim | 43 +++ runtime/ftplugin/rnc.vim | 19 ++ runtime/ftplugin/rnoweb.vim | 40 +++ runtime/ftplugin/rpl.vim | 22 ++ runtime/ftplugin/rrst.vim | 37 +++ runtime/ftplugin/rst.vim | 20 ++ runtime/ftplugin/ruby.vim | 395 +++++++++++++++++++++++ runtime/ftplugin/sass.vim | 22 ++ runtime/ftplugin/scheme.vim | 45 +++ runtime/ftplugin/screen.vim | 19 ++ runtime/ftplugin/scss.vim | 12 + runtime/ftplugin/sensors.vim | 19 ++ runtime/ftplugin/services.vim | 19 ++ runtime/ftplugin/setserial.vim | 19 ++ runtime/ftplugin/sgml.vim | 40 +++ runtime/ftplugin/sh.vim | 39 +++ runtime/ftplugin/sieve.vim | 20 ++ runtime/ftplugin/slpconf.vim | 20 ++ runtime/ftplugin/slpreg.vim | 20 ++ runtime/ftplugin/slpspi.vim | 20 ++ runtime/ftplugin/spec.vim | 180 +++++++++++ runtime/ftplugin/sql.vim | 524 +++++++++++++++++++++++++++++++ runtime/ftplugin/sshconfig.vim | 19 ++ runtime/ftplugin/sudoers.vim | 19 ++ runtime/ftplugin/svg.vim | 40 +++ runtime/ftplugin/sysctl.vim | 20 ++ runtime/ftplugin/systemverilog.vim | 11 + runtime/ftplugin/tcl.vim | 37 +++ runtime/ftplugin/tcsh.vim | 40 +++ runtime/ftplugin/terminfo.vim | 19 ++ runtime/ftplugin/tex.vim | 46 +++ runtime/ftplugin/text.vim | 17 + runtime/ftplugin/treetop.vim | 19 ++ runtime/ftplugin/tt2html.vim | 13 + runtime/ftplugin/udevconf.vim | 19 ++ runtime/ftplugin/udevperm.vim | 19 ++ runtime/ftplugin/udevrules.vim | 19 ++ runtime/ftplugin/updatedb.vim | 19 ++ runtime/ftplugin/vb.vim | 45 +++ runtime/ftplugin/verilog.vim | 57 ++++ runtime/ftplugin/vhdl.vim | 88 ++++++ runtime/ftplugin/vim.vim | 74 +++++ runtime/ftplugin/vroom.vim | 35 +++ runtime/ftplugin/xdefaults.vim | 20 ++ runtime/ftplugin/xf86conf.vim | 19 ++ runtime/ftplugin/xhtml.vim | 67 ++++ runtime/ftplugin/xinetd.vim | 20 ++ runtime/ftplugin/xml.vim | 64 ++++ runtime/ftplugin/xmodmap.vim | 19 ++ runtime/ftplugin/xs.vim | 14 + runtime/ftplugin/xsd.vim | 39 +++ runtime/ftplugin/xslt.vim | 16 + runtime/ftplugin/yaml.vim | 20 ++ runtime/ftplugin/zimbu.vim | 151 +++++++++ runtime/ftplugin/zsh.vim | 26 ++ 196 files changed, 9345 insertions(+) create mode 100644 runtime/ftplugin/README.txt create mode 100644 runtime/ftplugin/a2ps.vim create mode 100644 runtime/ftplugin/aap.vim create mode 100644 runtime/ftplugin/abap.vim create mode 100644 runtime/ftplugin/abaqus.vim create mode 100644 runtime/ftplugin/ada.vim create mode 100644 runtime/ftplugin/alsaconf.vim create mode 100644 runtime/ftplugin/ant.vim create mode 100644 runtime/ftplugin/arch.vim create mode 100644 runtime/ftplugin/art.vim create mode 100644 runtime/ftplugin/aspvbs.vim create mode 100644 runtime/ftplugin/automake.vim create mode 100644 runtime/ftplugin/bdf.vim create mode 100644 runtime/ftplugin/bst.vim create mode 100644 runtime/ftplugin/btm.vim create mode 100644 runtime/ftplugin/c.vim create mode 100644 runtime/ftplugin/calendar.vim create mode 100644 runtime/ftplugin/cdrdaoconf.vim create mode 100644 runtime/ftplugin/ch.vim create mode 100644 runtime/ftplugin/changelog.vim create mode 100644 runtime/ftplugin/clojure.vim create mode 100644 runtime/ftplugin/cobol.vim create mode 100644 runtime/ftplugin/conf.vim create mode 100644 runtime/ftplugin/config.vim create mode 100644 runtime/ftplugin/context.vim create mode 100644 runtime/ftplugin/cpp.vim create mode 100644 runtime/ftplugin/crm.vim create mode 100644 runtime/ftplugin/cs.vim create mode 100644 runtime/ftplugin/csc.vim create mode 100644 runtime/ftplugin/csh.vim create mode 100644 runtime/ftplugin/css.vim create mode 100644 runtime/ftplugin/cucumber.vim create mode 100644 runtime/ftplugin/cvsrc.vim create mode 100644 runtime/ftplugin/debchangelog.vim create mode 100644 runtime/ftplugin/debcontrol.vim create mode 100644 runtime/ftplugin/denyhosts.vim create mode 100644 runtime/ftplugin/dictconf.vim create mode 100644 runtime/ftplugin/dictdconf.vim create mode 100644 runtime/ftplugin/diff.vim create mode 100644 runtime/ftplugin/dircolors.vim create mode 100644 runtime/ftplugin/docbk.vim create mode 100644 runtime/ftplugin/dosbatch.vim create mode 100644 runtime/ftplugin/dosini.vim create mode 100644 runtime/ftplugin/dtd.vim create mode 100644 runtime/ftplugin/dtrace.vim create mode 100644 runtime/ftplugin/elinks.vim create mode 100644 runtime/ftplugin/erlang.vim create mode 100644 runtime/ftplugin/eruby.vim create mode 100644 runtime/ftplugin/eterm.vim create mode 100644 runtime/ftplugin/falcon.vim create mode 100644 runtime/ftplugin/fetchmail.vim create mode 100644 runtime/ftplugin/flexwiki.vim create mode 100644 runtime/ftplugin/fortran.vim create mode 100644 runtime/ftplugin/framescript.vim create mode 100644 runtime/ftplugin/fvwm.vim create mode 100644 runtime/ftplugin/git.vim create mode 100644 runtime/ftplugin/gitcommit.vim create mode 100644 runtime/ftplugin/gitconfig.vim create mode 100644 runtime/ftplugin/gitrebase.vim create mode 100644 runtime/ftplugin/gitsendemail.vim create mode 100644 runtime/ftplugin/gpg.vim create mode 100644 runtime/ftplugin/gprof.vim create mode 100644 runtime/ftplugin/group.vim create mode 100644 runtime/ftplugin/grub.vim create mode 100644 runtime/ftplugin/haml.vim create mode 100644 runtime/ftplugin/hamster.vim create mode 100644 runtime/ftplugin/haskell.vim create mode 100644 runtime/ftplugin/help.vim create mode 100644 runtime/ftplugin/hostconf.vim create mode 100644 runtime/ftplugin/hostsaccess.vim create mode 100644 runtime/ftplugin/html.vim create mode 100644 runtime/ftplugin/htmldjango.vim create mode 100644 runtime/ftplugin/indent.vim create mode 100644 runtime/ftplugin/initex.vim create mode 100644 runtime/ftplugin/ishd.vim create mode 100644 runtime/ftplugin/j.vim create mode 100644 runtime/ftplugin/java.vim create mode 100644 runtime/ftplugin/javascript.vim create mode 100644 runtime/ftplugin/jproperties.vim create mode 100644 runtime/ftplugin/json.vim create mode 100644 runtime/ftplugin/jsp.vim create mode 100644 runtime/ftplugin/kconfig.vim create mode 100644 runtime/ftplugin/kwt.vim create mode 100644 runtime/ftplugin/ld.vim create mode 100644 runtime/ftplugin/lftp.vim create mode 100644 runtime/ftplugin/libao.vim create mode 100644 runtime/ftplugin/limits.vim create mode 100644 runtime/ftplugin/liquid.vim create mode 100644 runtime/ftplugin/lisp.vim create mode 100644 runtime/ftplugin/logcheck.vim create mode 100644 runtime/ftplugin/loginaccess.vim create mode 100644 runtime/ftplugin/logindefs.vim create mode 100644 runtime/ftplugin/logtalk.dict create mode 100644 runtime/ftplugin/logtalk.vim create mode 100644 runtime/ftplugin/lprolog.vim create mode 100644 runtime/ftplugin/lua.vim create mode 100644 runtime/ftplugin/m4.vim create mode 100644 runtime/ftplugin/mail.vim create mode 100644 runtime/ftplugin/mailaliases.vim create mode 100644 runtime/ftplugin/mailcap.vim create mode 100644 runtime/ftplugin/make.vim create mode 100644 runtime/ftplugin/man.vim create mode 100644 runtime/ftplugin/manconf.vim create mode 100644 runtime/ftplugin/markdown.vim create mode 100644 runtime/ftplugin/matlab.vim create mode 100644 runtime/ftplugin/mf.vim create mode 100644 runtime/ftplugin/modconf.vim create mode 100644 runtime/ftplugin/mp.vim create mode 100644 runtime/ftplugin/mplayerconf.vim create mode 100644 runtime/ftplugin/mrxvtrc.vim create mode 100644 runtime/ftplugin/msmessages.vim create mode 100644 runtime/ftplugin/muttrc.vim create mode 100644 runtime/ftplugin/nanorc.vim create mode 100644 runtime/ftplugin/netrc.vim create mode 100644 runtime/ftplugin/nsis.vim create mode 100644 runtime/ftplugin/objc.vim create mode 100644 runtime/ftplugin/ocaml.vim create mode 100644 runtime/ftplugin/occam.vim create mode 100644 runtime/ftplugin/pamconf.vim create mode 100644 runtime/ftplugin/pascal.vim create mode 100644 runtime/ftplugin/passwd.vim create mode 100644 runtime/ftplugin/pdf.vim create mode 100644 runtime/ftplugin/perl.vim create mode 100644 runtime/ftplugin/perl6.vim create mode 100644 runtime/ftplugin/php.vim create mode 100644 runtime/ftplugin/pinfo.vim create mode 100644 runtime/ftplugin/plaintex.vim create mode 100644 runtime/ftplugin/postscr.vim create mode 100644 runtime/ftplugin/procmail.vim create mode 100644 runtime/ftplugin/prolog.vim create mode 100644 runtime/ftplugin/protocols.vim create mode 100644 runtime/ftplugin/pyrex.vim create mode 100644 runtime/ftplugin/python.vim create mode 100644 runtime/ftplugin/qf.vim create mode 100644 runtime/ftplugin/quake.vim create mode 100644 runtime/ftplugin/r.vim create mode 100644 runtime/ftplugin/racc.vim create mode 100644 runtime/ftplugin/readline.vim create mode 100644 runtime/ftplugin/registry.vim create mode 100644 runtime/ftplugin/reva.vim create mode 100644 runtime/ftplugin/rhelp.vim create mode 100644 runtime/ftplugin/rmd.vim create mode 100644 runtime/ftplugin/rnc.vim create mode 100644 runtime/ftplugin/rnoweb.vim create mode 100644 runtime/ftplugin/rpl.vim create mode 100644 runtime/ftplugin/rrst.vim create mode 100644 runtime/ftplugin/rst.vim create mode 100644 runtime/ftplugin/ruby.vim create mode 100644 runtime/ftplugin/sass.vim create mode 100644 runtime/ftplugin/scheme.vim create mode 100644 runtime/ftplugin/screen.vim create mode 100644 runtime/ftplugin/scss.vim create mode 100644 runtime/ftplugin/sensors.vim create mode 100644 runtime/ftplugin/services.vim create mode 100644 runtime/ftplugin/setserial.vim create mode 100644 runtime/ftplugin/sgml.vim create mode 100644 runtime/ftplugin/sh.vim create mode 100644 runtime/ftplugin/sieve.vim create mode 100644 runtime/ftplugin/slpconf.vim create mode 100644 runtime/ftplugin/slpreg.vim create mode 100644 runtime/ftplugin/slpspi.vim create mode 100644 runtime/ftplugin/spec.vim create mode 100644 runtime/ftplugin/sql.vim create mode 100644 runtime/ftplugin/sshconfig.vim create mode 100644 runtime/ftplugin/sudoers.vim create mode 100644 runtime/ftplugin/svg.vim create mode 100644 runtime/ftplugin/sysctl.vim create mode 100644 runtime/ftplugin/systemverilog.vim create mode 100644 runtime/ftplugin/tcl.vim create mode 100644 runtime/ftplugin/tcsh.vim create mode 100644 runtime/ftplugin/terminfo.vim create mode 100644 runtime/ftplugin/tex.vim create mode 100644 runtime/ftplugin/text.vim create mode 100644 runtime/ftplugin/treetop.vim create mode 100644 runtime/ftplugin/tt2html.vim create mode 100644 runtime/ftplugin/udevconf.vim create mode 100644 runtime/ftplugin/udevperm.vim create mode 100644 runtime/ftplugin/udevrules.vim create mode 100644 runtime/ftplugin/updatedb.vim create mode 100644 runtime/ftplugin/vb.vim create mode 100644 runtime/ftplugin/verilog.vim create mode 100644 runtime/ftplugin/vhdl.vim create mode 100644 runtime/ftplugin/vim.vim create mode 100644 runtime/ftplugin/vroom.vim create mode 100644 runtime/ftplugin/xdefaults.vim create mode 100644 runtime/ftplugin/xf86conf.vim create mode 100644 runtime/ftplugin/xhtml.vim create mode 100644 runtime/ftplugin/xinetd.vim create mode 100644 runtime/ftplugin/xml.vim create mode 100644 runtime/ftplugin/xmodmap.vim create mode 100644 runtime/ftplugin/xs.vim create mode 100644 runtime/ftplugin/xsd.vim create mode 100644 runtime/ftplugin/xslt.vim create mode 100644 runtime/ftplugin/yaml.vim create mode 100644 runtime/ftplugin/zimbu.vim create mode 100644 runtime/ftplugin/zsh.vim (limited to 'runtime/ftplugin') diff --git a/runtime/ftplugin/README.txt b/runtime/ftplugin/README.txt new file mode 100644 index 0000000000..19ad58bdd3 --- /dev/null +++ b/runtime/ftplugin/README.txt @@ -0,0 +1,24 @@ +The ftplugin directory is for Vim plugin scripts that are only used for a +specific filetype. + +All files ending in .vim in this directory and subdirectories will be sourced +by Vim when it detects the filetype that matches the name of the file or +subdirectory. +For example, these are all loaded for the "c" filetype: + + c.vim + c_extra.vim + c/settings.vim + +Note that the "_" in "c_extra.vim" is required to separate the filetype name +from the following arbitrary name. + +The filetype plugins are only loaded when the ":filetype plugin" command has +been used. + +The default filetype plugin files contain settings that 95% of the users will +want to use. They do not contain personal preferences, like the value of +'shiftwidth'. + +If you want to do additional settings, or overrule the default filetype +plugin, you can create your own plugin file. See ":help ftplugin" in Vim. diff --git a/runtime/ftplugin/a2ps.vim b/runtime/ftplugin/a2ps.vim new file mode 100644 index 0000000000..6653351949 --- /dev/null +++ b/runtime/ftplugin/a2ps.vim @@ -0,0 +1,20 @@ +" Vim filetype plugin file +" Language: a2ps(1) configuration file +" 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 diff --git a/runtime/ftplugin/aap.vim b/runtime/ftplugin/aap.vim new file mode 100644 index 0000000000..9b20ec4766 --- /dev/null +++ b/runtime/ftplugin/aap.vim @@ -0,0 +1,25 @@ +" 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 diff --git a/runtime/ftplugin/abap.vim b/runtime/ftplugin/abap.vim new file mode 100644 index 0000000000..956b002ecd --- /dev/null +++ b/runtime/ftplugin/abap.vim @@ -0,0 +1,29 @@ +" 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 : diff --git a/runtime/ftplugin/abaqus.vim b/runtime/ftplugin/abaqus.vim new file mode 100644 index 0000000000..b263d0c318 --- /dev/null +++ b/runtime/ftplugin/abaqus.vim @@ -0,0 +1,97 @@ +" 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 diff --git a/runtime/ftplugin/ada.vim b/runtime/ftplugin/ada.vim new file mode 100644 index 0000000000..0809e7b206 --- /dev/null +++ b/runtime/ftplugin/ada.vim @@ -0,0 +1,210 @@ +"------------------------------------------------------------------------------ +" 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 diff --git a/runtime/ftplugin/alsaconf.vim b/runtime/ftplugin/alsaconf.vim new file mode 100644 index 0000000000..5d763c8011 --- /dev/null +++ b/runtime/ftplugin/alsaconf.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: alsaconf(8) configuration file +" 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 diff --git a/runtime/ftplugin/ant.vim b/runtime/ftplugin/ant.vim new file mode 100644 index 0000000000..5905858896 --- /dev/null +++ b/runtime/ftplugin/ant.vim @@ -0,0 +1,44 @@ +" 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 diff --git a/runtime/ftplugin/arch.vim b/runtime/ftplugin/arch.vim new file mode 100644 index 0000000000..71d831e112 --- /dev/null +++ b/runtime/ftplugin/arch.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: GNU Arch inventory file +" 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 diff --git a/runtime/ftplugin/art.vim b/runtime/ftplugin/art.vim new file mode 100644 index 0000000000..c501a992d8 --- /dev/null +++ b/runtime/ftplugin/art.vim @@ -0,0 +1,15 @@ +" 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 diff --git a/runtime/ftplugin/aspvbs.vim b/runtime/ftplugin/aspvbs.vim new file mode 100644 index 0000000000..660dab4685 --- /dev/null +++ b/runtime/ftplugin/aspvbs.vim @@ -0,0 +1,60 @@ +" 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 diff --git a/runtime/ftplugin/automake.vim b/runtime/ftplugin/automake.vim new file mode 100644 index 0000000000..20b06af362 --- /dev/null +++ b/runtime/ftplugin/automake.vim @@ -0,0 +1,16 @@ +" Vim filetype plugin file +" Language: Automake +" 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 diff --git a/runtime/ftplugin/bdf.vim b/runtime/ftplugin/bdf.vim new file mode 100644 index 0000000000..120c5df968 --- /dev/null +++ b/runtime/ftplugin/bdf.vim @@ -0,0 +1,20 @@ +" Vim filetype plugin file +" Language: BDF font definition +" 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 diff --git a/runtime/ftplugin/bst.vim b/runtime/ftplugin/bst.vim new file mode 100644 index 0000000000..5e65aac31c --- /dev/null +++ b/runtime/ftplugin/bst.vim @@ -0,0 +1,15 @@ +" 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<" diff --git a/runtime/ftplugin/btm.vim b/runtime/ftplugin/btm.vim new file mode 100644 index 0000000000..d3dc5b75f5 --- /dev/null +++ b/runtime/ftplugin/btm.vim @@ -0,0 +1,12 @@ +" 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 diff --git a/runtime/ftplugin/c.vim b/runtime/ftplugin/c.vim new file mode 100644 index 0000000000..19e8c51edb --- /dev/null +++ b/runtime/ftplugin/c.vim @@ -0,0 +1,64 @@ +" Vim filetype plugin file +" Language: C +" Maintainer: Bram Moolenaar +" Last Change: 2012 Jul 10 + +" 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' + +" 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 diff --git a/runtime/ftplugin/calendar.vim b/runtime/ftplugin/calendar.vim new file mode 100644 index 0000000000..6f117e36e5 --- /dev/null +++ b/runtime/ftplugin/calendar.vim @@ -0,0 +1,20 @@ +" Vim filetype plugin file +" Language: calendar(1) input file +" 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 diff --git a/runtime/ftplugin/cdrdaoconf.vim b/runtime/ftplugin/cdrdaoconf.vim new file mode 100644 index 0000000000..557fd82c53 --- /dev/null +++ b/runtime/ftplugin/cdrdaoconf.vim @@ -0,0 +1,18 @@ +" Vim filetype plugin file +" 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 diff --git a/runtime/ftplugin/ch.vim b/runtime/ftplugin/ch.vim new file mode 100644 index 0000000000..ed09003b1c --- /dev/null +++ b/runtime/ftplugin/ch.vim @@ -0,0 +1,17 @@ +" 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 diff --git a/runtime/ftplugin/changelog.vim b/runtime/ftplugin/changelog.vim new file mode 100644 index 0000000000..244245e271 --- /dev/null +++ b/runtime/ftplugin/changelog.vim @@ -0,0 +1,299 @@ +" Vim filetype plugin file +" Language: generic Changelog file +" Maintainer: Nikolai Weibull +" Latest Revision: 2014-01-10 +" 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 + noremap 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 diff --git a/runtime/ftplugin/clojure.vim b/runtime/ftplugin/clojure.vim new file mode 100644 index 0000000000..10fcb9f205 --- /dev/null +++ b/runtime/ftplugin/clojure.vim @@ -0,0 +1,95 @@ +" 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: 27 March 2014 + +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-010/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 diff --git a/runtime/ftplugin/cobol.vim b/runtime/ftplugin/cobol.vim new file mode 100644 index 0000000000..11ad3ad727 --- /dev/null +++ b/runtime/ftplugin/cobol.vim @@ -0,0 +1,267 @@ +" 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 diff --git a/runtime/ftplugin/conf.vim b/runtime/ftplugin/conf.vim new file mode 100644 index 0000000000..1b110e475b --- /dev/null +++ b/runtime/ftplugin/conf.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: generic configuration file +" 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 diff --git a/runtime/ftplugin/config.vim b/runtime/ftplugin/config.vim new file mode 100644 index 0000000000..7fde42ebf5 --- /dev/null +++ b/runtime/ftplugin/config.vim @@ -0,0 +1,42 @@ +" 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 diff --git a/runtime/ftplugin/context.vim b/runtime/ftplugin/context.vim new file mode 100644 index 0000000000..1c7d678375 --- /dev/null +++ b/runtime/ftplugin/context.vim @@ -0,0 +1,35 @@ +" Vim filetype plugin file +" Language: ConTeXt typesetting engine +" 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< def< inc< sua< fo<" + +setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tcroql + +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\)' + +setlocal suffixesadd=.tex + +if exists("loaded_matchit") + let b:match_ignorecase = 0 + let b:match_skip = 'r:\\\@ +" 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 diff --git a/runtime/ftplugin/crm.vim b/runtime/ftplugin/crm.vim new file mode 100644 index 0000000000..e86e683068 --- /dev/null +++ b/runtime/ftplugin/crm.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: CRM114 +" 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 diff --git a/runtime/ftplugin/cs.vim b/runtime/ftplugin/cs.vim new file mode 100644 index 0000000000..7c2cbda32f --- /dev/null +++ b/runtime/ftplugin/cs.vim @@ -0,0 +1,29 @@ +" 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 diff --git a/runtime/ftplugin/csc.vim b/runtime/ftplugin/csc.vim new file mode 100644 index 0000000000..3a09c3bf8b --- /dev/null +++ b/runtime/ftplugin/csc.vim @@ -0,0 +1,27 @@ +" 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 diff --git a/runtime/ftplugin/csh.vim b/runtime/ftplugin/csh.vim new file mode 100644 index 0000000000..4ae09f91be --- /dev/null +++ b/runtime/ftplugin/csh.vim @@ -0,0 +1,48 @@ +" 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 diff --git a/runtime/ftplugin/css.vim b/runtime/ftplugin/css.vim new file mode 100644 index 0000000000..43d1edfa5b --- /dev/null +++ b/runtime/ftplugin/css.vim @@ -0,0 +1,23 @@ +" Vim filetype plugin file +" Language: CSS +" 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 diff --git a/runtime/ftplugin/cucumber.vim b/runtime/ftplugin/cucumber.vim new file mode 100644 index 0000000000..2ec1a5976f --- /dev/null +++ b/runtime/ftplugin/cucumber.vim @@ -0,0 +1,154 @@ +" Vim filetype plugin +" Language: Cucumber +" Maintainer: Tim Pope +" Last Change: 2013 Jun 01 + +" 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("g:no_plugin_maps") && !exists("g:no_cucumber_maps") + nnoremap :exe jump('edit',v:count) + nnoremap [ :exe jump('edit',v:count) + nnoremap ] :exe jump('edit',v:count) + nnoremap ] :exe jump('split',v:count) + nnoremap :exe jump('split',v:count) + nnoremap d :exe jump('split',v:count) + nnoremap :exe jump('split',v:count) + nnoremap } :exe jump('pedit',v:count) + nnoremap [d :exe jump('pedit',v:count) + nnoremap ]d :exe jump('pedit',v:count) + let b:undo_ftplugin .= + \ "|sil! nunmap " . + \ "|sil! nunmap [" . + \ "|sil! nunmap ]" . + \ "|sil! nunmap ]" . + \ "|sil! nunmap " . + \ "|sil! nunmap d" . + \ "|sil! nunmap " . + \ "|sil! nunmap }" . + \ "|sil! nunmap [d" . + \ "|sil! nunmap ]d" +endif + +function! s:jump(command,count) + let steps = s:steps('.') + if len(steps) == 0 || len(steps) < a:count + return 'echoerr "No matching step found"' + elseif len(steps) > 1 && !a:count + return 'echoerr "Multiple matching steps found"' + else + let c = a:count ? a:count-1 : 0 + return a:command.' +'.steps[c][1].' '.escape(steps[c][0],' %#') + endif +endfunction + +function! s:allsteps() + let step_pattern = '\C^\s*\K\k*\>\s*(\=\s*\zs\S.\{-\}\ze\s*)\=\s*\%(do\|{\)\s*\%(|[^|]*|\s*\)\=\%($\|#\)' + let steps = [] + for file in split(glob(b:cucumber_root.'/**/*.rb'),"\n") + let lines = readfile(file) + let num = 0 + for line in lines + let num += 1 + if line =~ step_pattern + let type = matchstr(line,'\w\+') + let steps += [[file,num,type,matchstr(line,step_pattern)]] + endif + endfor + endfor + return steps +endfunction + +function! s:steps(lnum) + let c = match(getline(a:lnum), '\S') + 1 + while synIDattr(synID(a:lnum,c,1),'name') !~# '^$\|Region$' + let c = c + 1 + endwhile + let step = matchstr(getline(a:lnum)[c-1 : -1],'^\s*\zs.\{-\}\ze\s*$') + return filter(s:allsteps(),'s:stepmatch(v:val[3],step)') +endfunction + +function! s:stepmatch(receiver,target) + if a:receiver =~ '^[''"].*[''"]$' + let pattern = '^'.escape(substitute(a:receiver[1:-2],'$\w\+','(.*)','g'),'/').'$' + elseif a:receiver =~ '^/.*/$' + let pattern = a:receiver[1:-2] + elseif a:receiver =~ '^%r..*.$' + let pattern = escape(a:receiver[3:-2],'/') + else + return 0 + endif + try + let vimpattern = substitute(substitute(pattern,'\\\@ +" 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 diff --git a/runtime/ftplugin/debchangelog.vim b/runtime/ftplugin/debchangelog.vim new file mode 100644 index 0000000000..d2718db88e --- /dev/null +++ b/runtime/ftplugin/debchangelog.vim @@ -0,0 +1,383 @@ +" Vim filetype plugin file (GUI menu, folding and completion) +" Language: Debian Changelog +" Maintainer: Debian Vim Maintainers +" Former Maintainers: Michael Piefel +" Stefano Zacchiroli +" Last Change: 2014-01-31 +" License: Vim License +" URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/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 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 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 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 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 Finalised() + let savelinenum = line(".") + normal 1G + 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() + normal 1G + call search("^ -- ") + normal kk + call append(".", " * ") + normal jjj + let warn=WarnIfNotUnfinalised() + normal kk + if warn + echohl MoreMsg + call input("Hit ENTER") + echohl None + endif + startinsert! +endfunction + +function CloseBug() + normal 1G + call search("^ -- ") + let warn=WarnIfNotUnfinalised() + normal kk + 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 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 UnfinaliseMenu() + normal 1G + call search("^ -- ") + call setline(".", " -- ") +endfunction + +function 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 FinaliseMenu() + normal 1G + call search("^ -- ") + call setline(".", " -- " . FullName() . " <" . Email() . "> " . Date()) +endfunction + + +function MakeMenu() + amenu &Changelog.&New\ Version :call NewVersion() + amenu Changelog.&Add\ Entry :call AddEntry() + amenu Changelog.&Close\ Bug :call CloseBug() + menu Changelog.-sep- + + amenu Changelog.Set\ &Distribution.&unstable :call Distribution("unstable") + amenu Changelog.Set\ Distribution.&frozen :call Distribution("frozen") + amenu Changelog.Set\ Distribution.&stable :call Distribution("stable") + menu Changelog.Set\ Distribution.-sep- + amenu Changelog.Set\ Distribution.frozen\ unstable :call Distribution("frozen unstable") + amenu Changelog.Set\ Distribution.stable\ unstable :call Distribution("stable unstable") + amenu Changelog.Set\ Distribution.stable\ frozen :call Distribution("stable frozen") + amenu Changelog.Set\ Distribution.stable\ frozen\ unstable :call Distribution("stable frozen unstable") + + amenu Changelog.Set\ &Urgency.&low :call Urgency("low") + amenu Changelog.Set\ Urgency.&medium :call Urgency("medium") + amenu Changelog.Set\ Urgency.&high :call Urgency("high") + + menu Changelog.-sep- + amenu Changelog.U&nfinalise :call Unfinalise() + amenu Changelog.&Finalise :call Finalise() + + if Finalised() + call FinaliseMenu() + else + call UnfinaliseMenu() + endif +endfunction + +augroup changelogMenu +au BufEnter * if &filetype == "debchangelog" | call 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: diff --git a/runtime/ftplugin/debcontrol.vim b/runtime/ftplugin/debcontrol.vim new file mode 100644 index 0000000000..7871d9897f --- /dev/null +++ b/runtime/ftplugin/debcontrol.vim @@ -0,0 +1,70 @@ +" Vim filetype plugin file (GUI menu and folding) +" Language: Debian control files +" Maintainer: Debian Vim Maintainers +" Former Maintainer: Pierre Habouzit +" Last Change: 2008-03-08 +" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/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 diff --git a/runtime/ftplugin/denyhosts.vim b/runtime/ftplugin/denyhosts.vim new file mode 100644 index 0000000000..557fd82c53 --- /dev/null +++ b/runtime/ftplugin/denyhosts.vim @@ -0,0 +1,18 @@ +" Vim filetype plugin file +" 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 diff --git a/runtime/ftplugin/dictconf.vim b/runtime/ftplugin/dictconf.vim new file mode 100644 index 0000000000..659046c176 --- /dev/null +++ b/runtime/ftplugin/dictconf.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: dict(1) configuration file +" 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 diff --git a/runtime/ftplugin/dictdconf.vim b/runtime/ftplugin/dictdconf.vim new file mode 100644 index 0000000000..ee738c50ce --- /dev/null +++ b/runtime/ftplugin/dictdconf.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: dictd(8) configuration file +" 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 diff --git a/runtime/ftplugin/diff.vim b/runtime/ftplugin/diff.vim new file mode 100644 index 0000000000..3fe1b84a04 --- /dev/null +++ b/runtime/ftplugin/diff.vim @@ -0,0 +1,15 @@ +" Vim filetype plugin file +" Language: Diff +" Maintainer: Bram Moolenaar +" Last Change: 2005 Jul 27 + +" 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 diff --git a/runtime/ftplugin/dircolors.vim b/runtime/ftplugin/dircolors.vim new file mode 100644 index 0000000000..3b3d046e36 --- /dev/null +++ b/runtime/ftplugin/dircolors.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: dircolors(1) input file +" 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 diff --git a/runtime/ftplugin/docbk.vim b/runtime/ftplugin/docbk.vim new file mode 100644 index 0000000000..cbceb6b305 --- /dev/null +++ b/runtime/ftplugin/docbk.vim @@ -0,0 +1,24 @@ +" Vim filetype plugin file +" Language: DocBook +" Maintainer: Nikolai Weibull +" Latest Revision: 2012-04-25 + +if exists('b:did_ftplugin') + finish +endif + +if !exists('b:docbk_type') + if expand('%:e') == 'sgml' + let b:docbk_type = 'sgml' + else + let b:docbk_type = 'xml' + endif +endif + +if b:docbk_type == 'sgml' + runtime! ftplugin/sgml.vim ftplugin/sgml_*.vim ftplugin/sgml/*.vim +else + runtime! ftplugin/xml.vim ftplugin/xml_*.vim ftplugin/xml/*.vim +endif + +let b:undo_ftplugin = "unlet! b:docbk_type" diff --git a/runtime/ftplugin/dosbatch.vim b/runtime/ftplugin/dosbatch.vim new file mode 100644 index 0000000000..dbc02d80f8 --- /dev/null +++ b/runtime/ftplugin/dosbatch.vim @@ -0,0 +1,30 @@ +" Vim filetype plugin file +" Language: MS-DOS .bat files +" Maintainer: Mike Williams +" Last Change: 8th May 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 + +" BAT comment formatting +setlocal comments=b:rem,b:@rem,b:REM,b:@REM,::: +setlocal formatoptions-=t formatoptions+=rol + +" 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<" + \ . "| unlet! b:browsefiler" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/ftplugin/dosini.vim b/runtime/ftplugin/dosini.vim new file mode 100644 index 0000000000..461403ca95 --- /dev/null +++ b/runtime/ftplugin/dosini.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: Configuration File (ini file) for MSDOS/MS Windows +" 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 diff --git a/runtime/ftplugin/dtd.vim b/runtime/ftplugin/dtd.vim new file mode 100644 index 0000000000..6c08f6691d --- /dev/null +++ b/runtime/ftplugin/dtd.vim @@ -0,0 +1,40 @@ +" Vim filetype plugin file +" Language: dtd +" 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= +setlocal comments=s: + +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 diff --git a/runtime/ftplugin/dtrace.vim b/runtime/ftplugin/dtrace.vim new file mode 100644 index 0000000000..9288097f7f --- /dev/null +++ b/runtime/ftplugin/dtrace.vim @@ -0,0 +1,40 @@ +" Language: D script as described in "Solaris Dynamic Tracing Guide", +" http://docs.sun.com/app/docs/doc/817-6223 +" Last Change: 2008/03/20 +" Version: 1.2 +" Maintainer: Nicolas Weber + +" 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< cms< isk<" + +" 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:*/ + +" dtrace uses /* */ comments. Set this explicitly, just in case the user +" changed this (/*%s*/ is the default) +setlocal commentstring=/*%s*/ + +setlocal iskeyword+=@,$ + +" When the matchit plugin is loaded, this makes the % command skip parens and +" braces in comments. +let b:match_words = &matchpairs +let b:match_skip = 's:comment\|string\|character' + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/ftplugin/elinks.vim b/runtime/ftplugin/elinks.vim new file mode 100644 index 0000000000..7d9257566b --- /dev/null +++ b/runtime/ftplugin/elinks.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: elinks(1) configuration file +" 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 diff --git a/runtime/ftplugin/erlang.vim b/runtime/ftplugin/erlang.vim new file mode 100644 index 0000000000..2bbc345b43 --- /dev/null +++ b/runtime/ftplugin/erlang.vim @@ -0,0 +1,87 @@ +" Vim ftplugin file +" Language: Erlang +" Author: Oscar Hellström +" Contributors: Ricardo Catalinas Jiménez +" Eduardo Lopez (http://github.com/tapichu) +" License: Vim license +" Version: 2012/01/25 + +if exists('b:did_ftplugin') + finish +else + let b:did_ftplugin = 1 +endif + +if exists('s:did_function_definitions') + call s:SetErlangOptions() + finish +else + let s:did_function_definitions = 1 +endif + +let s:cpo_save = &cpo +set cpo&vim + +if !exists('g:erlang_keywordprg') + let g:erlang_keywordprg = 'erl -man' +endif + +if !exists('g:erlang_folding') + let g:erlang_folding = 0 +endif + +let s:erlang_fun_begin = '^\a\w*(.*$' +let s:erlang_fun_end = '^[^%]*\.\s*\(%.*\)\?$' + +function s:SetErlangOptions() + if g:erlang_folding + setlocal foldmethod=expr + setlocal foldexpr=GetErlangFold(v:lnum) + setlocal foldtext=ErlangFoldText() + endif + + setlocal comments=:%%%,:%%,:% + setlocal commentstring=%%s + + setlocal formatoptions+=ro + let &l:keywordprg = g:erlang_keywordprg +endfunction + +function GetErlangFold(lnum) + let lnum = a:lnum + let line = getline(lnum) + + if line =~ s:erlang_fun_end + return '<1' + endif + + if line =~ s:erlang_fun_begin && foldlevel(lnum - 1) == 1 + return '1' + endif + + if line =~ s:erlang_fun_begin + return '>1' + endif + + return '=' +endfunction + +function ErlangFoldText() + let line = getline(v:foldstart) + let foldlen = v:foldend - v:foldstart + 1 + let lines = ' ' . foldlen . ' lines: ' . substitute(line, "[\ \t]*", '', '') + if foldlen < 10 + let lines = ' ' . lines + endif + let retval = '+' . v:folddashes . lines + + return retval +endfunction + +call s:SetErlangOptions() + +let b:undo_ftplugin = "setlocal foldmethod< foldexpr< foldtext<" + \ . " comments< commentstring< formatoptions<" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/ftplugin/eruby.vim b/runtime/ftplugin/eruby.vim new file mode 100644 index 0000000000..9bb8e86ff3 --- /dev/null +++ b/runtime/ftplugin/eruby.vim @@ -0,0 +1,102 @@ +" Vim filetype plugin +" Language: eRuby +" Maintainer: Tim Pope +" URL: https://github.com/vim-ruby/vim-ruby +" Release Coordinator: Doug Kearns + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +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 = "All Files (*.*)\t*.*\n" +let s:match_words = "" + +if !exists("g:eruby_default_subtype") + let g:eruby_default_subtype = "html" +endif + +if &filetype =~ '^eruby\.' + let b:eruby_subtype = matchstr(&filetype,'^eruby\.\zs\w\+') +elseif !exists("b:eruby_subtype") + let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$") + let b:eruby_subtype = matchstr(s:lines,'eruby_subtype=\zs\w\+') + if b:eruby_subtype == '' + let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+$') + endif + if b:eruby_subtype == 'rhtml' + let b:eruby_subtype = 'html' + elseif b:eruby_subtype == 'rb' + let b:eruby_subtype = 'ruby' + elseif b:eruby_subtype == 'yml' + let b:eruby_subtype = 'yaml' + elseif b:eruby_subtype == 'js' + let b:eruby_subtype = 'javascript' + elseif b:eruby_subtype == 'txt' + " Conventional; not a real file type + let b:eruby_subtype = 'text' + elseif b:eruby_subtype == '' + let b:eruby_subtype = g:eruby_default_subtype + endif +endif + +if exists("b:eruby_subtype") && b:eruby_subtype != '' + exe "runtime! ftplugin/".b:eruby_subtype.".vim ftplugin/".b:eruby_subtype."_*.vim ftplugin/".b:eruby_subtype."/*.vim" +else + runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim +endif +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/ruby.vim ftplugin/ruby_*.vim ftplugin/ruby/*.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 = substitute(b:browsefilter,'\cAll Files (\*\.\*)\t\*\.\*\n','','') . s:browsefilter +endif +if exists("b:match_words") + let s:match_words = b:match_words . ',' . s:match_words +endif + +" Change the browse dialog on Win32 to show mainly eRuby-related files +if has("gui_win32") + let b:browsefilter="eRuby Files (*.erb, *.rhtml)\t*.erb;*.rhtml\n" . s:browsefilter +endif + +" Load the combined list of match_words for matchit.vim +if exists("loaded_matchit") + let b:match_words = s:match_words +endif + +" TODO: comments= +setlocal commentstring=<%#%s%> + +let b:undo_ftplugin = "setl cms< " + \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: nowrap sw=2 sts=2 ts=8: diff --git a/runtime/ftplugin/eterm.vim b/runtime/ftplugin/eterm.vim new file mode 100644 index 0000000000..e072c638b1 --- /dev/null +++ b/runtime/ftplugin/eterm.vim @@ -0,0 +1,20 @@ +" Vim filetype plugin file +" Language: eterm(1) configuration file +" 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 diff --git a/runtime/ftplugin/falcon.vim b/runtime/ftplugin/falcon.vim new file mode 100644 index 0000000000..4fc135b4a1 --- /dev/null +++ b/runtime/ftplugin/falcon.vim @@ -0,0 +1,48 @@ +" Vim filetype plugin file +" Language: Falcon +" Author: Steven Oliver +" 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\)\>' . + \ ':' . + \ '\' . + \ ',{:},\[:\],(:)' +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 : diff --git a/runtime/ftplugin/fetchmail.vim b/runtime/ftplugin/fetchmail.vim new file mode 100644 index 0000000000..a0d4650c03 --- /dev/null +++ b/runtime/ftplugin/fetchmail.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: fetchmail(1) RC File +" 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 diff --git a/runtime/ftplugin/flexwiki.vim b/runtime/ftplugin/flexwiki.vim new file mode 100644 index 0000000000..7513e66142 --- /dev/null +++ b/runtime/ftplugin/flexwiki.vim @@ -0,0 +1,59 @@ +" Vim filetype plugin file +" Language: FlexWiki, http://www.flexwiki.com/ +" Maintainer: George V. Reilly +" Home: http://www.georgevreilly.com/vim/flexwiki/ +" Other Home: http://www.vim.org/scripts/script.php?script_id=1529 +" Author: George V. Reilly +" Filenames: *.wiki +" Last Change: Wed Apr 26 11:00 PM 2006 P +" Version: 0.3 + +if exists("b:did_ftplugin") + finish +endif + +let b:did_ftplugin = 1 " Don't load another plugin for this buffer + +" Reset the following options to undo this plugin. +let b:undo_ftplugin = "setl tw< wrap< lbr< et< ts< fenc< bomb< ff<" + +" Allow lines of unlimited length. Do NOT want automatic linebreaks, +" as a newline starts a new paragraph in FlexWiki. +setlocal textwidth=0 +" Wrap long lines, rather than using horizontal scrolling. +setlocal wrap +" Wrap at a character in 'breakat' rather than at last char on screen +setlocal linebreak +" Don't transform characters into spaces, as they are significant +" at the beginning of the line for numbered and bulleted lists. +setlocal noexpandtab +" 4-char tabstops, per flexwiki.el +setlocal tabstop=4 +" Save *.wiki files in UTF-8 +setlocal fileencoding=utf-8 +" Add the UTF-8 Byte Order Mark to the beginning of the file +setlocal bomb +" Save s as \n, not \r\n +setlocal fileformat=unix + +if exists("g:flexwiki_maps") + " Move up and down by display lines, to account for screen wrapping + " of very long lines + nmap gk + nmap k gk + vmap gk + vmap k gk + + nmap gj + nmap j gj + vmap gj + vmap j gj + + " for earlier versions - for when 'wrap' is set + imap gj + imap gk + if v:version >= 700 + imap gj + imap gk + endif +endif diff --git a/runtime/ftplugin/fortran.vim b/runtime/ftplugin/fortran.vim new file mode 100644 index 0000000000..7591edd821 --- /dev/null +++ b/runtime/ftplugin/fortran.vim @@ -0,0 +1,123 @@ +" Vim settings file +" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, 77, 66) +" Version: 0.49 +" Last Change: 2013 Oct. 01 +" Maintainer: Ajit J. Thakkar ; +" Usage: 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 +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 + else + " Modern Fortran 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 = '\%(\:' . s:notselect. '\:\,' . + \ s:notelse . '\:' . + \ '\:\,'. + \ 'do\s\+\(\d\+\):\%(^\s*\)\@<=\1\s,'. + \ s:notend . '\:\,'. + \ s:notelse . '\:\:\,'. + \ s:notend . '\,'. + \ s:notend . '\:\,'. + \ s:notend . '\:\,'. + \ s:notend . '\:\,'. + \ s:notend . '\:\,'. + \ s:notend . '\:\,'. + \ s:notend . '\:\,'. + \ s:notend . '\' . s:notprocedure . ':\,'. + \ s:notend . '\:\' +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 diff --git a/runtime/ftplugin/framescript.vim b/runtime/ftplugin/framescript.vim new file mode 100644 index 0000000000..805401a89b --- /dev/null +++ b/runtime/ftplugin/framescript.vim @@ -0,0 +1,30 @@ +" Vim ftplugin file +" Language: FrameScript +" Maintainer: Nikolai Weibull +" 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\%(\:\c\:\c\:\c\,' . + \ s:not_end . '\:\c\' . + \ s:not_end . '\:\c\' + unlet s:not_end +endif + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/ftplugin/fvwm.vim b/runtime/ftplugin/fvwm.vim new file mode 100644 index 0000000000..89e1a8317a --- /dev/null +++ b/runtime/ftplugin/fvwm.vim @@ -0,0 +1,14 @@ +" Created : Tue 09 May 2006 02:07:31 PM CDT +" Modified : Tue 09 May 2006 02:07:31 PM CDT +" Author : Gautam Iyer +" 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 diff --git a/runtime/ftplugin/git.vim b/runtime/ftplugin/git.vim new file mode 100644 index 0000000000..5fe5b2b0c3 --- /dev/null +++ b/runtime/ftplugin/git.vim @@ -0,0 +1,39 @@ +" Vim filetype plugin +" Language: generic git output +" Maintainer: Tim Pope +" Last Change: 2013 May 30 + +" Only do this when not done yet for this buffer +if (exists("b:did_ftplugin")) + finish +endif +let b:did_ftplugin = 1 + +if !exists('b:git_dir') + if expand('%:p') =~# '[\/]\.git[\/]modules[\/]' + " Stay out of the way + elseif expand('%:p') =~# '\.git\>' + let b:git_dir = matchstr(expand('%:p'),'.*\.git\>') + elseif $GIT_DIR != '' + let b:git_dir = $GIT_DIR + endif + if (has('win32') || has('win64')) && exists('b:git_dir') + let b:git_dir = substitute(b:git_dir,'\\','/','g') + endif +endif + +if exists('*shellescape') && exists('b:git_dir') && b:git_dir != '' + if b:git_dir =~# '/\.git$' " Not a bare repository + let &l:path = escape(fnamemodify(b:git_dir,':h'),'\, ').','.&l:path + endif + let &l:path = escape(b:git_dir,'\, ').','.&l:path + let &l:keywordprg = 'git --git-dir='.shellescape(b:git_dir).' show' +else + setlocal keywordprg=git\ show +endif +if has('gui_running') + let &l:keywordprg = substitute(&l:keywordprg,'^git\>','git --no-pager','') +endif + +setlocal includeexpr=substitute(v:fname,'^[^/]\\+/','','') +let b:undo_ftplugin = "setl keywordprg< path< includeexpr<" diff --git a/runtime/ftplugin/gitcommit.vim b/runtime/ftplugin/gitcommit.vim new file mode 100644 index 0000000000..e8619004bf --- /dev/null +++ b/runtime/ftplugin/gitcommit.vim @@ -0,0 +1,67 @@ +" Vim filetype plugin +" Language: git commit file +" Maintainer: Tim Pope +" Last Change: 2013 May 30 + +" Only do this when not done yet for this buffer +if (exists("b:did_ftplugin")) + finish +endif + +runtime! ftplugin/git.vim +let b:did_ftplugin = 1 + +setlocal nomodeline tabstop=8 formatoptions-=croq formatoptions+=tl + +let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions<' + +if &textwidth == 0 + " make sure that log messages play nice with git-log on standard terminals + setlocal textwidth=72 + let b:undo_ftplugin .= "|setl tw<" +endif + +if exists("g:no_gitcommit_commands") || v:version < 700 + finish +endif + +if !exists("b:git_dir") + let b:git_dir = expand("%:p:h") +endif + +command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(0,b:git_dir,) + +function! s:diffcomplete(A,L,P) + let args = "" + if a:P <= match(a:L." -- "," -- ")+3 + let args = args . "-p\n--stat\n--shortstat\n--summary\n--patch-with-stat\n--no-renames\n-B\n-M\n-C\n" + end + if exists("b:git_dir") && a:A !~ '^-' + let tree = fnamemodify(b:git_dir,':h') + if strpart(getcwd(),0,strlen(tree)) == tree + let args = args."\n".system("git diff --cached --name-only") + endif + endif + return args +endfunction + +function! s:gitdiffcached(bang,gitdir,...) + let tree = fnamemodify(a:gitdir,':h') + let name = tempname() + let git = "git" + if strpart(getcwd(),0,strlen(tree)) != tree + let git .= " --git-dir=".(exists("*shellescape") ? shellescape(a:gitdir) : '"'.a:gitdir.'"') + endif + if a:0 + let extra = join(map(copy(a:000),exists("*shellescape") ? 'shellescape(v:val)' : "'\"'.v:val.'\"'")) + else + let extra = "-p --stat=".&columns + endif + call system(git." diff --cached --no-color --no-ext-diff ".extra." > ".(exists("*shellescape") ? shellescape(name) : name)) + exe "pedit ".(exists("*fnameescape") ? fnameescape(name) : name) + wincmd P + let b:git_dir = a:gitdir + command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(0,b:git_dir,) + nnoremap q :q + setlocal buftype=nowrite nobuflisted noswapfile nomodifiable filetype=git +endfunction diff --git a/runtime/ftplugin/gitconfig.vim b/runtime/ftplugin/gitconfig.vim new file mode 100644 index 0000000000..833b8b14b2 --- /dev/null +++ b/runtime/ftplugin/gitconfig.vim @@ -0,0 +1,15 @@ +" Vim filetype plugin +" Language: git config file +" Maintainer: Tim Pope +" Last Change: 2009 Dec 24 + +" Only do this when not done yet for this buffer +if (exists("b:did_ftplugin")) + finish +endif +let b:did_ftplugin = 1 + +setlocal formatoptions-=t formatoptions+=croql +setlocal comments=:#,:; commentstring=;\ %s + +let b:undo_ftplugin = "setl fo< com< cms<" diff --git a/runtime/ftplugin/gitrebase.vim b/runtime/ftplugin/gitrebase.vim new file mode 100644 index 0000000000..0200ba1acc --- /dev/null +++ b/runtime/ftplugin/gitrebase.vim @@ -0,0 +1,43 @@ +" Vim filetype plugin +" Language: git rebase --interactive +" Maintainer: Tim Pope +" Last Change: 2010 May 21 + +" Only do this when not done yet for this buffer +if (exists("b:did_ftplugin")) + finish +endif + +runtime! ftplugin/git.vim +let b:did_ftplugin = 1 + +setlocal comments=:# commentstring=#\ %s formatoptions-=t +if !exists("b:undo_ftplugin") + let b:undo_ftplugin = "" +endif +let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo<" + +function! s:choose(word) + s/^\(\w\+\>\)\=\(\s*\)\ze\x\{4,40\}\>/\=(strlen(submatch(1)) == 1 ? a:word[0] : a:word) . substitute(submatch(2),'^$',' ','')/e +endfunction + +function! s:cycle() + call s:choose(get({'s':'edit','p':'squash','e':'reword','r':'fixup'},getline('.')[0],'pick')) +endfunction + +command! -buffer -bar Pick :call s:choose('pick') +command! -buffer -bar Squash :call s:choose('squash') +command! -buffer -bar Edit :call s:choose('edit') +command! -buffer -bar Reword :call s:choose('reword') +command! -buffer -bar Fixup :call s:choose('fixup') +command! -buffer -bar Cycle :call s:cycle() +" The above are more useful when they are mapped; for example: +"nnoremap S :Cycle + +if exists("g:no_plugin_maps") || exists("g:no_gitrebase_maps") + finish +endif + +nnoremap K col('.') < 7 && expand('cword>') =~ '\X' && getline('.') =~ '^\w\+\s\+\x\+\>' ? 'wK' : 'K' + +let b:undo_ftplugin = b:undo_ftplugin . "|nunmap K" diff --git a/runtime/ftplugin/gitsendemail.vim b/runtime/ftplugin/gitsendemail.vim new file mode 100644 index 0000000000..8fb436e181 --- /dev/null +++ b/runtime/ftplugin/gitsendemail.vim @@ -0,0 +1,6 @@ +" Vim filetype plugin +" Language: git send-email message +" Maintainer: Tim Pope +" Last Change: 2009 Dec 24 + +runtime! ftplugin/mail.vim diff --git a/runtime/ftplugin/gpg.vim b/runtime/ftplugin/gpg.vim new file mode 100644 index 0000000000..5caa1f69c1 --- /dev/null +++ b/runtime/ftplugin/gpg.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: gpg(1) configuration file +" 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 diff --git a/runtime/ftplugin/gprof.vim b/runtime/ftplugin/gprof.vim new file mode 100644 index 0000000000..750751c372 --- /dev/null +++ b/runtime/ftplugin/gprof.vim @@ -0,0 +1,32 @@ +" Language: gprof +" Maintainer: Dominique Pelle +" Last Change: 2013 Jun 09 + +" When cursor is on one line of the gprof call graph, +" calling this function jumps to this function in the call graph. +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin=1 + +fun! GprofJumpToFunctionIndex() + let l:line = getline('.') + if l:line =~ '[\d\+\]$' + " We're in a line in the call graph. + norm! $y% + call search('^' . escape(@", '[]'), 'sw') + norm! zz + elseif l:line =~ '^\(\s\+[0-9\.]\+\)\{3}\s\+' + " We're in line in the flat profile. + norm! 55|eby$ + call search('^\[\d\+\].*\d\s\+' . escape(@", '[]*.') . '\>', 'sW') + norm! zz + endif +endfun + +" Pressing on a line in the gprof flat profile or in +" the call graph, jumps to the corresponding function inside +" the flat profile. +map :call GprofJumpToFunctionIndex() + +" vim:sw=2 fdm=indent diff --git a/runtime/ftplugin/group.vim b/runtime/ftplugin/group.vim new file mode 100644 index 0000000000..eef3cd68d9 --- /dev/null +++ b/runtime/ftplugin/group.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: group(5) user group file +" 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= formatoptions-=tcroq formatoptions+=l + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/ftplugin/grub.vim b/runtime/ftplugin/grub.vim new file mode 100644 index 0000000000..21c4e3609d --- /dev/null +++ b/runtime/ftplugin/grub.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: grub(8) configuration file +" 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 diff --git a/runtime/ftplugin/haml.vim b/runtime/ftplugin/haml.vim new file mode 100644 index 0000000000..654f1fca90 --- /dev/null +++ b/runtime/ftplugin/haml.vim @@ -0,0 +1,69 @@ +" Vim filetype plugin +" Language: Haml +" Maintainer: Tim Pope +" Last Change: 2013 Jun 01 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +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 = "All Files (*.*)\t*.*\n" +let s:match_words = "" + +runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim +unlet! b:did_ftplugin +set matchpairs-=<:> + +" 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/ruby.vim ftplugin/ruby_*.vim ftplugin/ruby/*.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 = substitute(b:browsefilter,'\cAll Files (\*\.\*)\t\*\.\*\n','','') . s:browsefilter +endif +if exists("b:match_words") + let s:match_words = b:match_words . ',' . s:match_words +endif + +" Change the browse dialog on Win32 to show mainly Haml-related files +if has("gui_win32") + let b:browsefilter="Haml Files (*.haml)\t*.haml\nSass Files (*.sass)\t*.sass\n" . s:browsefilter +endif + +" Load the combined list of match_words for matchit.vim +if exists("loaded_matchit") + let b:match_words = s:match_words +endif + +setlocal comments= commentstring=-#\ %s + +let b:undo_ftplugin = "setl cms< com< " + \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim:set sw=2: diff --git a/runtime/ftplugin/hamster.vim b/runtime/ftplugin/hamster.vim new file mode 100644 index 0000000000..c23adc4232 --- /dev/null +++ b/runtime/ftplugin/hamster.vim @@ -0,0 +1,62 @@ +" Vim filetype plugin +" Language: Hamster Script +" Version: 2.0.6.0 +" Maintainer: David Fishburn +" Last Change: Wed Nov 08 2006 12:03:09 PM + +" 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-=C + +let b:undo_ftplugin = "setl fo< com< tw< commentstring<" + \ . "| unlet! b:match_ignorecase b:match_words b:match_skip" + +" 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 + +" Use the # sign for comments +setlocal comments=:# + +" Format comments to be up to 78 characters long +if &tw == 0 + setlocal tw=78 +endif + +" Comments start with a double quote +setlocal commentstring=#%s + +" Move around functions. +noremap [[ :call search('^\s*sub\>', "bW") +noremap ]] :call search('^\s*sub\>', "W") +noremap [] :call search('^\s*endsub\>', "bW") +noremap ][ :call search('^\s*endsub\>', "W") + +" Move around comments +noremap ]# :call search('^\s*#\@!', "W") +noremap [# :call search('^\s*#\@!', "bW") + +" Let the matchit plugin know what items can be matched. +if exists("loaded_matchit") + let b:match_ignorecase = 0 + let b:match_words = + \ '\:\:\,' . + \ '\:\:\:\,' . + \ '\:\:\' + + " Ignore ":syntax region" commands, the 'end' argument clobbers if-endif + " let b:match_skip = 'getline(".") =~ "^\\s*sy\\%[ntax]\\s\\+region" || + " \ synIDattr(synID(line("."),col("."),1),"name") =~? "comment\\|string"' +endif + +setlocal ignorecase +let &cpo = s:cpo_save +unlet s:cpo_save +setlocal cpo+=M " makes \%( match \) diff --git a/runtime/ftplugin/haskell.vim b/runtime/ftplugin/haskell.vim new file mode 100644 index 0000000000..144f9f6860 --- /dev/null +++ b/runtime/ftplugin/haskell.vim @@ -0,0 +1,20 @@ +" Vim filetype plugin file +" Language: Haskell +" 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=s1fl:{-,mb:-,ex:-},:-- commentstring=--\ %s +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/ftplugin/help.vim b/runtime/ftplugin/help.vim new file mode 100644 index 0000000000..a0a0f292eb --- /dev/null +++ b/runtime/ftplugin/help.vim @@ -0,0 +1,22 @@ +" Vim filetype plugin file +" Language: Vim help file +" 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 fo< tw< cole< cocu<" + +setlocal formatoptions+=tcroql textwidth=78 +if has("conceal") + setlocal cole=2 cocu=nc +endif + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/ftplugin/hostconf.vim b/runtime/ftplugin/hostconf.vim new file mode 100644 index 0000000000..557fd82c53 --- /dev/null +++ b/runtime/ftplugin/hostconf.vim @@ -0,0 +1,18 @@ +" Vim filetype plugin file +" 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 diff --git a/runtime/ftplugin/hostsaccess.vim b/runtime/ftplugin/hostsaccess.vim new file mode 100644 index 0000000000..a2f55acb8a --- /dev/null +++ b/runtime/ftplugin/hostsaccess.vim @@ -0,0 +1,19 @@ +" Vim filetype plugin file +" Language: hosts_access(5) control file +" 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 diff --git a/runtime/ftplugin/html.vim b/runtime/ftplugin/html.vim new file mode 100644 index 0000000000..7579080ea5 --- /dev/null +++ b/runtime/ftplugin/html.vim @@ -0,0 +1,51 @@ +" Vim filetype plugin file +" Language: html +" 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 matchpairs+=<:> +setlocal commentstring= +setlocal comments=s: + +if exists("g:ft_html_autocomment") && (g:ft_html_autocomment == 1) + setlocal formatoptions-=t formatoptions+=croql +endif + +if exists('&omnifunc') + setlocal omnifunc=htmlcomplete#CompleteTags + call htmlcomplete#DetectOmniFlavor() +endif + +" HTML: thanks to Johannes Zellner and Benji Fisher. +if exists("loaded_matchit") + let b:match_ignorecase = 1 + let b:match_words = '<:>,' . + \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' . + \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' . + \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>' +endif + +" Change the :browse e filter to primarily show HTML-related files. +if has("gui_win32") + let b:browsefilter="HTML Files (*.html,*.htm)\t*.htm;*.html\n" . + \ "JavaScript Files (*.js)\t*.js\n" . + \ "Cascading StyleSheets (*.css)\t*.css\n" . + \ "All Files (*.*)\t*.*\n" +endif + +" Undo the stuff we changed. +let b:undo_ftplugin = "setlocal commentstring< matchpairs< omnifunc< comments< formatoptions<" . + \ " | unlet! b:match_ignorecase b:match_skip b:match_words b:browsefilter" + +" Restore the saved compatibility options. +let &cpo = s:save_cpo +unlet s:save_cpo diff --git a/runtime/ftplugin/htmldjango.vim b/runtime/ftplugin/htmldjango.vim new file mode 100644 index 0000000000..40e9429f36 --- /dev/null +++ b/runtime/ftplugin/htmldjango.vim @@ -0,0 +1,13 @@ +" Vim filetype plugin file +" Language: Django HTML template +" Maintainer: Dave Hodder +" Last Change: 2007 Jan 25 + +" Only use this filetype plugin when no other was loaded. +if exists("b:did_ftplugin") + finish +endif + +" Use HTML and Django template ftplugins. +runtime! ftplugin/html.vim +runtime! ftplugin/django.vim diff --git a/runtime/ftplugin/indent.vim b/runtime/ftplugin/indent.vim new file mode 100644 index 0000000000..0e195b0615 --- /dev/null +++ b/runtime/ftplugin/indent.vim @@ -0,0 +1,20 @@ +" Vim filetype plugin file +" Language: indent(1) configuration file +" 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=s1:/*,mb:*,ex:*/ commentstring& +setlocal formatoptions-=t formatoptions+=croql + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/ftplugin/initex.vim b/runtime/ftplugin/initex.vim new file mode 100644 index 0000000000..0ee3e8d899 --- /dev/null +++ b/runtime/ftplugin/initex.vim @@ -0,0 +1,39 @@ +" filetype plugin for TeX and variants +" Language: TeX (ft=initex) +" Maintainer: Benji Fisher, Ph.D. +" Version: 1.0 +" Last Change: Wed 19 Apr 2006 + +" 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 + +" Avoid problems if running in 'compatible' mode. +let s:save_cpo = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< define< include< sua<" + +" Set 'comments' to format dashed lists in comments +setlocal com=sO:%\ -,mO:%\ \ ,eO:%%,:% + +" Set 'commentstring' to recognize the % comment character: +" (Thanks to Ajit Thakkar.) +setlocal cms=%%s + +" Allow "[d" to be used to find a macro definition: +let &l:define='\\\([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\=' + \ . 'def\|\\font\|\\\(future\)\=let' + +" Tell Vim to recognize \input bar : +let &l:include = '\\input' +setlocal suffixesadd=.tex + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim:sts=2:sw=2: diff --git a/runtime/ftplugin/ishd.vim b/runtime/ftplugin/ishd.vim new file mode 100644 index 0000000000..33ef1510b5 --- /dev/null +++ b/runtime/ftplugin/ishd.vim @@ -0,0 +1,33 @@ +" Vim filetype plugin file +" Language: InstallShield (ft=ishd) +" Maintainer: Johannes Zellner +" Last Change: Sat, 24 May 2003 11:55:36 CEST + +if exists("b:did_ftplugin") | finish | endif +let b:did_ftplugin = 1 + +setlocal foldmethod=syntax + +" Using line continuation here. +let s:cpo_save = &cpo +set cpo-=C + +" matchit support +if exists("loaded_matchit") + let b:match_ignorecase=0 + let b:match_words= + \ '\%(^\s*\)\@<=\\s\+[^()]\+\s*(:\%(^\s*\)\@<=\\s*$:\%(^\s*\)\@<=\:\%(^\s*\)\@<=\\s*;\s*$,' . + \ '\%(^\s*\)\@<=\\s*$:\%(^\s*\)\@<=\\s\+.\{-}\s*;\s*$,' . + \ '\%(^\s*\)\@<=\\s*(.\{-}):\%(^\s*\)\@<=\<\%(case\|default\)\>:\%(^\s*\)\@<=\\s*;\s*$,' . + \ '\%(^\s*\)\@<=\\s*(.\{-}):\%(^\s*\)\@<=\\s*;\s*$,' . + \ '\%(^\s*\)\@<=\.\{-}\<\%(to\|downto\)\>:\%(^\s*\)\@<=\\s*;\s*$,' . + \ '\%(^\s*\)\@<=\\s*(.\{-})\s*then:\%(^\s*\)\@<=\\s*([^)]*)\s*then:\%(^\s*\)\@<=\:\%(^\s*\)\@<=\\s*;\s*$' +endif + +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "InstallShield Files (*.rul)\t*.rul\n" . + \ "All Files (*.*)\t*.*\n" +endif + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/ftplugin/j.vim b/runtime/ftplugin/j.vim new file mode 100644 index 0000000000..bcd606ffa0 --- /dev/null +++ b/runtime/ftplugin/j.vim @@ -0,0 +1,75 @@ +" Vim filetype plugin +" Language: J +" Maintainer: David Bürgin <676c7473@gmail.com> +" URL: https://github.com/glts/vim-j +" Last Change: 2014-04-05 + +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 shiftwidth=2 softtabstop=2 expandtab +setlocal matchpairs=(:) + +let b:undo_ftplugin = 'setlocal matchpairs< expandtab< softtabstop< shiftwidth< 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 = '.\{-}\<\%([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 flags = a:backwards ? 'bsW' : 'sW' + if a:end + call search('^' . s:sectionend . (a:backwards ? '\n\_.\{-}\%#' : '$'), flags) + else + call search('^' . s:sectionstart . (a:backwards ? '\n\_.\{-}\%#' : '$'), flags) + endif +endfunction + +noremap