aboutsummaryrefslogtreecommitdiff
path: root/runtime/ftplugin
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ftplugin')
-rw-r--r--runtime/ftplugin/a2ps.vim6
-rw-r--r--runtime/ftplugin/alsaconf.vim6
-rw-r--r--runtime/ftplugin/arch.vim6
-rw-r--r--runtime/ftplugin/automake.vim6
-rw-r--r--runtime/ftplugin/awk.vim18
-rw-r--r--runtime/ftplugin/bdf.vim6
-rw-r--r--runtime/ftplugin/c.vim10
-rw-r--r--runtime/ftplugin/calendar.vim6
-rw-r--r--runtime/ftplugin/cdrdaoconf.vim4
-rw-r--r--runtime/ftplugin/chicken.vim54
-rw-r--r--runtime/ftplugin/clojure.vim20
-rw-r--r--runtime/ftplugin/cmake.vim34
-rw-r--r--runtime/ftplugin/conf.vim6
-rw-r--r--runtime/ftplugin/context.vim79
-rw-r--r--runtime/ftplugin/crm.vim6
-rw-r--r--runtime/ftplugin/css.vim6
-rw-r--r--runtime/ftplugin/cucumber.vim28
-rw-r--r--runtime/ftplugin/cvsrc.vim6
-rw-r--r--runtime/ftplugin/debchangelog.vim132
-rw-r--r--runtime/ftplugin/debcontrol.vim22
-rw-r--r--runtime/ftplugin/denyhosts.vim4
-rw-r--r--runtime/ftplugin/dictconf.vim6
-rw-r--r--runtime/ftplugin/dictdconf.vim6
-rw-r--r--runtime/ftplugin/dircolors.vim6
-rw-r--r--runtime/ftplugin/dosini.vim6
-rw-r--r--runtime/ftplugin/elinks.vim6
-rw-r--r--runtime/ftplugin/eruby.vim2
-rw-r--r--runtime/ftplugin/eterm.vim6
-rw-r--r--runtime/ftplugin/fetchmail.vim6
-rw-r--r--runtime/ftplugin/framescript.vim6
-rw-r--r--runtime/ftplugin/gdb.vim12
-rw-r--r--runtime/ftplugin/git.vim4
-rw-r--r--runtime/ftplugin/gitcommit.vim17
-rw-r--r--runtime/ftplugin/gitrebase.vim5
-rw-r--r--runtime/ftplugin/gpg.vim6
-rw-r--r--runtime/ftplugin/groovy.vim19
-rw-r--r--runtime/ftplugin/group.vim6
-rw-r--r--runtime/ftplugin/grub.vim6
-rw-r--r--runtime/ftplugin/haml.vim2
-rw-r--r--runtime/ftplugin/hamster.vim6
-rw-r--r--runtime/ftplugin/haskell.vim8
-rw-r--r--runtime/ftplugin/help.vim83
-rw-r--r--runtime/ftplugin/hostconf.vim4
-rw-r--r--runtime/ftplugin/hostsaccess.vim6
-rw-r--r--runtime/ftplugin/indent.vim6
-rw-r--r--runtime/ftplugin/ld.vim6
-rw-r--r--runtime/ftplugin/lftp.vim6
-rw-r--r--runtime/ftplugin/libao.vim6
-rw-r--r--runtime/ftplugin/limits.vim6
-rw-r--r--runtime/ftplugin/loginaccess.vim6
-rw-r--r--runtime/ftplugin/logindefs.vim6
-rw-r--r--runtime/ftplugin/logtalk.dict362
-rw-r--r--runtime/ftplugin/logtalk.vim5
-rw-r--r--runtime/ftplugin/m4.vim6
-rw-r--r--runtime/ftplugin/mailaliases.vim4
-rw-r--r--runtime/ftplugin/mailcap.vim6
-rw-r--r--runtime/ftplugin/man.vim71
-rw-r--r--runtime/ftplugin/manconf.vim6
-rw-r--r--runtime/ftplugin/markdown.vim32
-rw-r--r--runtime/ftplugin/mf.vim61
-rw-r--r--runtime/ftplugin/modconf.vim6
-rw-r--r--runtime/ftplugin/mp.vim64
-rw-r--r--runtime/ftplugin/mplayerconf.vim6
-rw-r--r--runtime/ftplugin/muttrc.vim6
-rw-r--r--runtime/ftplugin/nanorc.vim6
-rw-r--r--runtime/ftplugin/neomuttrc.vim23
-rw-r--r--runtime/ftplugin/netrc.vim6
-rw-r--r--runtime/ftplugin/nsis.vim33
-rw-r--r--runtime/ftplugin/pamconf.vim6
-rw-r--r--runtime/ftplugin/passwd.vim6
-rw-r--r--runtime/ftplugin/perl.vim13
-rw-r--r--runtime/ftplugin/pinfo.vim6
-rw-r--r--runtime/ftplugin/procmail.vim6
-rw-r--r--runtime/ftplugin/prolog.vim6
-rw-r--r--runtime/ftplugin/protocols.vim6
-rw-r--r--runtime/ftplugin/python.vim103
-rw-r--r--runtime/ftplugin/qf.vim23
-rw-r--r--runtime/ftplugin/quake.vim6
-rw-r--r--runtime/ftplugin/racc.vim6
-rw-r--r--runtime/ftplugin/readline.vim6
-rw-r--r--runtime/ftplugin/rmd.vim29
-rw-r--r--runtime/ftplugin/rnc.vim6
-rw-r--r--runtime/ftplugin/rrst.vim20
-rw-r--r--runtime/ftplugin/rst.vim32
-rw-r--r--runtime/ftplugin/ruby.vim153
-rw-r--r--runtime/ftplugin/rust.vim197
-rw-r--r--runtime/ftplugin/sass.vim5
-rw-r--r--runtime/ftplugin/sbt.vim15
-rw-r--r--runtime/ftplugin/scala.vim35
-rw-r--r--runtime/ftplugin/scheme.vim80
-rw-r--r--runtime/ftplugin/screen.vim6
-rw-r--r--runtime/ftplugin/scss.vim3
-rw-r--r--runtime/ftplugin/sensors.vim6
-rw-r--r--runtime/ftplugin/services.vim6
-rw-r--r--runtime/ftplugin/setserial.vim6
-rw-r--r--runtime/ftplugin/sieve.vim6
-rw-r--r--runtime/ftplugin/slpconf.vim6
-rw-r--r--runtime/ftplugin/slpreg.vim6
-rw-r--r--runtime/ftplugin/slpspi.vim6
-rw-r--r--runtime/ftplugin/spec.vim18
-rw-r--r--runtime/ftplugin/sql.vim74
-rw-r--r--runtime/ftplugin/sshconfig.vim6
-rw-r--r--runtime/ftplugin/sudoers.vim6
-rw-r--r--runtime/ftplugin/sysctl.vim6
-rw-r--r--runtime/ftplugin/terminfo.vim6
-rw-r--r--runtime/ftplugin/tmux.vim12
-rw-r--r--runtime/ftplugin/treetop.vim6
-rw-r--r--runtime/ftplugin/tutor.vim20
-rw-r--r--runtime/ftplugin/udevconf.vim6
-rw-r--r--runtime/ftplugin/udevperm.vim6
-rw-r--r--runtime/ftplugin/udevrules.vim6
-rw-r--r--runtime/ftplugin/updatedb.vim6
-rw-r--r--runtime/ftplugin/verilog.vim21
-rw-r--r--runtime/ftplugin/vim.vim69
-rw-r--r--runtime/ftplugin/wast.vim17
-rw-r--r--runtime/ftplugin/xdefaults.vim6
-rw-r--r--runtime/ftplugin/xf86conf.vim6
-rw-r--r--runtime/ftplugin/xinetd.vim6
-rw-r--r--runtime/ftplugin/xml.vim33
-rw-r--r--runtime/ftplugin/xmodmap.vim6
-rw-r--r--runtime/ftplugin/yaml.vim6
-rw-r--r--runtime/ftplugin/zimbu.vim8
-rw-r--r--runtime/ftplugin/zsh.vim16
123 files changed, 1864 insertions, 768 deletions
diff --git a/runtime/ftplugin/a2ps.vim b/runtime/ftplugin/a2ps.vim
index 6653351949..0e24e3088f 100644
--- a/runtime/ftplugin/a2ps.vim
+++ b/runtime/ftplugin/a2ps.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: a2ps(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: a2ps(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/alsaconf.vim b/runtime/ftplugin/alsaconf.vim
index 5d763c8011..6d9d80a208 100644
--- a/runtime/ftplugin/alsaconf.vim
+++ b/runtime/ftplugin/alsaconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: alsaconf(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: alsaconf(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/arch.vim b/runtime/ftplugin/arch.vim
index 71d831e112..1c697b8ca1 100644
--- a/runtime/ftplugin/arch.vim
+++ b/runtime/ftplugin/arch.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: GNU Arch inventory file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: GNU Arch inventory file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/automake.vim b/runtime/ftplugin/automake.vim
index 20b06af362..9f981a7a83 100644
--- a/runtime/ftplugin/automake.vim
+++ b/runtime/ftplugin/automake.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Automake
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Automake
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/awk.vim b/runtime/ftplugin/awk.vim
new file mode 100644
index 0000000000..dcefc85ec3
--- /dev/null
+++ b/runtime/ftplugin/awk.vim
@@ -0,0 +1,18 @@
+" Vim filetype plugin
+" Language: awk, nawk, gawk, mawk
+" Maintainer: Antonio Colombo <azc100@gmail.com>
+" Last Change: 2017 Feb 17
+
+" This plugin was prepared by Mark Sikora
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl commentstring<"
+
+setlocal commentstring=#\ %s
diff --git a/runtime/ftplugin/bdf.vim b/runtime/ftplugin/bdf.vim
index 120c5df968..85b7b4042a 100644
--- a/runtime/ftplugin/bdf.vim
+++ b/runtime/ftplugin/bdf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: BDF font definition
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: BDF font definition
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/c.vim b/runtime/ftplugin/c.vim
index 487ce7a165..6047f9f863 100644
--- a/runtime/ftplugin/c.vim
+++ b/runtime/ftplugin/c.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2012 Jul 10
+" Last Change: 2017 Sep 28
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -30,9 +30,9 @@ endif
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
" 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'
+" braces in comments properly.
+let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
+let b:match_skip = 's:comment\|string\|character\|special'
" Win32 can filter files in the browse dialog
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
@@ -55,5 +55,7 @@ if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
endif
endif
+let b:man_default_sects = '3,2'
+
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/calendar.vim b/runtime/ftplugin/calendar.vim
index 6f117e36e5..f454ba1dc8 100644
--- a/runtime/ftplugin/calendar.vim
+++ b/runtime/ftplugin/calendar.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: calendar(1) input file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: calendar(1) input file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/cdrdaoconf.vim b/runtime/ftplugin/cdrdaoconf.vim
index 557fd82c53..563bb8f5f1 100644
--- a/runtime/ftplugin/cdrdaoconf.vim
+++ b/runtime/ftplugin/cdrdaoconf.vim
@@ -1,6 +1,6 @@
" Vim filetype plugin file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-12-04
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-12-04
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/chicken.vim b/runtime/ftplugin/chicken.vim
new file mode 100644
index 0000000000..4dc1e57d0a
--- /dev/null
+++ b/runtime/ftplugin/chicken.vim
@@ -0,0 +1,54 @@
+" CHICKEN-specific Vim customizations
+" Last Change: 2018-03-05
+" Author: Evan Hanson <evhan@foldling.org>
+" Maintainer: Evan Hanson <evhan@foldling.org>
+" URL: https://foldling.org/vim/ftplugin/chicken.vim
+" Notes: These are supplemental settings, to be loaded after the core
+" Scheme ftplugin file (ftplugin/scheme.vim). Enable it by setting
+" b:is_chicken=1 and filetype=scheme.
+
+if !exists('b:did_scheme_ftplugin')
+ finish
+endif
+
+setl keywordprg=chicken-doc
+
+setl lispwords+=and-let*
+setl lispwords+=compiler-typecase
+setl lispwords+=condition-case
+setl lispwords+=define-compiler-syntax
+setl lispwords+=define-constant
+setl lispwords+=define-external
+setl lispwords+=define-for-syntax
+setl lispwords+=define-foreign-type
+setl lispwords+=define-inline
+setl lispwords+=define-location
+setl lispwords+=define-record
+setl lispwords+=define-record-printer
+setl lispwords+=define-specialization
+setl lispwords+=fluid-let
+setl lispwords+=foreign-lambda*
+setl lispwords+=foreign-primitive
+setl lispwords+=foreign-safe-lambda*
+setl lispwords+=functor
+setl lispwords+=handle-exceptions
+setl lispwords+=let-compiler-syntax
+setl lispwords+=let-location
+setl lispwords+=let-optionals
+setl lispwords+=let-optionals*
+setl lispwords+=letrec-values
+setl lispwords+=match
+setl lispwords+=match-let
+setl lispwords+=match-let*
+setl lispwords+=match-letrec
+setl lispwords+=module
+setl lispwords+=receive
+setl lispwords+=set!-values
+setl lispwords+=test-group
+
+let b:undo_ftplugin = b:undo_ftplugin . ' keywordprg<'
+
+if exists('g:loaded_matchit') && !exists('b:match_words')
+ let b:match_words = '#>:<#'
+ let b:undo_ftplugin = b:undo_ftplugin . ' | unlet! b:match_words'
+endif
diff --git a/runtime/ftplugin/clojure.vim b/runtime/ftplugin/clojure.vim
index 10fcb9f205..217711f26e 100644
--- a/runtime/ftplugin/clojure.vim
+++ b/runtime/ftplugin/clojure.vim
@@ -1,11 +1,11 @@
" Vim filetype plugin file
-" Language: Clojure
-" Author: Meikel Brandmeyer <mb@kotka.de>
+" Language: Clojure
+" Author: Meikel Brandmeyer <mb@kotka.de>
"
-" Maintainer: Sung Pae <self@sungpae.com>
-" URL: https://github.com/guns/vim-clojure-static
-" License: Same as Vim
-" Last Change: 27 March 2014
+" Maintainer: Sung Pae <self@sungpae.com>
+" URL: https://github.com/guns/vim-clojure-static
+" License: Same as Vim
+" Last Change: 18 July 2016
if exists("b:did_ftplugin")
finish
@@ -43,7 +43,7 @@ setlocal commentstring=;\ %s
" 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
+" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj
setlocal lispwords=as->,binding,bound-fn,case,catch,cond->,cond->>,condp,def,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftest,deftest-,deftype,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,if-some,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,when-some,while,with-bindings,with-in-str,with-local-vars,with-open,with-precision,with-redefs,with-redefs-fn,with-test
" Provide insert mode completions for special forms and clojure.core. As
@@ -82,9 +82,9 @@ 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"
+ \ "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
diff --git a/runtime/ftplugin/cmake.vim b/runtime/ftplugin/cmake.vim
new file mode 100644
index 0000000000..94c007629b
--- /dev/null
+++ b/runtime/ftplugin/cmake.vim
@@ -0,0 +1,34 @@
+" Vim filetype plugin
+" Language: CMake
+" Maintainer: Keith Smiley <keithbsmiley@gmail.com>
+" Last Change: 2018 Aug 30
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" save 'cpo' for restoration at the end of this file
+let s:cpo_save = &cpo
+set cpo&vim
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl commentstring<"
+
+if exists('loaded_matchit')
+ let b:match_words = '\<if\>:\<elseif\>\|\<else\>:\<endif\>'
+ \ . ',\<foreach\>\|\<while\>:\<break\>:\<endforeach\>\|\<endwhile\>'
+ \ . ',\<macro\>:\<endmacro\>'
+ \ . ',\<function\>:\<endfunction\>'
+ let b:match_ignorecase = 1
+
+ let b:undo_ftplugin .= "| unlet b:match_words"
+endif
+
+setlocal commentstring=#\ %s
+
+" restore 'cpo' and clean up buffer variable
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/conf.vim b/runtime/ftplugin/conf.vim
index 1b110e475b..ff2add1fa3 100644
--- a/runtime/ftplugin/conf.vim
+++ b/runtime/ftplugin/conf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: generic configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: generic configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/context.vim b/runtime/ftplugin/context.vim
index 1c7d678375..10f1ae1648 100644
--- a/runtime/ftplugin/context.vim
+++ b/runtime/ftplugin/context.vim
@@ -1,7 +1,8 @@
" Vim filetype plugin file
-" Language: ConTeXt typesetting engine
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: ConTeXt typesetting engine
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Former Maintainers: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2016 Oct 30
if exists("b:did_ftplugin")
finish
@@ -11,16 +12,26 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
-let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo<"
+if !exists('current_compiler')
+ compiler context
+endif
+
+let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo< ofu<"
+ \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
-setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tcroql
+setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tjcroql2
+if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
+ setlocal omnifunc=contextcomplete#Complete
+ let g:omni_syntax_group_include_context = 'mf\w\+,mp\w\+'
+ let g:omni_syntax_group_exclude_context = 'mfTodoComment'
+endif
let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
\ . 'def\|\\font\|\\\%(future\)\=let'
\ . '\|\\new\%(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
\ . '\|fam\|insert\|if\)'
-let &l:include = '^\s*\%(input\|component\)'
+let &l:include = '^\s*\\\%(input\|component\|product\|project\|environment\)'
setlocal suffixesadd=.tex
@@ -31,5 +42,61 @@ if exists("loaded_matchit")
\ '\\start\(\a\+\):\\stop\1'
endif
+let s:context_regex = {
+ \ 'beginsection' : '\\\%(start\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
+ \ 'endsection' : '\\\%(stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
+ \ 'beginblock' : '\\\%(start\|setup\|define\)',
+ \ 'endblock' : '\\\%(stop\|setup\|define\)'
+ \ }
+
+function! s:move_around(count, what, flags, visual)
+ if a:visual
+ exe "normal! gv"
+ endif
+ call search(s:context_regex[a:what], a:flags.'s') " 's' sets previous context mark
+ call map(range(2, a:count), 'search(s:context_regex[a:what], a:flags)')
+endfunction
+
+" Move around macros.
+nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
+nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
+vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
+nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
+nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
+vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
+nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
+vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
+nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
+vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
+
+" Other useful mappings
+if get(g:, 'context_mappings', 1)
+ let s:tp_regex = '?^$\|^\s*\\\(item\|start\|stop\|blank\|\%(sub\)*section\|chapter\|\%(sub\)*subject\|title\|part\)'
+
+ fun! s:tp()
+ call cursor(search(s:tp_regex, 'bcW') + 1, 1)
+ normal! V
+ call cursor(search(s:tp_regex, 'W') - 1, 1)
+ endf
+
+ " Reflow paragraphs with commands like gqtp ("gq TeX paragraph")
+ onoremap <silent><buffer> tp :<c-u>call <sid>tp()<cr>
+ " Select TeX paragraph
+ vnoremap <silent><buffer> tp <esc>:<c-u>call <sid>tp()<cr>
+
+ " $...$ text object
+ onoremap <silent><buffer> i$ :<c-u>normal! T$vt$<cr>
+ onoremap <silent><buffer> a$ :<c-u>normal! F$vf$<cr>
+ vnoremap <buffer> i$ T$ot$
+ vnoremap <buffer> a$ F$of$
+endif
+
+" Commands for asynchronous typesetting
+command! -buffer -nargs=? -complete=file ConTeXt call context#typeset(<q-args>)
+command! -nargs=0 ConTeXtJobStatus call context#job_status()
+command! -nargs=0 ConTeXtStopJobs call context#stop_jobs()
+
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/crm.vim b/runtime/ftplugin/crm.vim
index e86e683068..06baee883a 100644
--- a/runtime/ftplugin/crm.vim
+++ b/runtime/ftplugin/crm.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: CRM114
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: CRM114
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/css.vim b/runtime/ftplugin/css.vim
index 43d1edfa5b..ea4424418c 100644
--- a/runtime/ftplugin/css.vim
+++ b/runtime/ftplugin/css.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: CSS
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: CSS
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/cucumber.vim b/runtime/ftplugin/cucumber.vim
index 2ec1a5976f..f4848d1c60 100644
--- a/runtime/ftplugin/cucumber.vim
+++ b/runtime/ftplugin/cucumber.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 Jun 01
+" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -19,27 +19,23 @@ setlocal omnifunc=CucumberComplete
let b:undo_ftplugin = "setl fo< com< cms< ofu<"
let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
+if !exists("b:cucumber_steps_glob")
+ let b:cucumber_steps_glob = b:cucumber_root.'/**/*.rb'
+endif
if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps")
- nnoremap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR>
- nnoremap <silent><buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
- nnoremap <silent><buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
- nnoremap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR>
- nnoremap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR>
- nnoremap <silent><buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<CR>
- nnoremap <silent><buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<CR>
- nnoremap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR>
- nnoremap <silent><buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
- nnoremap <silent><buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
+ cnoremap <SID>foldopen <Bar>if &foldopen =~# 'tag'<Bar>exe 'norm! zv'<Bar>endif
+ nnoremap <silent> <script> <buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<SID>foldopen<CR>
+ nnoremap <silent> <script> <buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<SID>foldopen<CR>
+ nnoremap <silent> <script> <buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<SID>foldopen<CR>
+ nnoremap <silent> <script> <buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<SID>foldopen<CR>
+ nnoremap <silent> <script> <buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
+ nnoremap <silent> <script> <buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
let b:undo_ftplugin .=
- \ "|sil! nunmap <buffer> <C-]>" .
\ "|sil! nunmap <buffer> [<C-D>" .
\ "|sil! nunmap <buffer> ]<C-D>" .
- \ "|sil! nunmap <buffer> <C-W>]" .
- \ "|sil! nunmap <buffer> <C-W><C-]>" .
\ "|sil! nunmap <buffer> <C-W>d" .
\ "|sil! nunmap <buffer> <C-W><C-D>" .
- \ "|sil! nunmap <buffer> <C-W>}" .
\ "|sil! nunmap <buffer> [d" .
\ "|sil! nunmap <buffer> ]d"
endif
@@ -59,7 +55,7 @@ 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")
+ for file in split(glob(b:cucumber_steps_glob),"\n")
let lines = readfile(file)
let num = 0
for line in lines
diff --git a/runtime/ftplugin/cvsrc.vim b/runtime/ftplugin/cvsrc.vim
index c410530588..34b148409e 100644
--- a/runtime/ftplugin/cvsrc.vim
+++ b/runtime/ftplugin/cvsrc.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: cvs(1) RC file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: cvs(1) RC file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/debchangelog.vim b/runtime/ftplugin/debchangelog.vim
index d2718db88e..a78f7811f1 100644
--- a/runtime/ftplugin/debchangelog.vim
+++ b/runtime/ftplugin/debchangelog.vim
@@ -1,22 +1,22 @@
" Vim filetype plugin file (GUI menu, folding and completion)
" Language: Debian Changelog
-" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+" Maintainer: Debian Vim Maintainers
" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
" Stefano Zacchiroli <zack@debian.org>
-" Last Change: 2014-01-31
+" Last Change: 2018-01-28
" License: Vim License
-" URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/debchangelog.vim
+" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debchangelog.vim
" Bug completion requires apt-listbugs installed for Debian packages or
" python-launchpadlib installed for Ubuntu packages
-if exists("b:did_ftplugin")
+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")
+if exists('g:debchangelog_fold_enable')
setlocal foldmethod=expr
setlocal foldexpr=DebGetChangelogFold(v:lnum)
setlocal foldtext=DebChangelogFoldText()
@@ -28,10 +28,10 @@ setlocal tw=78
setlocal comments=f:*
" Clean unloading
-let b:undo_ftplugin = "setlocal tw< comments< foldmethod< foldexpr< foldtext<"
+let b:undo_ftplugin = 'setlocal tw< comments< foldmethod< foldexpr< foldtext<'
" }}}1
-if exists("g:did_changelog_ftplugin")
+if exists('g:did_changelog_ftplugin')
finish
endif
@@ -44,41 +44,41 @@ let g:did_changelog_ftplugin = 1
" Returns full name, either from $DEBFULLNAME or debianfullname.
" TODO Is there a way to determine name from anywhere else?
function <SID>FullName()
- if exists("$DEBFULLNAME")
+ if exists('$DEBFULLNAME')
return $DEBFULLNAME
- elseif exists("g:debianfullname")
+ elseif exists('g:debianfullname')
return g:debianfullname
else
- return "Your Name"
+ return 'Your Name'
endif
endfunction
" Returns email address, from $DEBEMAIL, $EMAIL or debianemail.
function <SID>Email()
- if exists("$DEBEMAIL")
+ if exists('$DEBEMAIL')
return $DEBEMAIL
- elseif exists("$EMAIL")
+ elseif exists('$EMAIL')
return $EMAIL
- elseif exists("g:debianemail")
+ elseif exists('g:debianemail')
return g:debianemail
else
- return "your@email.address"
+ return 'your@email.address'
endif
endfunction
" Returns date in RFC822 format.
function <SID>Date()
let savelang = v:lc_time
- execute "language time C"
- let dateandtime = strftime("%a, %d %b %Y %X %z")
- execute "language time " . savelang
+ execute 'language time C'
+ let dateandtime = strftime('%a, %d %b %Y %X %z')
+ execute 'language time ' . savelang
return dateandtime
endfunction
function <SID>WarnIfNotUnfinalised()
- if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1
+ if match(getline('.'), ' -- [[:alpha:]][[:alnum:].]')!=-1
echohl WarningMsg
- echo "The entry has not been unfinalised before editing."
+ echo 'The entry has not been unfinalised before editing.'
echohl None
return 1
endif
@@ -86,10 +86,10 @@ function <SID>WarnIfNotUnfinalised()
endfunction
function <SID>Finalised()
- let savelinenum = line(".")
- normal 1G
- call search("^ -- ")
- if match(getline("."), " -- [[:alpha:]][[:alnum:].]")!=-1
+ let savelinenum = line('.')
+ 1
+ call search('^ -- ')
+ if match(getline('.'), ' -- [[:alpha:]][[:alnum:].]')!=-1
let returnvalue = 1
else
let returnvalue = 0
@@ -109,54 +109,54 @@ function NewVersion()
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 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")
+ if exists('g:debchangelog_fold_enable')
foldopen
endif
call AddEntry()
endfunction
function AddEntry()
- normal 1G
- call search("^ -- ")
- normal kk
- call append(".", " * ")
- normal jjj
+ 1
+ call search('^ -- ')
+ .-2
+ call append('.', ' * ')
+ .+3
let warn=<SID>WarnIfNotUnfinalised()
- normal kk
+ .-2
if warn
echohl MoreMsg
- call input("Hit ENTER")
+ call input('Hit ENTER')
echohl None
endif
startinsert!
endfunction
function CloseBug()
- normal 1G
- call search("^ -- ")
+ 1
+ call search('^ -- ')
let warn=<SID>WarnIfNotUnfinalised()
- normal kk
- call append(".", " * (closes: #" . input("Bug number to close: ") . ")")
- normal j^ll
+ .-2
+ call append('.', ' * (closes: #' . input('Bug number to close: ') . ')')
+ normal! j^ll
startinsert
endfunction
function Distribution(dist)
- call setline(1, substitute(getline(1), ') *\%(UNRELEASED\|\l\+\);', ") " . a:dist . ";", ""))
+ call setline(1, substitute(getline(1), ') *\%(UNRELEASED\|\l\+\);', ') ' . a:dist . ';', ''))
endfunction
function Urgency(urg)
- call setline(1, substitute(getline(1), "urgency=.*$", "urgency=" . a:urg, ""))
+ call setline(1, substitute(getline(1), 'urgency=.*$', 'urgency=' . a:urg, ''))
endfunction
function <SID>UnfinaliseMenu()
@@ -172,9 +172,9 @@ endfunction
function Unfinalise()
call <SID>UnfinaliseMenu()
- normal 1G
- call search("^ -- ")
- call setline(".", " -- ")
+ 1
+ call search('^ -- ')
+ call setline('.', ' -- ')
endfunction
function <SID>FinaliseMenu()
@@ -190,9 +190,9 @@ endfunction
function Finalise()
call <SID>FinaliseMenu()
- normal 1G
- call search("^ -- ")
- call setline(".", " -- " . <SID>FullName() . " <" . <SID>Email() . "> " . <SID>Date())
+ 1
+ call search('^ -- ')
+ call setline('.', ' -- ' . <SID>FullName() . ' <' . <SID>Email() . '> ' . <SID>Date())
endfunction
@@ -239,7 +239,7 @@ function! s:getAuthor(zonestart, zoneend)
let linepos = a:zoneend
while linepos >= a:zonestart
let line = getline(linepos)
- if line =~ '^ --'
+ if line =~# '^ --'
return substitute(line, '^ --\s*\([^<]\+\)\s*.*', '\1', '')
endif
let linepos -= 1
@@ -254,7 +254,7 @@ function! DebGetPkgSrcName(lineno)
let pkgname = ''
while lineidx > 0
let curline = getline(lineidx)
- if curline =~ '^\S'
+ if curline =~# '^\S'
let pkgname = matchlist(curline, '^\(\S\+\).*$')[1]
break
endif
@@ -264,7 +264,7 @@ function! DebGetPkgSrcName(lineno)
endfunction
function! DebChangelogFoldText()
- if v:folddashes == '-' " changelog entry fold
+ if v:folddashes ==# '-' " changelog entry fold
return foldtext() . ' -- ' . s:getAuthor(v:foldstart, v:foldend) . ' '
endif
return foldtext()
@@ -272,19 +272,19 @@ endfunction
function! DebGetChangelogFold(lnum)
let line = getline(a:lnum)
- if line =~ '^\w\+'
+ if line =~# '^\w\+'
return '>1' " beginning of a changelog entry
endif
- if line =~ '^\s\+\[.*\]'
+ if line =~# '^\s\+\[.*\]'
return '>2' " beginning of an author-specific chunk
endif
- if line =~ '^ --'
+ if line =~# '^ --'
return '1'
endif
return '='
endfunction
-if exists("g:debchangelog_fold_enable")
+if exists('g:debchangelog_fold_enable')
silent! foldopen! " unfold the entry the cursor is on (usually the first one)
endif
@@ -305,13 +305,13 @@ fun! DebCompleteBugs(findstart, base)
let try_colidx = col('.') - 1
let colidx = -1 " default to no-completion-possible
- while try_colidx > 0 && line[try_colidx - 1] =~ '\s\|\d\|#\|,\|:'
+ while try_colidx > 0 && line[try_colidx - 1] =~# '\s\|\d\|#\|,\|:'
let try_colidx = try_colidx - 1
- if line[try_colidx] == '#' && 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:'
+ elseif line[try_colidx] ==# ':'
+ if try_colidx > 1 && strpart(line, try_colidx - 2, 3) =~? '\clp:'
let g:debchangelog_complete_mode = 'lp'
endif
break
@@ -320,7 +320,7 @@ fun! DebCompleteBugs(findstart, base)
return colidx
else " return matches:
let bug_lines = []
- if g:debchangelog_complete_mode == 'lp'
+ if g:debchangelog_complete_mode ==? 'lp'
if ! has('python')
echoerr 'vim must be built with Python support to use LP bug completion'
return
@@ -363,7 +363,7 @@ EOF
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
+ if parts[1] !~ '^' . a:base
continue
endif
let completion = {}
diff --git a/runtime/ftplugin/debcontrol.vim b/runtime/ftplugin/debcontrol.vim
index 7871d9897f..3a6e39a682 100644
--- a/runtime/ftplugin/debcontrol.vim
+++ b/runtime/ftplugin/debcontrol.vim
@@ -1,18 +1,18 @@
" Vim filetype plugin file (GUI menu and folding)
" Language: Debian control files
-" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
+" Maintainer: Debian Vim Maintainers
" Former Maintainer: Pierre Habouzit <madcoder@debian.org>
-" Last Change: 2008-03-08
-" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/ftplugin/debcontrol.vim
+" Last Change: 2018-01-28
+" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debcontrol.vim
" Do these settings once per buffer
-if exists("b:did_ftplugin")
+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")
+if exists('g:debcontrol_fold_enable')
setlocal foldmethod=expr
setlocal foldexpr=DebControlFold(v:lnum)
setlocal foldtext=DebControlFoldText()
@@ -20,7 +20,7 @@ endif
setlocal textwidth=0
" Clean unloading
-let b:undo_ftplugin = "setlocal tw< foldmethod< foldexpr< foldtext<"
+let b:undo_ftplugin = 'setlocal tw< foldmethod< foldexpr< foldtext<'
" }}}1
@@ -32,7 +32,7 @@ function! s:getField(f, lnum)
while line !~ '^'.a:f.':'
let fwdsteps += 1
let line = getline(a:lnum + fwdsteps)
- if line == ''
+ if line ==# ''
return 'unknown'
endif
endwhile
@@ -40,9 +40,9 @@ function! s:getField(f, lnum)
endfunction
function! DebControlFoldText()
- if v:folddashes == '-' " debcontrol entry fold
+ if v:folddashes ==# '-' " debcontrol entry fold
let type = substitute(getline(v:foldstart), ':.*', '', '')
- if type == 'Source'
+ if type ==# 'Source'
let ftext = substitute(foldtext(), ' *Source: *', ' ', '')
return ftext . ' -- ' . s:getField('Maintainer', v:foldstart) . ' '
endif
@@ -56,11 +56,11 @@ endfunction
function! DebControlFold(l)
" This is for not merging blank lines around folds to them
- if getline(a:l) =~ '^Source:'
+ if getline(a:l) =~# '^Source:'
return '>1'
endif
- if getline(a:l) =~ '^Package:'
+ if getline(a:l) =~# '^Package:'
return '>1'
endif
diff --git a/runtime/ftplugin/denyhosts.vim b/runtime/ftplugin/denyhosts.vim
index 557fd82c53..563bb8f5f1 100644
--- a/runtime/ftplugin/denyhosts.vim
+++ b/runtime/ftplugin/denyhosts.vim
@@ -1,6 +1,6 @@
" Vim filetype plugin file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-12-04
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-12-04
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/dictconf.vim b/runtime/ftplugin/dictconf.vim
index 659046c176..71a2b67258 100644
--- a/runtime/ftplugin/dictconf.vim
+++ b/runtime/ftplugin/dictconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: dict(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: dict(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/dictdconf.vim b/runtime/ftplugin/dictdconf.vim
index ee738c50ce..0ee4c9d7e0 100644
--- a/runtime/ftplugin/dictdconf.vim
+++ b/runtime/ftplugin/dictdconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: dictd(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: dictd(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/dircolors.vim b/runtime/ftplugin/dircolors.vim
index 3b3d046e36..d07d1e34da 100644
--- a/runtime/ftplugin/dircolors.vim
+++ b/runtime/ftplugin/dircolors.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: dircolors(1) input file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: dircolors(1) input file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/dosini.vim b/runtime/ftplugin/dosini.vim
index 461403ca95..0d0f0f8983 100644
--- a/runtime/ftplugin/dosini.vim
+++ b/runtime/ftplugin/dosini.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Configuration File (ini file) for MSDOS/MS Windows
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Configuration File (ini file) for MSDOS/MS Windows
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/elinks.vim b/runtime/ftplugin/elinks.vim
index 7d9257566b..921f9c276b 100644
--- a/runtime/ftplugin/elinks.vim
+++ b/runtime/ftplugin/elinks.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: elinks(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: elinks(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/eruby.vim b/runtime/ftplugin/eruby.vim
index 9bb8e86ff3..32f3fb868f 100644
--- a/runtime/ftplugin/eruby.vim
+++ b/runtime/ftplugin/eruby.vim
@@ -27,7 +27,7 @@ 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\+$')
+ let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+\%(\ze+\w\+\)\=$')
endif
if b:eruby_subtype == 'rhtml'
let b:eruby_subtype = 'html'
diff --git a/runtime/ftplugin/eterm.vim b/runtime/ftplugin/eterm.vim
index e072c638b1..e2f88ef8c6 100644
--- a/runtime/ftplugin/eterm.vim
+++ b/runtime/ftplugin/eterm.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: eterm(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: eterm(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/fetchmail.vim b/runtime/ftplugin/fetchmail.vim
index a0d4650c03..33bb417be4 100644
--- a/runtime/ftplugin/fetchmail.vim
+++ b/runtime/ftplugin/fetchmail.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: fetchmail(1) RC File
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: fetchmail(1) RC File
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/framescript.vim b/runtime/ftplugin/framescript.vim
index 805401a89b..48fe0ace7c 100644
--- a/runtime/ftplugin/framescript.vim
+++ b/runtime/ftplugin/framescript.vim
@@ -1,7 +1,7 @@
" Vim ftplugin file
-" Language: FrameScript
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-19
+" Language: FrameScript
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-19
let s:cpo_save = &cpo
set cpo&vim
diff --git a/runtime/ftplugin/gdb.vim b/runtime/ftplugin/gdb.vim
new file mode 100644
index 0000000000..2473b13af0
--- /dev/null
+++ b/runtime/ftplugin/gdb.vim
@@ -0,0 +1,12 @@
+" Vim filetype plugin file
+" Language: gdb
+" Maintainer: Michaël Peeters <NOSPAMm.vim@noekeon.org>
+" Last Changed: 26 Oct 2017
+
+if exists("b:did_ftplugin") | finish | endif
+let b:did_ftplugin = 1
+
+setlocal commentstring=#%s
+
+" Undo the stuff we changed.
+let b:undo_ftplugin = "setlocal cms<"
diff --git a/runtime/ftplugin/git.vim b/runtime/ftplugin/git.vim
index 5fe5b2b0c3..b3d5cff804 100644
--- a/runtime/ftplugin/git.vim
+++ b/runtime/ftplugin/git.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: generic git output
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -12,6 +12,8 @@ let b:did_ftplugin = 1
if !exists('b:git_dir')
if expand('%:p') =~# '[\/]\.git[\/]modules[\/]'
" Stay out of the way
+ elseif expand('%:p') =~# '[\/]\.git[\/]worktrees'
+ let b:git_dir = matchstr(expand('%:p'),'.*\.git[\/]worktrees[\/][^\/]\+\>')
elseif expand('%:p') =~# '\.git\>'
let b:git_dir = matchstr(expand('%:p'),'.*\.git\>')
elseif $GIT_DIR != ''
diff --git a/runtime/ftplugin/gitcommit.vim b/runtime/ftplugin/gitcommit.vim
index e8619004bf..6767ff719e 100644
--- a/runtime/ftplugin/gitcommit.vim
+++ b/runtime/ftplugin/gitcommit.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: git commit file
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -11,15 +11,10 @@ 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
+setlocal comments=:# commentstring=#\ %s
+setlocal nomodeline tabstop=8 formatoptions+=tl textwidth=72
+setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=q
+let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw< com< cms<'
if exists("g:no_gitcommit_commands") || v:version < 700
finish
@@ -31,6 +26,8 @@ endif
command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
+let b:undo_ftplugin = b:undo_ftplugin . "|delc DiffGitCached"
+
function! s:diffcomplete(A,L,P)
let args = ""
if a:P <= match(a:L." -- "," -- ")+3
diff --git a/runtime/ftplugin/gitrebase.vim b/runtime/ftplugin/gitrebase.vim
index 0200ba1acc..6f73b5c499 100644
--- a/runtime/ftplugin/gitrebase.vim
+++ b/runtime/ftplugin/gitrebase.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: git rebase --interactive
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2010 May 21
+" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -12,10 +12,11 @@ runtime! ftplugin/git.vim
let b:did_ftplugin = 1
setlocal comments=:# commentstring=#\ %s formatoptions-=t
+setlocal nomodeline
if !exists("b:undo_ftplugin")
let b:undo_ftplugin = ""
endif
-let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo<"
+let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo< ml<"
function! s:choose(word)
s/^\(\w\+\>\)\=\(\s*\)\ze\x\{4,40\}\>/\=(strlen(submatch(1)) == 1 ? a:word[0] : a:word) . substitute(submatch(2),'^$',' ','')/e
diff --git a/runtime/ftplugin/gpg.vim b/runtime/ftplugin/gpg.vim
index 5caa1f69c1..3f890e58f6 100644
--- a/runtime/ftplugin/gpg.vim
+++ b/runtime/ftplugin/gpg.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: gpg(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: gpg(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/groovy.vim b/runtime/ftplugin/groovy.vim
new file mode 100644
index 0000000000..cc7d6e35eb
--- /dev/null
+++ b/runtime/ftplugin/groovy.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language: groovy
+" Maintainer: Justin M. Keyes <justinkz@gmail.com>
+" Last Change: 2016 May 22
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo-=C
+
+let b:undo_ftplugin = 'setlocal commentstring<'
+
+setlocal commentstring=//%s
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/group.vim b/runtime/ftplugin/group.vim
index eef3cd68d9..e6b76ba607 100644
--- a/runtime/ftplugin/group.vim
+++ b/runtime/ftplugin/group.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: group(5) user group file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: group(5) user group file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/grub.vim b/runtime/ftplugin/grub.vim
index 21c4e3609d..cd6e1139e5 100644
--- a/runtime/ftplugin/grub.vim
+++ b/runtime/ftplugin/grub.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: grub(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: grub(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/haml.vim b/runtime/ftplugin/haml.vim
index 654f1fca90..e74530b556 100644
--- a/runtime/ftplugin/haml.vim
+++ b/runtime/ftplugin/haml.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 Jun 01
+" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
diff --git a/runtime/ftplugin/hamster.vim b/runtime/ftplugin/hamster.vim
index c23adc4232..6c0630fe04 100644
--- a/runtime/ftplugin/hamster.vim
+++ b/runtime/ftplugin/hamster.vim
@@ -1,8 +1,8 @@
" Vim filetype plugin
" Language: Hamster Script
" Version: 2.0.6.0
-" Maintainer: David Fishburn <fishburn@ianywhere.com>
-" Last Change: Wed Nov 08 2006 12:03:09 PM
+" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
+" Last Change: 2017 Mar 18
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -13,7 +13,7 @@ endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
-set cpo-=C
+set cpo&vim
let b:undo_ftplugin = "setl fo< com< tw< commentstring<"
\ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
diff --git a/runtime/ftplugin/haskell.vim b/runtime/ftplugin/haskell.vim
index 144f9f6860..84f4d0563b 100644
--- a/runtime/ftplugin/haskell.vim
+++ b/runtime/ftplugin/haskell.vim
@@ -1,7 +1,8 @@
" Vim filetype plugin file
-" Language: Haskell
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Haskell
+" Maintainer: Daniel Campoverde <alx@sillybytes.net>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2018-08-27
if exists("b:did_ftplugin")
finish
@@ -15,6 +16,7 @@ let b:undo_ftplugin = "setl com< cms< fo<"
setlocal comments=s1fl:{-,mb:-,ex:-},:-- commentstring=--\ %s
setlocal formatoptions-=t formatoptions+=croql
+setlocal omnifunc=haskellcomplete#Complete
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/help.vim b/runtime/ftplugin/help.vim
index a0a0f292eb..0f448bd306 100644
--- a/runtime/ftplugin/help.vim
+++ b/runtime/ftplugin/help.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Vim help file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Vim help file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
@@ -11,12 +11,87 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
-let b:undo_ftplugin = "setl fo< tw< cole< cocu<"
+let b:undo_ftplugin = "setl fo< tw< cole< cocu< keywordprg<"
setlocal formatoptions+=tcroql textwidth=78
if has("conceal")
setlocal cole=2 cocu=nc
endif
+" Prefer Vim help instead of manpages.
+setlocal keywordprg=:help
+
+if !exists('g:no_plugin_maps')
+ function! s:show_toc() abort
+ let bufname = bufname('%')
+ let info = getloclist(0, {'winid': 1})
+ if !empty(info) && getwinvar(info.winid, 'qf_toc') ==# bufname
+ lopen
+ return
+ endif
+
+ let toc = []
+ let lnum = 2
+ let last_line = line('$') - 1
+ let last_added = 0
+ let has_section = 0
+ let has_sub_section = 0
+
+ while lnum && lnum <= last_line
+ let level = 0
+ let add_text = ''
+ let text = getline(lnum)
+
+ if text =~# '^=\+$' && lnum + 1 < last_line
+ " A de-facto section heading. Other headings are inferred.
+ let has_section = 1
+ let has_sub_section = 0
+ let lnum = nextnonblank(lnum + 1)
+ let text = getline(lnum)
+ let add_text = text
+ while add_text =~# '\*[^*]\+\*\s*$'
+ let add_text = matchstr(add_text, '.*\ze\*[^*]\+\*\s*$')
+ endwhile
+ elseif text =~# '^[A-Z0-9][-A-ZA-Z0-9 .][-A-Z0-9 .():]*\%([ \t]\+\*.\+\*\)\?$'
+ " Any line that's yelling is important.
+ let has_sub_section = 1
+ let level = has_section
+ let add_text = matchstr(text, '.\{-}\ze\s*\%([ \t]\+\*.\+\*\)\?$')
+ elseif text =~# '\~$'
+ \ && matchstr(text, '^\s*\zs.\{-}\ze\s*\~$') !~# '\t\|\s\{2,}'
+ \ && getline(lnum - 1) =~# '^\s*<\?$\|^\s*\*.*\*$'
+ \ && getline(lnum + 1) =~# '^\s*>\?$\|^\s*\*.*\*$'
+ " These lines could be headers or code examples. We only want the
+ " ones that have subsequent lines at the same indent or more.
+ let l = nextnonblank(lnum + 1)
+ if getline(l) =~# '\*[^*]\+\*$'
+ " Ignore tag lines
+ let l = nextnonblank(l + 1)
+ endif
+
+ if indent(lnum) <= indent(l)
+ let level = has_section + has_sub_section
+ let add_text = matchstr(text, '\S.*')
+ endif
+ endif
+
+ let add_text = substitute(add_text, '\s\+$', '', 'g')
+ if !empty(add_text) && last_added != lnum
+ let last_added = lnum
+ call add(toc, {'bufnr': bufnr('%'), 'lnum': lnum,
+ \ 'text': repeat(' ', level) . add_text})
+ endif
+ let lnum = nextnonblank(lnum + 1)
+ endwhile
+
+ call setloclist(0, toc, ' ')
+ call setloclist(0, [], 'a', {'title': 'Help TOC'})
+ lopen
+ let w:qf_toc = bufname
+ endfunction
+
+ nnoremap <silent><buffer> gO :call <sid>show_toc()<cr>
+endif
+
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/hostconf.vim b/runtime/ftplugin/hostconf.vim
index 557fd82c53..563bb8f5f1 100644
--- a/runtime/ftplugin/hostconf.vim
+++ b/runtime/ftplugin/hostconf.vim
@@ -1,6 +1,6 @@
" Vim filetype plugin file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2007-12-04
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-12-04
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/hostsaccess.vim b/runtime/ftplugin/hostsaccess.vim
index a2f55acb8a..d32485f162 100644
--- a/runtime/ftplugin/hostsaccess.vim
+++ b/runtime/ftplugin/hostsaccess.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: hosts_access(5) control file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: hosts_access(5) control file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/indent.vim b/runtime/ftplugin/indent.vim
index 0e195b0615..e6d928a073 100644
--- a/runtime/ftplugin/indent.vim
+++ b/runtime/ftplugin/indent.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: indent(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: indent(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/ld.vim b/runtime/ftplugin/ld.vim
index 31ce5c9ffd..1ab80d533c 100644
--- a/runtime/ftplugin/ld.vim
+++ b/runtime/ftplugin/ld.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: ld(1) script
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: ld(1) script
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/lftp.vim b/runtime/ftplugin/lftp.vim
index 9e2eeb52cb..5bc496c884 100644
--- a/runtime/ftplugin/lftp.vim
+++ b/runtime/ftplugin/lftp.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: lftp(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: lftp(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/libao.vim b/runtime/ftplugin/libao.vim
index 38bd3de92c..0ce5831b28 100644
--- a/runtime/ftplugin/libao.vim
+++ b/runtime/ftplugin/libao.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: libao.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: libao.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/limits.vim b/runtime/ftplugin/limits.vim
index cd5b7b5c93..90a10a6c22 100644
--- a/runtime/ftplugin/limits.vim
+++ b/runtime/ftplugin/limits.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: limits(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: limits(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/loginaccess.vim b/runtime/ftplugin/loginaccess.vim
index 7c44f972f2..d27114a7ae 100644
--- a/runtime/ftplugin/loginaccess.vim
+++ b/runtime/ftplugin/loginaccess.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: login.access(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: login.access(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/logindefs.vim b/runtime/ftplugin/logindefs.vim
index 668d08a002..7873396808 100644
--- a/runtime/ftplugin/logindefs.vim
+++ b/runtime/ftplugin/logindefs.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: login.defs(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: login.defs(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/logtalk.dict b/runtime/ftplugin/logtalk.dict
index e3b9e6f2a4..3fcdfc6f6a 100644
--- a/runtime/ftplugin/logtalk.dict
+++ b/runtime/ftplugin/logtalk.dict
@@ -1,164 +1,262 @@
-encoding
+abolish
+abolish_category
+abolish_events
+abolish_object
+abolish_protocol
+abs
+acos
+acyclic_term
+after
+alias
+always_true_or_false_goals
+arg
+asin
+asserta
+assertz
+atan
+atan2
+atom
+atomic
+atom_chars
+atom_chars
+atom_codes
+atom_codes
+atom_concat
+atom_concat
+atom_length
+at_end_of_stream
+bagof
+before
+built_in
+call
+callable
calls
+catch
category
+category_property
+ceiling
+char_code
+char_conversion
+clause
+clean
+close
+code_prefix
+coinduction
+coinductive
+compare
+complements
+complements
+complements_object
+compound
+conforms_to_protocol
+context
+context_switching_calls
+copy_term
+cos
+create_category
+create_logtalk_flag
+create_object
+create_protocol
+current_category
+current_char_conversion
+current_event
+current_input
+current_logtalk_flag
+current_object
+current_op
+current_output
+current_predicate
+current_prolog_flag
+current_protocol
+debug
+define_events
+deprecated
+discontiguous
+div
+domain_error
+duplicated_directives
dynamic
+dynamic_declarations
+elif
+else
+encoding
+encoding_directive
+endif
end_category
end_object
end_protocol
-info
-initialization
-object
-protocol
-synchronized
-threaded
-uses
-alias
-discontiguous
-meta_predicate
-mode
-op
-private
-protected
-public
-current_object
-current_protocol
-current_category
-object_property
-protocol_property
-category_property
-create_object
-create_protocol
-create_category
-abolish_object
-abolish_protocol
-abolish_category
-complements
-complements_object
+engines
+ensure_loaded
+evaluation_error
+events
+existence_error
+exp
+expand_goal
+expand_term
+export
extends
+extends_category
extends_object
extends_protocol
-extends_category
+fail
+false
+findall
+float
+float_fractional_part
+float_integer_part
+floor
+flush_output
+forall
+forward
+functor
+get_byte
+get_char
+get_code
+goal_expansion
+ground
+halt
+hook
+if
+ignore
implements
implements_protocol
imports
imports_category
+include
+info
+initialization
instantiates
instantiates_class
-specializes
-specializes_class
-abolish_events
-current_event
-define_events
-logtalk_load
+instantiation_error
+integer
+keysort
+lambda_variables
+log
logtalk_compile
logtalk_library_path
-current_logtalk_flag
-set_logtalk_flag
-threaded_call
-threaded_once
-threaded_ignore
-threaded_exit
-threaded_peek
-threaded_wait
-threaded_notify
-self
-this
-sender
-parameter
-before
-after
-phrase
-expand_term
-goal_expansion
-term_expansion
-true
-fail
-call
-catch
-throw
-unify_with_occurs_check
-var
-atom
-integer
-float
-atomic
-compound
+logtalk_load
+logtalk_load_context
+logtalk_make
+logtalk_make_target_action
+max
+meta_non_terminal
+meta_predicate
+min
+missing_directives
+mod
+mode
+modules
+multifile
+nl
nonvar
number
-arg
-copy_term
-functor
-current_predicate
-predicate_property
-abolish
-assertz
-asserta
-clause
-retract
-retractall
-bagof
-findall
-forall
-setof
-current_input
-current_output
-set_input
-set_output
+numbervars
+number_chars
+number_chars
+number_codes
+number_codes
+object
+object_property
+once
+op
open
-close
-flush_output
-stream_property
-at_end_of_stream
-set_stream_position
-get_char
-get_code
+optimize
+parameter
+peek_byte
peek_char
peek_code
+permission_error
+phrase
+portability
+predicate_property
+private
+prolog_compatible_version
+prolog_compiler
+prolog_dialect
+prolog_loader
+prolog_version
+protected
+protocol
+protocol_property
+public
+put_byte
put_char
put_code
-nl
-get_byte
-peek_byte
-put_byte
read
read_term
-write
-writeq
-write_canonical
-atom_chars
-atom_codes
-atom_concat
-number_chars
-number_codes
-current_op
-char_conversion
-current_char_conversion
-once
-repeat
-atom_length
-atom_concat
-sub_atom
-atom_chars
-atom_codes
-char_code
-number_chars
-number_codes
-set_prolog_flag
-current_prolog_flag
-halt
-abs
-atan
-ceiling
-cos
-exp
-float_fractional_part
-float_integer_part
-floor
-log
-mod
+redefined_built_ins
+reexport
+reload
rem
+repeat
+report
+representation_error
+resource_error
+retract
+retractall
round
+scratch_directory
+self
+sender
+setof
+set_input
+set_logtalk_flag
+set_output
+set_prolog_flag
+set_stream_position
sign
sin
+singleton_variables
+sort
+source_data
+specializes
+specializes_class
sqrt
+stream_property
+subsumes_term
+sub_atom
+suspicious_calls
+synchronized
+syntax_error
+system_error
+tabling
+tan
+term_expansion
+term_variables
+this
+threaded
+threaded_call
+threaded_engine
+threaded_engine_create
+threaded_engine_destroy
+threaded_engine_fetch
+threaded_engine_next
+threaded_engine_next_reified
+threaded_engine_post
+threaded_engine_self
+threaded_engine_yield
+threaded_exit
+threaded_ignore
+threaded_notify
+threaded_once
+threaded_peek
+threaded_wait
+threads
+throw
+trivial_goal_fails
+true
truncate
+type_error
+undefined_predicates
+underscore_variables
+unify_with_occurs_check
+unknown_entities
+unknown_predicates
+uses
+use_module
+var
+version
+write
+writeq
+write_canonical
+xor
diff --git a/runtime/ftplugin/logtalk.vim b/runtime/ftplugin/logtalk.vim
index e71307a399..667907ce5f 100644
--- a/runtime/ftplugin/logtalk.vim
+++ b/runtime/ftplugin/logtalk.vim
@@ -1,7 +1,7 @@
" Logtalk filetype plugin file
" Language: Logtalk
" Maintainer: Paulo Moura <pmoura@logtalk.org>
-" Latest Revision: 2007-07-06
+" Latest Revision: 2018-08-03
if exists("b:did_ftplugin")
finish
@@ -10,9 +10,10 @@ let b:did_ftplugin = 1
let b:undo_ftplugin = "setl ts< sw< fdm< fdc< ai< dict<"
-"setlocal ts=4
+setlocal ts=4
setlocal sw=4
setlocal fdm=syntax
+setlocal fdn=10
setlocal fdc=2
setlocal autoindent
setlocal dict=$VIMRUNTIME/ftplugin/logtalk.dict
diff --git a/runtime/ftplugin/m4.vim b/runtime/ftplugin/m4.vim
index 0ffe0ac77e..3745507321 100644
--- a/runtime/ftplugin/m4.vim
+++ b/runtime/ftplugin/m4.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: m4
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: m4
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/mailaliases.vim b/runtime/ftplugin/mailaliases.vim
index 1b10c86ae3..0ae4b452d0 100644
--- a/runtime/ftplugin/mailaliases.vim
+++ b/runtime/ftplugin/mailaliases.vim
@@ -1,6 +1,6 @@
" Vim filetype plugin file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/mailcap.vim b/runtime/ftplugin/mailcap.vim
index f4c8c232d8..ba8573c722 100644
--- a/runtime/ftplugin/mailcap.vim
+++ b/runtime/ftplugin/mailcap.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Mailcap configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Mailcap configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim
index 04ab539fb1..26b51186a1 100644
--- a/runtime/ftplugin/man.vim
+++ b/runtime/ftplugin/man.vim
@@ -1,41 +1,56 @@
-" Vim filetype plugin file
-" Language: man
-" Maintainer: SungHyun Nam <goweol@gmail.com>
+" Maintainer: Anmol Sethi <anmol@aubble.com>
+" Previous Maintainer: SungHyun Nam <goweol@gmail.com>
-if has('vim_starting') && &filetype !=# 'man'
- finish
-endif
-
-" Only do this when not done yet for this buffer
-if exists('b:did_ftplugin')
+if exists('b:did_ftplugin') || &filetype !=# 'man'
finish
endif
let b:did_ftplugin = 1
-" Ensure Vim is not recursively invoked (man-db does this)
-" when doing ctrl-[ on a man page reference.
-if exists('$MANPAGER')
- let $MANPAGER = ''
-endif
+let s:pager = get(s:, 'pager', 0) || !exists('b:man_sect')
-setlocal iskeyword+=\.,-,(,)
-
-setlocal buftype=nofile noswapfile
-setlocal nomodifiable readonly bufhidden=hide nobuflisted tabstop=8
+if s:pager
+ call man#init_pager()
+endif
-if !exists("g:no_plugin_maps") && !exists("g:no_man_maps")
- nnoremap <silent> <buffer> <C-]> :call man#get_page(v:count, expand('<cword>'))<CR>
- nnoremap <silent> <buffer> <C-T> :call man#pop_page()<CR>
- nnoremap <silent> <nowait><buffer> q <C-W>c
- if &keywordprg !=# ':Man'
- nnoremap <silent> <buffer> K :call man#get_page(v:count, expand('<cword>'))<CR>
+setlocal buftype=nofile
+setlocal noswapfile
+setlocal bufhidden=hide
+setlocal nomodified
+setlocal readonly
+setlocal nomodifiable
+setlocal noexpandtab
+setlocal tabstop=8
+setlocal softtabstop=8
+setlocal shiftwidth=8
+setlocal wrap
+setlocal breakindent
+
+setlocal nonumber
+setlocal norelativenumber
+setlocal foldcolumn=0
+setlocal colorcolumn=0
+setlocal nolist
+setlocal nofoldenable
+
+if !exists('g:no_plugin_maps') && !exists('g:no_man_maps')
+ nnoremap <silent> <buffer> j gj
+ nnoremap <silent> <buffer> k gk
+ nnoremap <silent> <buffer> gO :call man#show_toc()<CR>
+ nnoremap <silent> <buffer> <C-]> :Man<CR>
+ nnoremap <silent> <buffer> K :Man<CR>
+ nnoremap <silent> <buffer> <C-T> :call man#pop_tag()<CR>
+ if 1 == bufnr('%') || s:pager
+ nnoremap <silent> <buffer> <nowait> q :lclose<CR>:q<CR>
+ else
+ nnoremap <silent> <buffer> <nowait> q :lclose<CR><C-W>c
endif
endif
-if exists('g:ft_man_folding_enable') && (g:ft_man_folding_enable == 1)
- setlocal foldmethod=indent foldnestmax=1 foldenable
+if get(g:, 'ft_man_folding_enable', 0)
+ setlocal foldenable
+ setlocal foldmethod=indent
+ setlocal foldnestmax=1
endif
-let b:undo_ftplugin = 'setlocal iskeyword<'
-
+let b:undo_ftplugin = ''
" vim: set sw=2:
diff --git a/runtime/ftplugin/manconf.vim b/runtime/ftplugin/manconf.vim
index a249a97507..aa85408cef 100644
--- a/runtime/ftplugin/manconf.vim
+++ b/runtime/ftplugin/manconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: man.conf(5) - man configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: man.conf(5) - man configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/markdown.vim b/runtime/ftplugin/markdown.vim
index 5d6ebecd8c..277ba94e8b 100644
--- a/runtime/ftplugin/markdown.vim
+++ b/runtime/ftplugin/markdown.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Markdown
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2013 May 30
+" Last Change: 2016 Aug 29
if exists("b:did_ftplugin")
finish
@@ -11,7 +11,7 @@ runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
-setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+
+setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]:
if exists('b:undo_ftplugin')
let b:undo_ftplugin .= "|setl cms< com< fo< flp<"
@@ -19,4 +19,32 @@ else
let b:undo_ftplugin = "setl cms< com< fo< flp<"
endif
+function! MarkdownFold()
+ let line = getline(v:lnum)
+
+ " Regular headers
+ let depth = match(line, '\(^#\+\)\@<=\( .*$\)\@=')
+ if depth > 0
+ return ">" . depth
+ endif
+
+ " Setext style headings
+ let nextline = getline(v:lnum + 1)
+ if (line =~ '^.\+$') && (nextline =~ '^=\+$')
+ return ">1"
+ endif
+
+ if (line =~ '^.\+$') && (nextline =~ '^-\+$')
+ return ">2"
+ endif
+
+ return "="
+endfunction
+
+if has("folding") && exists("g:markdown_folding")
+ setlocal foldexpr=MarkdownFold()
+ setlocal foldmethod=expr
+ let b:undo_ftplugin .= " foldexpr< foldmethod<"
+endif
+
" vim:set sw=2:
diff --git a/runtime/ftplugin/mf.vim b/runtime/ftplugin/mf.vim
index fd1d3ce646..7c9a8a1283 100644
--- a/runtime/ftplugin/mf.vim
+++ b/runtime/ftplugin/mf.vim
@@ -1,7 +1,8 @@
" Vim filetype plugin file
-" Language: MetaFont
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: METAFONT
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Former Maintainers: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2016 Oct 2
if exists("b:did_ftplugin")
finish
@@ -11,9 +12,59 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
-let b:undo_ftplugin = "setl com< cms< fo<"
+let b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<"
+ \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
-setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
+setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=cjroql2
+setlocal suffixesadd=.mf
+let &l:include = '\<input\>'
+let &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+'
+setlocal omnifunc=syntaxcomplete#Complete
+let g:omni_syntax_group_include_mf = 'mf\w\+'
+let g:omni_syntax_group_exclude_mf = 'mfTodoComment'
+
+let s:mp_regex = {
+ \ 'beginsection' : '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|beginchar\|beginlogochar\)\>',
+ \ 'endsection' : '^\s*\%(enddef\|endchar\)\>',
+ \ 'beginblock' : '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>',
+ \ 'endblock' : '^\s*\%(endgroup\|fi\|endfor\)\>'
+ \ }
+
+function! s:move_around(count, what, flags, visual)
+ if a:visual
+ exe "normal! gv"
+ endif
+ call search(s:mp_regex[a:what], a:flags.'s') " 's' sets previous context mark
+ call map(range(2, a:count), 'search(s:mp_regex[a:what], a:flags)')
+endfunction
+
+
+" Move around macros.
+nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
+nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
+vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
+nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
+nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
+vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
+nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
+vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
+nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
+vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
+
+if exists("loaded_matchit")
+ let b:match_ignorecase = 0
+ let b:match_words =
+ \ '\<if\>:\<else\%[if]\>:\<fi\>,' .
+ \ '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' .
+ \ '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' .
+ \ '\<begingroup\>:\<endgroup\>,' .
+ \ '\<begin\%(logo\)\?char\>:\<endchar\>'
+ " Ignore comments and strings
+ let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name")
+ \ =~# "mf\\(Comment\\|String\\)$"'
+endif
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/modconf.vim b/runtime/ftplugin/modconf.vim
index f200e9f61e..c8e76b538b 100644
--- a/runtime/ftplugin/modconf.vim
+++ b/runtime/ftplugin/modconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: modules.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: modules.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/mp.vim b/runtime/ftplugin/mp.vim
index 316fa9bb64..3a0a3d0298 100644
--- a/runtime/ftplugin/mp.vim
+++ b/runtime/ftplugin/mp.vim
@@ -1,7 +1,8 @@
" Vim filetype plugin file
-" Language: MetaPost
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: MetaPost
+" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Former Maintainers: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2016 Oct 2
if exists("b:did_ftplugin")
finish
@@ -11,9 +12,16 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
-let b:undo_ftplugin = "setl com< cms< fo<"
+let b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<"
+ \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
-setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
+setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=cjroql2
+setlocal suffixesadd=.mp,.mpiv
+let &l:include = '\<\%(input\|loadmodule\)\>' " loadmodule is in MetaFun
+let &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+'
+setlocal omnifunc=syntaxcomplete#Complete
+let g:omni_syntax_group_include_mp = 'mf\w\+,mp\w\+'
+let g:omni_syntax_group_exclude_mp = 'mfTodoComment'
if exists(":FixBeginfigs") != 2
command -nargs=0 FixBeginfigs call s:fix_beginfigs()
@@ -24,5 +32,51 @@ if exists(":FixBeginfigs") != 2
endfunction
endif
+let s:mp_regex = {
+ \ 'beginsection' : '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|begin\%(fig\|char\|logochar\|glyph\|graph\)\)\>',
+ \ 'endsection' : '^\s*\%(enddef\|end\%(fig\|char\|glyph\|graph\)\)\>',
+ \ 'beginblock' : '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>',
+ \ 'endblock' : '^\s*\%(endgroup\|fi\|endfor\)\>'
+ \ }
+
+function! s:move_around(count, what, flags, visual)
+ if a:visual
+ exe "normal! gv"
+ endif
+ call search(s:mp_regex[a:what], a:flags.'s') " 's' sets previous context mark
+ call map(range(2, a:count), 'search(s:mp_regex[a:what], a:flags)')
+endfunction
+
+
+" Move around macros.
+nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true) <CR>
+nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:false) <CR>
+vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W", v:true) <CR>
+nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection", "bW", v:true) <CR>
+nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:false) <CR>
+vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection", "W", v:true) <CR>
+nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:false) <CR>
+vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock", "bW", v:true) <CR>
+nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:false) <CR>
+vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock", "W", v:true) <CR>
+
+if exists("loaded_matchit")
+ let b:match_ignorecase = 0
+ let b:match_words =
+ \ '\<if\>:\<else\%[if]\>:\<fi\>,' .
+ \ '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' .
+ \ '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' .
+ \ '\<beginfig\>:\<endfig\>,' .
+ \ '\<begingroup\>:\<endgroup\>,' .
+ \ '\<begin\%(logo\)\?char\>:\<endchar\>,' .
+ \ '\<beginglyph\>:\<endglyph\>,' .
+ \ '\<begingraph\>:\<endgraph\>'
+ " Ignore comments and strings
+ let b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name")
+ \ =~# "^mf\\%(Comment\\|String\\|\\)$\\|^mpTeXinsert$"'
+endif
+
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/mplayerconf.vim b/runtime/ftplugin/mplayerconf.vim
index 65034a8152..86547609c3 100644
--- a/runtime/ftplugin/mplayerconf.vim
+++ b/runtime/ftplugin/mplayerconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: mplayer(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: mplayer(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/muttrc.vim b/runtime/ftplugin/muttrc.vim
index a109e5ddda..c8ad0f2ec5 100644
--- a/runtime/ftplugin/muttrc.vim
+++ b/runtime/ftplugin/muttrc.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: mutt RC File
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Language: mutt RC File
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-04-19
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/nanorc.vim b/runtime/ftplugin/nanorc.vim
index be20d12503..e45ebac0eb 100644
--- a/runtime/ftplugin/nanorc.vim
+++ b/runtime/ftplugin/nanorc.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: nanorc(5) - GNU nano configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: nanorc(5) - GNU nano configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/neomuttrc.vim b/runtime/ftplugin/neomuttrc.vim
new file mode 100644
index 0000000000..86f1cded63
--- /dev/null
+++ b/runtime/ftplugin/neomuttrc.vim
@@ -0,0 +1,23 @@
+" Vim filetype plugin file
+" Language: NeoMutt RC File
+" Previous Maintainer: Guillaume Brogi <gui-gui@netcourrier.com>
+" Latest Revision: 2017-09-17
+" Original version copied from ftplugin/muttrc.vim
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< inc< fo<"
+
+setlocal comments=:# commentstring=#\ %s
+setlocal formatoptions-=t formatoptions+=croql
+
+let &l:include = '^\s*source\>'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/netrc.vim b/runtime/ftplugin/netrc.vim
index 105a1d3a8e..02ee327295 100644
--- a/runtime/ftplugin/netrc.vim
+++ b/runtime/ftplugin/netrc.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: netrc(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: netrc(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/nsis.vim b/runtime/ftplugin/nsis.vim
index acc26208c4..1a35127c86 100644
--- a/runtime/ftplugin/nsis.vim
+++ b/runtime/ftplugin/nsis.vim
@@ -1,22 +1,43 @@
" Vim ftplugin file
-" Language: NSIS script
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
-
-let s:cpo_save = &cpo
-set cpo&vim
+" Language: NSIS script
+" Maintainer: Ken Takata
+" URL: https://github.com/k-takata/vim-nsis
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Last Change: 2018-01-26
if exists("b:did_ftplugin")
finish
endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
let b:did_ftplugin = 1
let b:undo_ftplugin = "setl com< cms< fo< def< inc<"
+ \ " | unlet! b:match_ignorecase b:match_words"
setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s
setlocal formatoptions-=t formatoptions+=croql
setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\=
setlocal include=^\\s*!include\\%(/NONFATAL\\)\\=
+if exists("loaded_matchit")
+ let b:match_ignorecase = 1
+ let b:match_words =
+ \ '\${\%(If\|IfNot\|Unless\)}:\${\%(Else\|ElseIf\|ElseIfNot\|ElseUnless\)}:\${\%(EndIf\|EndUnless\)},' .
+ \ '\${Select}:\${EndSelect},' .
+ \ '\${Switch}:\${EndSwitch},' .
+ \ '\${\%(Do\|DoWhile\|DoUntil\)}:\${\%(Loop\|LoopWhile\|LoopUntil\)},' .
+ \ '\${\%(For\|ForEach\)}:\${Next},' .
+ \ '\<Function\>:\<FunctionEnd\>,' .
+ \ '\<Section\>:\<SectionEnd\>,' .
+ \ '\<SectionGroup\>:\<SectionGroupEnd\>,' .
+ \ '\<PageEx\>:\<PageExEnd\>,' .
+ \ '\${MementoSection}:\${MementoSectionEnd},' .
+ \ '!if\%(\%(macro\)\?n\?def\)\?\>:!else\>:!endif\>,' .
+ \ '!macro\>:!macroend\>'
+endif
+
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/pamconf.vim b/runtime/ftplugin/pamconf.vim
index 96d96461e2..f0a693e3a5 100644
--- a/runtime/ftplugin/pamconf.vim
+++ b/runtime/ftplugin/pamconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: pam(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: pam(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/passwd.vim b/runtime/ftplugin/passwd.vim
index 5088c43359..f6e0f50342 100644
--- a/runtime/ftplugin/passwd.vim
+++ b/runtime/ftplugin/passwd.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: passwd(5) password file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: passwd(5) password file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/perl.vim b/runtime/ftplugin/perl.vim
index 741cfae047..e7acf654f3 100644
--- a/runtime/ftplugin/perl.vim
+++ b/runtime/ftplugin/perl.vim
@@ -3,7 +3,7 @@
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change: 2013-07-21
+" Last Change: 2015-02-09
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@@ -33,14 +33,14 @@ endif
setlocal include=\\<\\(use\\\|require\\)\\>
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
setlocal define=[^A-Za-z_]
+setlocal iskeyword+=:
" The following line changes a global variable but is necessary to make
-" gf and similar commands work. The change to iskeyword was incorrect.
-" Thanks to Andrew Pimlott for pointing out the problem. If this causes a
-" problem for you, add an after/ftplugin/perl.vim file that contains
+" gf and similar commands work. Thanks to Andrew Pimlott for pointing
+" out the problem. If this causes a problem for you, add an
+" after/ftplugin/perl.vim file that contains
" set isfname-=:
set isfname+=:
-set iskeyword+=:
" Set this once, globally.
if !exists("perlpath")
@@ -77,11 +77,12 @@ endif
"---------------------------------------------
" Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" .
+let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk< isf< kp< path<" .
\ " | unlet! b:browsefilter"
" proper matching for matchit plugin
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
+let b:match_words = '\<if\>:\<elsif\>:\<else\>'
" Restore the saved compatibility options.
let &cpo = s:save_cpo
diff --git a/runtime/ftplugin/pinfo.vim b/runtime/ftplugin/pinfo.vim
index 6ec1f87b9e..50473a8114 100644
--- a/runtime/ftplugin/pinfo.vim
+++ b/runtime/ftplugin/pinfo.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: pinfo(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: pinfo(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/procmail.vim b/runtime/ftplugin/procmail.vim
index cc2ceede19..d64f19274d 100644
--- a/runtime/ftplugin/procmail.vim
+++ b/runtime/ftplugin/procmail.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: procmail(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: procmail(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/prolog.vim b/runtime/ftplugin/prolog.vim
index caeb574c5a..f4e7d135b5 100644
--- a/runtime/ftplugin/prolog.vim
+++ b/runtime/ftplugin/prolog.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Prolog
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Prolog
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/protocols.vim b/runtime/ftplugin/protocols.vim
index 2486ff9370..83856ce7ba 100644
--- a/runtime/ftplugin/protocols.vim
+++ b/runtime/ftplugin/protocols.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: protocols(5) - Internet protocols definition file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: protocols(5) - Internet protocols definition file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/python.vim b/runtime/ftplugin/python.vim
index 75c7e87996..5c4a59b1a9 100644
--- a/runtime/ftplugin/python.vim
+++ b/runtime/ftplugin/python.vim
@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: python
-" Maintainer: Johannes Zellner <johannes@zellner.org>
-" Last Change: 2014 Feb 09
-" Last Change By Johannes: Wed, 21 Apr 2004 13:13:08 CEST
+" Maintainer: Tom Picton <tom@tompicton.co.uk>
+" Previous Maintainer: James Sully <sullyj3@gmail.com>
+" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
+" Last Change: Sun, 15 April 2018
+" https://github.com/tpict/vim-ftplugin-python
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@@ -12,41 +14,106 @@ set cpo&vim
setlocal cinkeys-=0#
setlocal indentkeys-=0#
setlocal include=^\\s*\\(from\\\|import\\)
-setlocal includeexpr=substitute(v:fname,'\\.','/','g')
+
+" For imports with leading .., append / and replace additional .s with ../
+let b:grandparent_match = '^\(.\.\)\(\.*\)'
+let b:grandparent_sub = '\=submatch(1)."/".repeat("../",strlen(submatch(2)))'
+
+" For imports with a single leading ., replace it with ./
+let b:parent_match = '^\.\(\.\)\@!'
+let b:parent_sub = './'
+
+" Replace any . sandwiched between word characters with /
+let b:child_match = '\(\w\)\.\(\w\)'
+let b:child_sub = '\1/\2'
+
+setlocal includeexpr=substitute(substitute(substitute(
+ \v:fname,
+ \b:grandparent_match,b:grandparent_sub,''),
+ \b:parent_match,b:parent_sub,''),
+ \b:child_match,b:child_sub,'g')
+
setlocal suffixesadd=.py
setlocal comments=b:#,fb:-
setlocal commentstring=#\ %s
setlocal omnifunc=pythoncomplete#Complete
+if has('python3')
+ setlocal omnifunc=python3complete#Complete
+endif
set wildignore+=*.pyc
-nnoremap <silent> <buffer> ]] :call <SID>Python_jump('/^\(class\\|def\)')<cr>
-nnoremap <silent> <buffer> [[ :call <SID>Python_jump('?^\(class\\|def\)')<cr>
-nnoremap <silent> <buffer> ]m :call <SID>Python_jump('/^\s*\(class\\|def\)')<cr>
-nnoremap <silent> <buffer> [m :call <SID>Python_jump('?^\s*\(class\\|def\)')<cr>
+let b:next_toplevel='\v%$\|^(class\|def\|async def)>'
+let b:prev_toplevel='\v^(class\|def\|async def)>'
+let b:next_endtoplevel='\v%$\|\S.*\n+(def\|class)'
+let b:prev_endtoplevel='\v\S.*\n+(def\|class)'
+let b:next='\v%$\|^\s*(class\|def\|async def)>'
+let b:prev='\v^\s*(class\|def\|async def)>'
+let b:next_end='\v\S\n*(%$\|^(\s*\n*)*(class\|def\|async def)\|^\S)'
+let b:prev_end='\v\S\n*(^(\s*\n*)*(class\|def\|async def)\|^\S)'
+
+execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W', v:count1)<cr>"
+execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
+execute "nnoremap <silent> <buffer> ][ :call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', 0, v:count1)<cr>"
+execute "nnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', 0, v:count1)<cr>"
+execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W', v:count1)<cr>"
+execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb', v:count1)<cr>"
+execute "nnoremap <silent> <buffer> ]M :call <SID>Python_jump('n', '". b:next_end."', 'W', 0, v:count1)<cr>"
+execute "nnoremap <silent> <buffer> [M :call <SID>Python_jump('n', '". b:prev_end."', 'Wb', 0, v:count1)<cr>"
+
+execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W', v:count1)<cr>"
+execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
+execute "onoremap <silent> <buffer> ][ :call <SID>Python_jump('o', '". b:next_endtoplevel."', 'W', 0, v:count1)<cr>"
+execute "onoremap <silent> <buffer> [] :call <SID>Python_jump('o', '". b:prev_endtoplevel."', 'Wb', 0, v:count1)<cr>"
+execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W', v:count1)<cr>"
+execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb', v:count1)<cr>"
+execute "onoremap <silent> <buffer> ]M :call <SID>Python_jump('o', '". b:next_end."', 'W', 0, v:count1)<cr>"
+execute "onoremap <silent> <buffer> [M :call <SID>Python_jump('o', '". b:prev_end."', 'Wb', 0, v:count1)<cr>"
+
+execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W', v:count1)<cr>"
+execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
+execute "xnoremap <silent> <buffer> ][ :call <SID>Python_jump('x', '". b:next_endtoplevel."', 'W', 0, v:count1)<cr>"
+execute "xnoremap <silent> <buffer> [] :call <SID>Python_jump('x', '". b:prev_endtoplevel."', 'Wb', 0, v:count1)<cr>"
+execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W', v:count1)<cr>"
+execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb', v:count1)<cr>"
+execute "xnoremap <silent> <buffer> ]M :call <SID>Python_jump('x', '". b:next_end."', 'W', 0, v:count1)<cr>"
+execute "xnoremap <silent> <buffer> [M :call <SID>Python_jump('x', '". b:prev_end."', 'Wb', 0, v:count1)<cr>"
if !exists('*<SID>Python_jump')
- fun! <SID>Python_jump(motion) range
- let cnt = v:count1
- let save = @/ " save last search pattern
+ fun! <SID>Python_jump(mode, motion, flags, count, ...) range
+ let l:startofline = (a:0 >= 1) ? a:1 : 1
+
+ if a:mode == 'x'
+ normal! gv
+ endif
+
+ if l:startofline == 1
+ normal! 0
+ endif
+
+ let cnt = a:count
mark '
while cnt > 0
- silent! exe a:motion
- let cnt = cnt - 1
+ call search(a:motion, a:flags)
+ let cnt = cnt - 1
endwhile
- call histdel('/', -1)
- let @/ = save " restore last search pattern
+
+ if l:startofline == 1
+ normal! ^
+ endif
endfun
endif
if has("browsefilter") && !exists("b:browsefilter")
let b:browsefilter = "Python Files (*.py)\t*.py\n" .
- \ "All Files (*.*)\t*.*\n"
+ \ "All Files (*.*)\t*.*\n"
endif
-" As suggested by PEP8.
-setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
+if !exists("g:python_recommended_style") || g:python_recommended_style != 0
+ " As suggested by PEP8.
+ setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
+endif
" First time: try finding "pydoc".
if !exists('g:pydoc_executable')
diff --git a/runtime/ftplugin/qf.vim b/runtime/ftplugin/qf.vim
index 98c8f932bc..80e86c4d16 100644
--- a/runtime/ftplugin/qf.vim
+++ b/runtime/ftplugin/qf.vim
@@ -14,3 +14,26 @@ let b:undo_ftplugin = "set stl<"
" Display the command that produced the list in the quickfix window:
setlocal stl=%t%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}\ %=%-15(%l,%c%V%)\ %P
+
+function! s:setup_toc() abort
+ if get(w:, 'quickfix_title') !~# '\<TOC$' || &syntax != 'qf'
+ return
+ endif
+
+ let list = getloclist(0)
+ if empty(list)
+ return
+ endif
+
+ let bufnr = list[0].bufnr
+ setlocal modifiable
+ silent %delete _
+ call setline(1, map(list, 'v:val.text'))
+ setlocal nomodifiable nomodified
+ let &syntax = getbufvar(bufnr, '&syntax')
+endfunction
+
+augroup qf_toc
+ autocmd!
+ autocmd Syntax <buffer> call s:setup_toc()
+augroup END
diff --git a/runtime/ftplugin/quake.vim b/runtime/ftplugin/quake.vim
index f62693b11a..c3a2e52347 100644
--- a/runtime/ftplugin/quake.vim
+++ b/runtime/ftplugin/quake.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Quake[1-3] configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Quake[1-3] configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/racc.vim b/runtime/ftplugin/racc.vim
index 7ff22f8937..0cd852c365 100644
--- a/runtime/ftplugin/racc.vim
+++ b/runtime/ftplugin/racc.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Racc input file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Racc input file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/readline.vim b/runtime/ftplugin/readline.vim
index 0a4dbb5c03..e9ef93ec7f 100644
--- a/runtime/ftplugin/readline.vim
+++ b/runtime/ftplugin/readline.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: readline(3) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: readline(3) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/rmd.vim b/runtime/ftplugin/rmd.vim
index ec64a07675..7b0db8dbb5 100644
--- a/runtime/ftplugin/rmd.vim
+++ b/runtime/ftplugin/rmd.vim
@@ -1,18 +1,21 @@
" Vim filetype plugin file
-" Language: R help file
+" Language: R Markdown file
" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
-" Last Change: Tue Apr 07, 2015 04:37PM
-" Original work by Alex Zvoleff (adjusted for rmd by Michel Kuhlmann)
+" Last Change: Sun Jul 22, 2018 06:51PM
+" Original work by Alex Zvoleff (adjusted from R help for rmd by Michel Kuhlmann)
" Only do this when not yet done for this buffer
if exists("b:did_ftplugin")
finish
endif
-runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+if exists('g:rmd_include_html') && g:rmd_include_html
+ runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+endif
-setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
+setlocal comments=fb:*,fb:-,fb:+,n:>
+setlocal commentstring=#\ %s
setlocal formatoptions+=tcqln
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+
setlocal iskeyword=@,48-57,_,.
@@ -20,6 +23,22 @@ setlocal iskeyword=@,48-57,_,.
let s:cpo_save = &cpo
set cpo&vim
+function! FormatRmd()
+ if search("^[ \t]*```[ ]*{r", "bncW") > search("^[ \t]*```$", "bncW")
+ setlocal comments=:#',:###,:##,:#
+ else
+ setlocal comments=fb:*,fb:-,fb:+,n:>
+ endif
+ return 1
+endfunction
+
+" If you do not want 'comments' dynamically defined, put in your vimrc:
+" let g:rmd_dynamic_comments = 0
+if !exists("g:rmd_dynamic_comments") || (exists("g:rmd_dynamic_comments") && g:rmd_dynamic_comments == 1)
+ setlocal formatexpr=FormatRmd()
+endif
+
+
" Enables pandoc if it is installed
unlet! b:did_ftplugin
runtime ftplugin/pandoc.vim
diff --git a/runtime/ftplugin/rnc.vim b/runtime/ftplugin/rnc.vim
index 2b8fd50d8d..90aa111c67 100644
--- a/runtime/ftplugin/rnc.vim
+++ b/runtime/ftplugin/rnc.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Relax NG compact syntax
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Relax NG compact syntax
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/rrst.vim b/runtime/ftplugin/rrst.vim
index ecfd6e87a1..3e82847d35 100644
--- a/runtime/ftplugin/rrst.vim
+++ b/runtime/ftplugin/rrst.vim
@@ -2,7 +2,7 @@
" Language: reStructuredText documentation format with R code
" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
-" Last Change: Tue Apr 07, 2015 04:38PM
+" Last Change: Wed Nov 01, 2017 10:47PM
" Original work by Alex Zvoleff
" Only do this when not yet done for this buffer
@@ -16,11 +16,27 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
-setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
+setlocal comments=fb:*,fb:-,fb:+,n:>
+setlocal commentstring=#\ %s
setlocal formatoptions+=tcqln
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+
setlocal iskeyword=@,48-57,_,.
+function! FormatRrst()
+ if search('^\.\. {r', "bncW") > search('^\.\. \.\.$', "bncW")
+ setlocal comments=:#',:###,:##,:#
+ else
+ setlocal comments=fb:*,fb:-,fb:+,n:>
+ endif
+ return 1
+endfunction
+
+" If you do not want 'comments' dynamically defined, put in your vimrc:
+" let g:rrst_dynamic_comments = 0
+if !exists("g:rrst_dynamic_comments") || (exists("g:rrst_dynamic_comments") && g:rrst_dynamic_comments == 1)
+ setlocal formatexpr=FormatRrst()
+endif
+
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" .
\ "All Files (*.*)\t*.*\n"
diff --git a/runtime/ftplugin/rst.vim b/runtime/ftplugin/rst.vim
index b871cf1486..9d737cde44 100644
--- a/runtime/ftplugin/rst.vim
+++ b/runtime/ftplugin/rst.vim
@@ -1,10 +1,12 @@
-" Vim filetype plugin file
-" Language: reStructuredText documentation format
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" reStructuredText filetype plugin file
+" Language: reStructuredText documentation format
+" Maintainer: Marshall Ward <marshall.ward@gmail.com>
+" Original Maintainer: Nikolai Weibull <now@bitwi.se>
+" Website: https://github.com/marshallward/vim-restructuredtext
+" Latest Revision: 2018-01-07
if exists("b:did_ftplugin")
- finish
+ finish
endif
let b:did_ftplugin = 1
@@ -16,5 +18,25 @@ let b:undo_ftplugin = "setl com< cms< et< fo<"
setlocal comments=fb:.. commentstring=..\ %s expandtab
setlocal formatoptions+=tcroql
+" reStructuredText standard recommends that tabs be expanded to 8 spaces
+" The choice of 3-space indentation is to provide slightly better support for
+" directives (..) and ordered lists (1.), although it can cause problems for
+" many other cases.
+"
+" More sophisticated indentation rules should be revisted in the future.
+
+if !exists("g:rst_style") || g:rst_style != 0
+ setlocal expandtab shiftwidth=3 softtabstop=3 tabstop=8
+endif
+
+if has('patch-7.3.867') " Introduced the TextChanged event.
+ setlocal foldmethod=expr
+ setlocal foldexpr=RstFold#GetRstFold()
+ setlocal foldtext=RstFold#GetRstFoldText()
+ augroup RstFold
+ autocmd TextChanged,InsertLeave <buffer> unlet! b:RstFoldCache
+ augroup END
+endif
+
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/ruby.vim b/runtime/ftplugin/ruby.vim
index 9630a940ab..84fb9930a4 100644
--- a/runtime/ftplugin/ruby.vim
+++ b/runtime/ftplugin/ruby.vim
@@ -28,12 +28,13 @@ if exists("loaded_matchit") && !exists("b:match_words")
\ ':' .
\ '\<\%(else\|elsif\|ensure\|when\|rescue\|break\|redo\|next\|retry\)\>' .
\ ':' .
- \ '\<end\>' .
+ \ '\%(^\|[^.\:@$]\)\@<=\<end\:\@!\>' .
\ ',{:},\[:\],(:)'
let b:match_skip =
\ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" .
\ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|" .
+ \ "Regexp\\|RegexpDelimiter\\|" .
\ "Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|" .
\ "ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|" .
\ "Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|" .
@@ -43,7 +44,7 @@ endif
setlocal formatoptions-=t formatoptions+=croql
setlocal include=^\\s*\\<\\(load\\>\\\|require\\>\\\|autoload\\s*:\\=[\"']\\=\\h\\w*[\"']\\=,\\)
-setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.rb','')
+setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'\%(\.rb\)\=$','.rb','')
setlocal suffixesadd=.rb
if exists("&ofu") && has("ruby")
@@ -66,32 +67,32 @@ if !exists('g:ruby_version_paths')
let g:ruby_version_paths = {}
endif
-function! s:query_path(root)
+function! s:query_path(root) abort
let code = "print $:.join %q{,}"
- if &shell =~# 'sh' && $PATH !~# '\s'
- let prefix = 'env PATH='.$PATH.' '
+ if &shell =~# 'sh'
+ let prefix = 'env PATH='.shellescape($PATH).' '
else
let prefix = ''
endif
if &shellxquote == "'"
- let path_check = prefix.'ruby -e "' . code . '"'
+ let path_check = prefix.'ruby --disable-gems -e "' . code . '"'
else
- let path_check = prefix."ruby -e '" . code . "'"
+ let path_check = prefix."ruby --disable-gems -e '" . code . "'"
endif
let cd = haslocaldir() ? 'lcd' : 'cd'
- let cwd = getcwd()
+ let cwd = fnameescape(getcwd())
try
exe cd fnameescape(a:root)
let path = split(system(path_check),',')
- exe cd fnameescape(cwd)
+ exe cd cwd
return path
finally
- exe cd fnameescape(cwd)
+ exe cd cwd
endtry
endfunction
-function! s:build_path(path)
+function! s:build_path(path) abort
let path = join(map(copy(a:path), 'v:val ==# "." ? "" : v:val'), ',')
if &g:path !~# '\v^\.%(,/%(usr|emx)/include)=,,$'
let path = substitute(&g:path,',,$',',','') . ',' . path
@@ -101,7 +102,7 @@ endfunction
if !exists('b:ruby_version') && !exists('g:ruby_path') && isdirectory(expand('%:p:h'))
let s:version_file = findfile('.ruby-version', '.;')
- if !empty(s:version_file)
+ if !empty(s:version_file) && filereadable(s:version_file)
let b:ruby_version = get(readfile(s:version_file, '', 1), '')
if !has_key(g:ruby_version_paths, b:ruby_version)
let g:ruby_version_paths[b:ruby_version] = s:query_path(fnamemodify(s:version_file, ':p:h'))
@@ -135,7 +136,7 @@ if exists('s:ruby_paths') && stridx(&l:tags, join(map(copy(s:ruby_paths),'v:val.
let &l:tags = &tags . ',' . join(map(copy(s:ruby_paths),'v:val."/tags"'),',')
endif
-if has("gui_win32") && !exists("b:browsefilter")
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Ruby Source Files (*.rb)\t*.rb\n" .
\ "All Files (*.*)\t*.*\n"
endif
@@ -145,7 +146,22 @@ let b:undo_ftplugin = "setl fo< inc< inex< sua< def< com< cms< path< tags< kp<"
\."| if exists('&ofu') && has('ruby') | setl ofu< | endif"
\."| if has('balloon_eval') && exists('+bexpr') | setl bexpr< | endif"
+function! s:map(mode, flags, map) abort
+ let from = matchstr(a:map, '\S\+')
+ if empty(mapcheck(from, a:mode))
+ exe a:mode.'map' '<buffer>'.(a:0 ? a:1 : '') a:map
+ let b:undo_ftplugin .= '|sil! '.a:mode.'unmap <buffer> '.from
+ endif
+endfunction
+
+cmap <buffer><script><expr> <Plug><cword> substitute(RubyCursorIdentifier(),'^$',"\022\027",'')
+cmap <buffer><script><expr> <Plug><cfile> substitute(RubyCursorFile(),'^$',"\022\006",'')
+let b:undo_ftplugin .= "| sil! cunmap <buffer> <Plug><cword>| sil! cunmap <buffer> <Plug><cfile>"
+
if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
+ nmap <buffer><script> <SID>: :<C-U>
+ nmap <buffer><script> <SID>c: :<C-U><C-R>=v:count ? v:count : ''<CR>
+
nnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','b','n')<CR>
nnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','','n')<CR>
nnoremap <silent> <buffer> [M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','b','n')<CR>
@@ -168,7 +184,7 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
\."| sil! exe 'unmap <buffer> [[' | sil! exe 'unmap <buffer> ]]' | sil! exe 'unmap <buffer> []' | sil! exe 'unmap <buffer> ]['"
\."| sil! exe 'unmap <buffer> [m' | sil! exe 'unmap <buffer> ]m' | sil! exe 'unmap <buffer> [M' | sil! exe 'unmap <buffer> ]M'"
- if maparg('im','n') == ''
+ if maparg('im','x') == '' && maparg('im','o') == '' && maparg('am','x') == '' && maparg('am','o') == ''
onoremap <silent> <buffer> im :<C-U>call <SID>wrap_i('[m',']M')<CR>
onoremap <silent> <buffer> am :<C-U>call <SID>wrap_a('[m',']M')<CR>
xnoremap <silent> <buffer> im :<C-U>call <SID>wrap_i('[m',']M')<CR>
@@ -178,7 +194,7 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
\."| sil! exe 'xunmap <buffer> im' | sil! exe 'xunmap <buffer> am'"
endif
- if maparg('iM','n') == ''
+ if maparg('iM','x') == '' && maparg('iM','o') == '' && maparg('aM','x') == '' && maparg('aM','o') == ''
onoremap <silent> <buffer> iM :<C-U>call <SID>wrap_i('[[','][')<CR>
onoremap <silent> <buffer> aM :<C-U>call <SID>wrap_a('[[','][')<CR>
xnoremap <silent> <buffer> iM :<C-U>call <SID>wrap_i('[[','][')<CR>
@@ -188,33 +204,24 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
\."| sil! exe 'xunmap <buffer> iM' | sil! exe 'xunmap <buffer> aM'"
endif
- if maparg("\<C-]>",'n') == ''
- nnoremap <silent> <buffer> <C-]> :<C-U>exe v:count1."tag <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> g<C-]> :<C-U>exe "tjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> g] :<C-U>exe "tselect <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> <C-W>] :<C-U>exe v:count1."stag <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> <C-W><C-]> :<C-U>exe v:count1."stag <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> <C-W>g<C-]> :<C-U>exe "stjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> <C-W>g] :<C-U>exe "stselect <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> <C-W>} :<C-U>exe "ptag <C-R>=RubyCursorIdentifier()<CR>"<CR>
- nnoremap <silent> <buffer> <C-W>g} :<C-U>exe "ptjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
- let b:undo_ftplugin = b:undo_ftplugin
- \."| sil! exe 'nunmap <buffer> <C-]>'| sil! exe 'nunmap <buffer> g<C-]>'| sil! exe 'nunmap <buffer> g]'"
- \."| sil! exe 'nunmap <buffer> <C-W>]'| sil! exe 'nunmap <buffer> <C-W><C-]>'"
- \."| sil! exe 'nunmap <buffer> <C-W>g<C-]>'| sil! exe 'nunmap <buffer> <C-W>g]'"
- \."| sil! exe 'nunmap <buffer> <C-W>}'| sil! exe 'nunmap <buffer> <C-W>g}'"
- endif
-
- if maparg("gf",'n') == ''
- " By using findfile() rather than gf's normal behavior, we prevent
- " erroneously editing a directory.
- nnoremap <silent> <buffer> gf :<C-U>exe <SID>gf(v:count1,"gf",'edit')<CR>
- nnoremap <silent> <buffer> <C-W>f :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>f",'split')<CR>
- nnoremap <silent> <buffer> <C-W><C-F> :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>\<Lt>C-F>",'split')<CR>
- nnoremap <silent> <buffer> <C-W>gf :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>gf",'tabedit')<CR>
- let b:undo_ftplugin = b:undo_ftplugin
- \."| sil! exe 'nunmap <buffer> gf' | sil! exe 'nunmap <buffer> <C-W>f' | sil! exe 'nunmap <buffer> <C-W><C-F>' | sil! exe 'nunmap <buffer> <C-W>gf'"
- endif
+ call s:map('c', '', '<C-R><C-W> <Plug><cword>')
+ call s:map('c', '', '<C-R><C-F> <Plug><cfile>')
+
+ cmap <buffer><script><expr> <SID>tagzv &foldopen =~# 'tag' ? '<Bar>norm! zv' : ''
+ call s:map('n', '<silent>', '<C-]> <SID>:exe v:count1."tag <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', 'g<C-]> <SID>:exe "tjump <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', 'g] <SID>:exe "tselect <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', '<C-W>] <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', '<C-W><C-]> <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', '<C-W>g<C-]> <SID>:exe "stjump <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', '<C-W>g] <SID>:exe "stselect <Plug><cword>"<SID>tagzv<CR>')
+ call s:map('n', '<silent>', '<C-W>} <SID>:exe v:count1."ptag <Plug><cword>"<CR>')
+ call s:map('n', '<silent>', '<C-W>g} <SID>:exe "ptjump <Plug><cword>"<CR>')
+
+ call s:map('n', '<silent>', 'gf <SID>c:find <Plug><cfile><CR>')
+ call s:map('n', '<silent>', '<C-W>f <SID>c:sfind <Plug><cfile><CR>')
+ call s:map('n', '<silent>', '<C-W><C-F> <SID>c:sfind <Plug><cfile><CR>')
+ call s:map('n', '<silent>', '<C-W>gf <SID>c:tabfind <Plug><cfile><CR>')
endif
let &cpo = s:cpo_save
@@ -225,7 +232,7 @@ if exists("g:did_ruby_ftplugin_functions")
endif
let g:did_ruby_ftplugin_functions = 1
-function! RubyBalloonexpr()
+function! RubyBalloonexpr() abort
if !exists('s:ri_found')
let s:ri_found = executable('ri')
endif
@@ -274,13 +281,13 @@ function! RubyBalloonexpr()
endif
endfunction
-function! s:searchsyn(pattern,syn,flags,mode)
+function! s:searchsyn(pattern, syn, flags, mode) abort
+ let cnt = v:count1
norm! m'
if a:mode ==# 'v'
norm! gv
endif
let i = 0
- let cnt = v:count ? v:count : 1
while i < cnt
let i = i + 1
let line = line('.')
@@ -296,11 +303,11 @@ function! s:searchsyn(pattern,syn,flags,mode)
endwhile
endfunction
-function! s:synname()
+function! s:synname() abort
return synIDattr(synID(line('.'),col('.'),0),'name')
endfunction
-function! s:wrap_i(back,forward)
+function! s:wrap_i(back,forward) abort
execute 'norm k'.a:forward
let line = line('.')
execute 'norm '.a:back
@@ -310,7 +317,7 @@ function! s:wrap_i(back,forward)
execute 'norm jV'.a:forward.'k'
endfunction
-function! s:wrap_a(back,forward)
+function! s:wrap_a(back,forward) abort
execute 'norm '.a:forward
if line('.') < line('$') && getline(line('.')+1) ==# ''
let after = 1
@@ -328,37 +335,55 @@ function! s:wrap_a(back,forward)
endif
endfunction
-function! RubyCursorIdentifier()
+function! RubyCursorIdentifier() abort
let asciicode = '\%(\w\|[]})\"'."'".']\)\@<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)'
let number = '\%(\%(\w\|[]})\"'."'".']\s*\)\@<!-\)\=\%(\<[[:digit:]_]\+\%(\.[[:digit:]_]\+\)\=\%([Ee][[:digit:]_]\+\)\=\>\|\<0[xXbBoOdD][[:xdigit:]_]\+\>\)\|'.asciicode
let operator = '\%(\[\]\|<<\|<=>\|[!<>]=\=\|===\=\|[!=]\~\|>>\|\*\*\|\.\.\.\=\|=>\|[~^&|*/%+-]\)'
- let method = '\%(\<[_a-zA-Z]\w*\>\%([?!]\|\s*=>\@!\)\=\)'
+ let method = '\%(\.[_a-zA-Z]\w*\s*=>\@!\|\<[_a-zA-Z]\w*\>[?!]\=\)'
let global = '$\%([!$&"'."'".'*+,./:;<=>?@\`~]\|-\=\w\+\>\)'
let symbolizable = '\%(\%(@@\=\)\w\+\>\|'.global.'\|'.method.'\|'.operator.'\)'
let pattern = '\C\s*\%('.number.'\|\%(:\@<!:\)\='.symbolizable.'\)'
let [lnum, col] = searchpos(pattern,'bcn',line('.'))
let raw = matchstr(getline('.')[col-1 : ],pattern)
- let stripped = substitute(substitute(raw,'\s\+=$','=',''),'^\s*:\=','','')
+ let stripped = substitute(substitute(raw,'\s\+=$','=',''),'^\s*[:.]\=','','')
return stripped == '' ? expand("<cword>") : stripped
endfunction
-function! s:gf(count,map,edit) abort
- if getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
- let target = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1')
- return a:edit.' %:h/'.target.'.rb'
- elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
- let target = matchstr(getline('.'),'\(["'']\)\.\./\zs.\{-\}\ze\1')
- return a:edit.' %:h/'.target.'.rb'
+function! RubyCursorFile() abort
+ let isfname = &isfname
+ try
+ set isfname+=:
+ let cfile = expand('<cfile>')
+ finally
+ let isfname = &isfname
+ endtry
+ let pre = matchstr(strpart(getline('.'), 0, col('.')-1), '.*\f\@<!')
+ let post = matchstr(strpart(getline('.'), col('.')), '\f\@!.*')
+ let ext = getline('.') =~# '^\s*\%(require\%(_relative\)\=\|autoload\)\>' && cfile !~# '\.rb$' ? '.rb' : ''
+ if s:synname() ==# 'rubyConstant'
+ let cfile = substitute(cfile,'\.\w\+[?!=]\=$','','')
+ let cfile = substitute(cfile,'::','/','g')
+ let cfile = substitute(cfile,'\(\u\+\)\(\u\l\)','\1_\2', 'g')
+ let cfile = substitute(cfile,'\(\l\|\d\)\(\u\)','\1_\2', 'g')
+ return tolower(cfile) . '.rb'
+ elseif getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
+ let cfile = expand('%:p:h') . '/' . matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
+ elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
+ let target = matchstr(getline('.'),'\(["'']\)\.\.\zs/.\{-\}\ze\1')
+ let cfile = expand('%:p:h') . target . ext
elseif getline('.') =~# '^\s*\%(require \|load \|autoload :\w\+,\)\s*\(["'']\).*\1\s*$'
- let target = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1')
+ let cfile = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
+ elseif pre.post =~# '\<File.expand_path[( ].*[''"]\{2\}, *__FILE__\>' && cfile =~# '^\.\.'
+ let cfile = expand('%:p:h') . strpart(cfile, 2)
else
- let target = expand('<cfile>')
+ return substitute(cfile, '\C\v^(.*):(\d+)%(:in)=$', '+\2 \1', '')
endif
- let found = findfile(target, &path, a:count)
- if found ==# ''
- return 'norm! '.a:count.a:map
+ let cwdpat = '^\M' . substitute(getcwd(), '[\/]', '\\[\\/]', 'g').'\ze\[\/]'
+ let cfile = substitute(cfile, cwdpat, '.', '')
+ if fnameescape(cfile) !=# cfile
+ return '+ '.fnameescape(cfile)
else
- return a:edit.' '.fnameescape(found)
+ return cfile
endif
endfunction
diff --git a/runtime/ftplugin/rust.vim b/runtime/ftplugin/rust.vim
new file mode 100644
index 0000000000..7efca5985b
--- /dev/null
+++ b/runtime/ftplugin/rust.vim
@@ -0,0 +1,197 @@
+" Language: Rust
+" Description: Vim ftplugin for Rust
+" Maintainer: Chris Morgan <me@chrismorgan.info>
+" Maintainer: Kevin Ballard <kevin@sb.org>
+" Last Change: June 08, 2016
+" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+augroup rust.vim
+autocmd!
+
+" Variables {{{1
+
+" The rust source code at present seems to typically omit a leader on /*!
+" comments, so we'll use that as our default, but make it easy to switch.
+" This does not affect indentation at all (I tested it with and without
+" leader), merely whether a leader is inserted by default or not.
+if exists("g:rust_bang_comment_leader") && g:rust_bang_comment_leader != 0
+ " Why is the `,s0:/*,mb:\ ,ex:*/` there, you ask? I don't understand why,
+ " but without it, */ gets indented one space even if there were no
+ " leaders. I'm fairly sure that's a Vim bug.
+ setlocal comments=s1:/*,mb:*,ex:*/,s0:/*,mb:\ ,ex:*/,:///,://!,://
+else
+ setlocal comments=s0:/*!,m:\ ,ex:*/,s1:/*,mb:*,ex:*/,:///,://!,://
+endif
+setlocal commentstring=//%s
+setlocal formatoptions-=t formatoptions+=croqnl
+" j was only added in 7.3.541, so stop complaints about its nonexistence
+silent! setlocal formatoptions+=j
+
+" smartindent will be overridden by indentexpr if filetype indent is on, but
+" otherwise it's better than nothing.
+setlocal smartindent nocindent
+
+if !exists("g:rust_recommended_style") || g:rust_recommended_style != 0
+ setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab
+ setlocal textwidth=99
+endif
+
+" This includeexpr isn't perfect, but it's a good start
+setlocal includeexpr=substitute(v:fname,'::','/','g')
+
+setlocal suffixesadd=.rs
+
+if exists("g:ftplugin_rust_source_path")
+ let &l:path=g:ftplugin_rust_source_path . ',' . &l:path
+endif
+
+if exists("g:loaded_delimitMate")
+ if exists("b:delimitMate_excluded_regions")
+ let b:rust_original_delimitMate_excluded_regions = b:delimitMate_excluded_regions
+ endif
+
+ let s:delimitMate_extra_excluded_regions = ',rustLifetimeCandidate,rustGenericLifetimeCandidate'
+
+ " For this buffer, when delimitMate issues the `User delimitMate_map`
+ " event in the autocommand system, add the above-defined extra excluded
+ " regions to delimitMate's state, if they have not already been added.
+ autocmd User <buffer>
+ \ if expand('<afile>') ==# 'delimitMate_map' && match(
+ \ delimitMate#Get("excluded_regions"),
+ \ s:delimitMate_extra_excluded_regions) == -1
+ \| let b:delimitMate_excluded_regions =
+ \ delimitMate#Get("excluded_regions")
+ \ . s:delimitMate_extra_excluded_regions
+ \|endif
+
+ " For this buffer, when delimitMate issues the `User delimitMate_unmap`
+ " event in the autocommand system, delete the above-defined extra excluded
+ " regions from delimitMate's state (the deletion being idempotent and
+ " having no effect if the extra excluded regions are not present in the
+ " targeted part of delimitMate's state).
+ autocmd User <buffer>
+ \ if expand('<afile>') ==# 'delimitMate_unmap'
+ \| let b:delimitMate_excluded_regions = substitute(
+ \ delimitMate#Get("excluded_regions"),
+ \ '\C\V' . s:delimitMate_extra_excluded_regions,
+ \ '', 'g')
+ \|endif
+endif
+
+if has("folding") && exists('g:rust_fold') && g:rust_fold != 0
+ let b:rust_set_foldmethod=1
+ setlocal foldmethod=syntax
+ if g:rust_fold == 2
+ setlocal foldlevel<
+ else
+ setlocal foldlevel=99
+ endif
+endif
+
+if has('conceal') && exists('g:rust_conceal') && g:rust_conceal != 0
+ let b:rust_set_conceallevel=1
+ setlocal conceallevel=2
+endif
+
+" Motion Commands {{{1
+
+" Bind motion commands to support hanging indents
+nnoremap <silent> <buffer> [[ :call rust#Jump('n', 'Back')<CR>
+nnoremap <silent> <buffer> ]] :call rust#Jump('n', 'Forward')<CR>
+xnoremap <silent> <buffer> [[ :call rust#Jump('v', 'Back')<CR>
+xnoremap <silent> <buffer> ]] :call rust#Jump('v', 'Forward')<CR>
+onoremap <silent> <buffer> [[ :call rust#Jump('o', 'Back')<CR>
+onoremap <silent> <buffer> ]] :call rust#Jump('o', 'Forward')<CR>
+
+" Commands {{{1
+
+" See |:RustRun| for docs
+command! -nargs=* -complete=file -bang -buffer RustRun call rust#Run(<bang>0, <q-args>)
+
+" See |:RustExpand| for docs
+command! -nargs=* -complete=customlist,rust#CompleteExpand -bang -buffer RustExpand call rust#Expand(<bang>0, <q-args>)
+
+" See |:RustEmitIr| for docs
+command! -nargs=* -buffer RustEmitIr call rust#Emit("llvm-ir", <q-args>)
+
+" See |:RustEmitAsm| for docs
+command! -nargs=* -buffer RustEmitAsm call rust#Emit("asm", <q-args>)
+
+" See |:RustPlay| for docs
+command! -range=% RustPlay :call rust#Play(<count>, <line1>, <line2>, <f-args>)
+
+" See |:RustFmt| for docs
+command! -buffer RustFmt call rustfmt#Format()
+
+" See |:RustFmtRange| for docs
+command! -range -buffer RustFmtRange call rustfmt#FormatRange(<line1>, <line2>)
+
+" Mappings {{{1
+
+" Bind ⌘R in MacVim to :RustRun
+nnoremap <silent> <buffer> <D-r> :RustRun<CR>
+" Bind ⌘⇧R in MacVim to :RustRun! pre-filled with the last args
+nnoremap <buffer> <D-R> :RustRun! <C-r>=join(b:rust_last_rustc_args)<CR><C-\>erust#AppendCmdLine(' -- ' . join(b:rust_last_args))<CR>
+
+if !exists("b:rust_last_rustc_args") || !exists("b:rust_last_args")
+ let b:rust_last_rustc_args = []
+ let b:rust_last_args = []
+endif
+
+" Cleanup {{{1
+
+let b:undo_ftplugin = "
+ \ setlocal formatoptions< comments< commentstring< includeexpr< suffixesadd<
+ \|setlocal tabstop< shiftwidth< softtabstop< expandtab< textwidth<
+ \|if exists('b:rust_original_delimitMate_excluded_regions')
+ \|let b:delimitMate_excluded_regions = b:rust_original_delimitMate_excluded_regions
+ \|unlet b:rust_original_delimitMate_excluded_regions
+ \|else
+ \|unlet! b:delimitMate_excluded_regions
+ \|endif
+ \|if exists('b:rust_set_foldmethod')
+ \|setlocal foldmethod< foldlevel<
+ \|unlet b:rust_set_foldmethod
+ \|endif
+ \|if exists('b:rust_set_conceallevel')
+ \|setlocal conceallevel<
+ \|unlet b:rust_set_conceallevel
+ \|endif
+ \|unlet! b:rust_last_rustc_args b:rust_last_args
+ \|delcommand RustRun
+ \|delcommand RustExpand
+ \|delcommand RustEmitIr
+ \|delcommand RustEmitAsm
+ \|delcommand RustPlay
+ \|nunmap <buffer> <D-r>
+ \|nunmap <buffer> <D-R>
+ \|nunmap <buffer> [[
+ \|nunmap <buffer> ]]
+ \|xunmap <buffer> [[
+ \|xunmap <buffer> ]]
+ \|ounmap <buffer> [[
+ \|ounmap <buffer> ]]
+ \|set matchpairs-=<:>
+ \"
+
+" }}}1
+
+" Code formatting on save
+if get(g:, "rustfmt_autosave", 0)
+ autocmd BufWritePre *.rs silent! call rustfmt#Format()
+endif
+
+augroup END
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set noet sw=8 ts=8:
diff --git a/runtime/ftplugin/sass.vim b/runtime/ftplugin/sass.vim
index 64232a0894..d6909e7ad5 100644
--- a/runtime/ftplugin/sass.vim
+++ b/runtime/ftplugin/sass.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2010 Jul 26
+" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -9,8 +9,9 @@ if exists("b:did_ftplugin")
endif
let b:did_ftplugin = 1
-let b:undo_ftplugin = "setl cms< def< inc< inex< ofu< sua<"
+let b:undo_ftplugin = "setl com< cms< def< inc< inex< ofu< sua<"
+setlocal comments=://
setlocal commentstring=//\ %s
setlocal define=^\\s*\\%(@mixin\\\|=\\)
setlocal includeexpr=substitute(v:fname,'\\%(.*/\\\|^\\)\\zs','_','')
diff --git a/runtime/ftplugin/sbt.vim b/runtime/ftplugin/sbt.vim
new file mode 100644
index 0000000000..309d30e503
--- /dev/null
+++ b/runtime/ftplugin/sbt.vim
@@ -0,0 +1,15 @@
+" Vim filetype plugin file
+" Language: sbt
+" Maintainer: Steven Dobay <stevendobay at protonmail.com>
+" License: Same as Vim
+" Last Change: 2017.04.30
+" ----------------------------------------------------------------------------
+
+if exists('b:did_ftplugin') || &cp
+ finish
+endif
+
+let b:did_ftplugin = 1
+
+runtime! ftplugin/scala.vim
+
diff --git a/runtime/ftplugin/scala.vim b/runtime/ftplugin/scala.vim
new file mode 100644
index 0000000000..18e16f1d5b
--- /dev/null
+++ b/runtime/ftplugin/scala.vim
@@ -0,0 +1,35 @@
+" Vim filetype plugin file
+" Language: Scala
+" Maintainer: Derek Wyatt
+" URL: https://github.com/derekwyatt/vim-scala
+" License: Same as Vim
+" Last Change: 02 August 2016
+" ----------------------------------------------------------------------------
+
+if exists('b:did_ftplugin') || &cp
+ finish
+endif
+let b:did_ftplugin = 1
+
+" j is fairly new in Vim, so don't complain if it's not there
+setlocal formatoptions-=t formatoptions+=croqnl
+silent! setlocal formatoptions+=j
+
+" Just like c.vim, but additionally doesn't wrap text onto /** line when
+" formatting. Doesn't bungle bulleted lists when formatting.
+if get(g:, 'scala_scaladoc_indent', 0)
+ setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s2:/**,mb:*,ex:*/,s1:/*,mb:*,ex:*/,://
+else
+ setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/**,mb:*,ex:*/,s1:/*,mb:*,ex:*/,://
+endif
+setlocal commentstring=//\ %s
+
+setlocal shiftwidth=2 softtabstop=2 expandtab
+
+setlocal include='^\s*import'
+setlocal includeexpr='substitute(v:fname,"\\.","/","g")'
+
+setlocal path+=src/main/scala,src/test/scala
+setlocal suffixesadd=.scala
+
+" vim:set sw=2 sts=2 ts=8 et:
diff --git a/runtime/ftplugin/scheme.vim b/runtime/ftplugin/scheme.vim
index ab1543a5ee..62fd327e07 100644
--- a/runtime/ftplugin/scheme.vim
+++ b/runtime/ftplugin/scheme.vim
@@ -1,45 +1,57 @@
-" Vim filetype plugin
-" Language: Scheme
-" Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
-" URL: http://sites.google.com/site/khorser/opensource/vim
-" Original author: Dorai Sitaram <ds26@gte.com>
-" Original URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
-" Last Change: Oct 23, 2013
-
-" Only do this when not done yet for this buffer
-if exists("b:did_ftplugin")
+" Vim filetype plugin file
+" Language: Scheme (R7RS)
+" Last Change: 2018-03-05
+" Author: Evan Hanson <evhan@foldling.org>
+" Maintainer: Evan Hanson <evhan@foldling.org>
+" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
+" URL: https://foldling.org/vim/ftplugin/scheme.vim
+
+if exists('b:did_ftplugin')
finish
endif
-" Don't load another plugin for this buffer
-let b:did_ftplugin = 1
+let s:cpo = &cpo
+set cpo&vim
-" Copy-paste from ftplugin/lisp.vim
-setl comments=:;
-setl define=^\\s*(def\\k*
-setl formatoptions-=t
-setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
setl lisp
+setl comments=:;;;;,:;;;,:;;,:;,sr:#\|,mb:\|,ex:\|#
setl commentstring=;%s
+setl define=^\\s*(def\\k*
+setl iskeyword=33,35-39,42-43,45-58,60-90,94,95,97-122,126
-setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#
+let b:undo_ftplugin = 'setl lisp< comments< commentstring< define< iskeyword<'
-" Scheme-specific settings
-if exists("b:is_mzscheme") || exists("is_mzscheme")
- " improve indenting
- setl iskeyword+=#,%,^
- setl lispwords+=module,parameterize,let-values,let*-values,letrec-values
- setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
- setl lispwords+=define-signature,unit,unit/sig,compund-unit/sig,define-values/invoke-unit/sig
-endif
+setl lispwords=case
+setl lispwords+=define
+setl lispwords+=define-record-type
+setl lispwords+=define-syntax
+setl lispwords+=define-values
+setl lispwords+=do
+setl lispwords+=guard
+setl lispwords+=lambda
+setl lispwords+=let
+setl lispwords+=let*
+setl lispwords+=let*-values
+setl lispwords+=let-syntax
+setl lispwords+=let-values
+setl lispwords+=letrec
+setl lispwords+=letrec*
+setl lispwords+=letrec-syntax
+setl lispwords+=parameterize
+setl lispwords+=set!
+setl lispwords+=syntax-rules
+setl lispwords+=unless
+setl lispwords+=when
+
+let b:undo_ftplugin = b:undo_ftplugin . ' lispwords<'
-if exists("b:is_chicken") || exists("is_chicken")
- " improve indenting
- setl iskeyword+=#,%,^
- setl lispwords+=let-optionals,let-optionals*,declare
- setl lispwords+=let-values,let*-values,letrec-values
- setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
- setl lispwords+=cond-expand,and-let*,foreign-lambda,foreign-lambda*
+let b:did_scheme_ftplugin = 1
+
+if exists('b:is_chicken') || exists('g:is_chicken')
+ exe 'ru! ftplugin/chicken.vim'
endif
-let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lispwords< lisp< commentstring<"
+unlet b:did_scheme_ftplugin
+let b:did_ftplugin = 1
+let &cpo = s:cpo
+unlet s:cpo
diff --git a/runtime/ftplugin/screen.vim b/runtime/ftplugin/screen.vim
index 95c3849556..c22089be2c 100644
--- a/runtime/ftplugin/screen.vim
+++ b/runtime/ftplugin/screen.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: screen(1) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: screen(1) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/scss.vim b/runtime/ftplugin/scss.vim
index 981fb1b881..287d298f4a 100644
--- a/runtime/ftplugin/scss.vim
+++ b/runtime/ftplugin/scss.vim
@@ -1,12 +1,13 @@
" Vim filetype plugin
" Language: SCSS
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2010 Jul 26
+" Last Change: 2016 Aug 29
if exists("b:did_ftplugin")
finish
endif
runtime! ftplugin/sass.vim
+setlocal comments=s1:/*,mb:*,ex:*/,://
" vim:set sw=2:
diff --git a/runtime/ftplugin/sensors.vim b/runtime/ftplugin/sensors.vim
index 813d14c0e1..c02a729405 100644
--- a/runtime/ftplugin/sensors.vim
+++ b/runtime/ftplugin/sensors.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: sensors.conf(5) - libsensors configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: sensors.conf(5) - libsensors configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/services.vim b/runtime/ftplugin/services.vim
index d34349ee28..dda08ac20a 100644
--- a/runtime/ftplugin/services.vim
+++ b/runtime/ftplugin/services.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: services(5) - Internet network services list
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: services(5) - Internet network services list
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/setserial.vim b/runtime/ftplugin/setserial.vim
index f9d5945787..e5823f4432 100644
--- a/runtime/ftplugin/setserial.vim
+++ b/runtime/ftplugin/setserial.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: setserial(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: setserial(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/sieve.vim b/runtime/ftplugin/sieve.vim
index 9a8759c024..3092b5d2d3 100644
--- a/runtime/ftplugin/sieve.vim
+++ b/runtime/ftplugin/sieve.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Sieve filtering language input file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: Sieve filtering language input file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/slpconf.vim b/runtime/ftplugin/slpconf.vim
index 0c45689672..a975a499e5 100644
--- a/runtime/ftplugin/slpconf.vim
+++ b/runtime/ftplugin/slpconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: RFC 2614 - An API for Service Location configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: RFC 2614 - An API for Service Location configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/slpreg.vim b/runtime/ftplugin/slpreg.vim
index e9d533e2d4..74c7285b66 100644
--- a/runtime/ftplugin/slpreg.vim
+++ b/runtime/ftplugin/slpreg.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: RFC 2614 - An API for Service Location registration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: RFC 2614 - An API for Service Location registration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/slpspi.vim b/runtime/ftplugin/slpspi.vim
index 8d64d476f1..633555e493 100644
--- a/runtime/ftplugin/slpspi.vim
+++ b/runtime/ftplugin/slpspi.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: RFC 2614 - An API for Service Location SPI file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: RFC 2614 - An API for Service Location SPI file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/spec.vim b/runtime/ftplugin/spec.vim
index 6d5bf4b806..2a961f8244 100644
--- a/runtime/ftplugin/spec.vim
+++ b/runtime/ftplugin/spec.vim
@@ -36,10 +36,11 @@ except ImportError:
else:
specfile = vim.current.buffer.name
if specfile:
+ rpm.delMacro("dist")
spec = rpm.spec(specfile)
- headers = spec.packages[0].header
- version = headers['Version']
- release = ".".join(headers['Release'].split(".")[:-1])
+ headers = spec.sourceHeader
+ version = headers["Version"]
+ release = headers["Release"]
vim.command("let ver = " + version)
vim.command("let rel = " + release)
PYEND
@@ -113,7 +114,10 @@ if !exists("*s:SpecChangelog")
endif
endif
if (chgline != -1)
+ let tmptime = v:lc_time
+ language time C
let parsed_format = "* ".strftime(format)." - ".ver."-".rel
+ execute "language time" tmptime
let release_info = "+ ".name."-".ver."-".rel
let wrong_format = 0
let wrong_release = 0
@@ -179,12 +183,8 @@ if !exists("*s:ParseRpmVars")
endif
let varname = strpart(a:str, start+2, end-(start+2))
execute a:strline
- let definestr = "^[ \t]*%define[ \t]\\+" . varname . "[ \t]\\+\\(.*\\)$"
+ let definestr = "^[ \t]*%(?:global|define)[ \t]\\+" . varname . "[ \t]\\+\\(.*\\)$"
let linenum = search(definestr, "bW")
- if (linenum == 0)
- let definestr = substitute(definestr, "%define", "%global", "")
- let linenum = search(definestr, "bW")
- endif
if (linenum != -1)
let ret = ret . substitute(getline(linenum), definestr, "\\1", "")
else
@@ -201,7 +201,7 @@ endif
let b:match_ignorecase = 0
let b:match_words =
- \ '^Name:^%description:^%clean:^%setup:^%build:^%install:^%files:' .
+ \ '^Name:^%description:^%clean:^%(?:auto)?setup:^%build:^%install:^%files:' .
\ '^%package:^%preun:^%postun:^%changelog'
let &cpo = s:cpo_save
diff --git a/runtime/ftplugin/sql.vim b/runtime/ftplugin/sql.vim
index c2bc857947..4d6fcd9564 100644
--- a/runtime/ftplugin/sql.vim
+++ b/runtime/ftplugin/sql.vim
@@ -1,8 +1,8 @@
" SQL filetype plugin file
" Language: SQL (Common for Oracle, Microsoft SQL Server, Sybase)
-" Version: 11.0
+" Version: 12.0
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
-" Last Change: 2013 May 13
+" Last Change: 2017 Mar 07
" Download: http://vim.sourceforge.net/script.php?script_id=454
" For more details please use:
@@ -36,6 +36,14 @@
"
" History
"
+" Version 12.0 (April 2013)
+"
+" NF: Added support for "BEGIN TRY ... END TRY ... BEGIN CATCH ... END CATCH
+" BF: This plugin is designed to be used with other plugins to enable the
+" SQL completion with Perl, Python, Java, ... The loading mechanism
+" was not checking if the SQL objects were created, which can lead to
+" the plugin not loading the SQL support.
+"
" Version 11.0 (May 2013)
"
" NF: Updated to use SyntaxComplete's new regex support for syntax groups.
@@ -80,15 +88,17 @@
" Only do this when not done yet for this buffer
-if exists("b:did_ftplugin")
- finish
+" This ftplugin can be used with other ftplugins. So ensure loading
+" happens if all elements of this plugin have not yet loaded.
+if exists("b:did_ftplugin") && exists("b:current_ftplugin") && b:current_ftplugin == 'sql'
+ finish
endif
let s:save_cpo = &cpo
set cpo&vim
" Disable autowrapping for code, but enable for comments
-" t Auto-wrap text using textwidth
+" t Auto-wrap text using textwidth
" c Auto-wrap comments using textwidth, inserting the current comment
" leader automatically.
setlocal formatoptions-=t
@@ -171,6 +181,9 @@ if !exists("*SQL_SetType")
if exists("b:current_syntax")
" echomsg 'SQLSetType - clearing syntax'
syntax clear
+ if exists("b:current_syntax")
+ unlet b:current_syntax
+ endif
endif
if exists("b:did_indent")
" echomsg 'SQLSetType - clearing indent'
@@ -187,7 +200,7 @@ if !exists("*SQL_SetType")
" Do not specify a buffer local variable if it is
" the default value
if new_sql_type == 'sql'
- let new_sql_type = 'sqloracle'
+ let new_sql_type = 'sqloracle'
endif
let b:sql_type_override = new_sql_type
@@ -234,25 +247,26 @@ if exists("b:sql_type_override")
" echo 'sourcing buffer ftplugin/'.b:sql_type_override.'.vim'
if globpath(&runtimepath, 'ftplugin/'.b:sql_type_override.'.vim') != ''
exec 'runtime ftplugin/'.b:sql_type_override.'.vim'
- " else
- " echomsg 'ftplugin/'.b:sql_type_override.' not exist, using default'
+ " else
+ " echomsg 'ftplugin/'.b:sql_type_override.' not exist, using default'
endif
elseif exists("g:sql_type_default")
" echo 'sourcing global ftplugin/'.g:sql_type_default.'.vim'
if globpath(&runtimepath, 'ftplugin/'.g:sql_type_default.'.vim') != ''
exec 'runtime ftplugin/'.g:sql_type_default.'.vim'
- " else
- " echomsg 'ftplugin/'.g:sql_type_default.'.vim not exist, using default'
+ " else
+ " echomsg 'ftplugin/'.g:sql_type_default.'.vim not exist, using default'
endif
endif
" If the above runtime command succeeded, do not load the default settings
-if exists("b:did_ftplugin")
- finish
+" as they should have already been loaded from a previous run.
+if exists("b:did_ftplugin") && exists("b:current_ftplugin") && b:current_ftplugin == 'sql'
+ finish
endif
let b:undo_ftplugin = "setl comments< formatoptions< define< omnifunc<" .
- \ " | unlet! b:browsefilter b:match_words"
+ \ " | unlet! b:browsefilter b:match_words"
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
@@ -261,7 +275,7 @@ let b:current_ftplugin = 'sql'
" Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "SQL Files (*.sql)\t*.sql\n" .
- \ "All Files (*.*)\t*.*\n"
+ \ "All Files (*.*)\t*.*\n"
endif
" Some standard expressions for use with the matchit strings
@@ -312,14 +326,24 @@ if !exists("b:match_words")
" WHEN column_not_found THEN
" WHEN OTHERS THEN
"
+ " begin try
+ " end try
+ " begin catch
+ " end catch
+ "
" create[ or replace] procedure|function|event
- " \ '^\s*\<\%(do\|for\|while\|loop\)\>.*:'.
+ " \ '^\s*\<\%(do\|for\|while\|loop\)\>.*:'.
" For ColdFusion support
setlocal matchpairs+=<:>
let b:match_words = &matchpairs .
- \ ',\<begin\>:\<end\>\W*$,'.
- \
+ \ ',\%(\<begin\)\%(\s\+\%(try\|catch\)\>\)\@!:\<end\>\W*$,'.
+ \
+ \ '\<begin\s\+try\>:'.
+ \ '\<end\s\+try\>:'.
+ \ '\<begin\s\+catch\>:'.
+ \ '\<end\s\+catch\>,'.
+ \
\ s:notend . '\<if\>:'.
\ '\<elsif\>\|\<elseif\>\|\<else\>:'.
\ '\<end\s\+if\>,'.
@@ -339,14 +363,14 @@ if !exists("b:match_words")
\ '\%(\<create\s\+' . s:or_replace . '\)\?'.
\ '\%(function\|procedure\|event\):'.
\ '\<returns\?\>'
- " \ '\<begin\>\|\<returns\?\>:'.
- " \ '\<end\>\(;\)\?\s*$'
- " \ '\<exception\>:'.s:when_no_matched_or_others.
- " \ ':\<when\s\+others\>,'.
- "
- " \ '\%(\<exception\>\|\%('. s:notend . '\<case\>\)\):'.
- " \ '\%(\<default\>\|'.s:when_no_matched_or_others.'\):'.
- " \ '\%(\%(\<when\s\+others\>\)\|\<end\s\+case\>\),' .
+ " \ '\<begin\>\|\<returns\?\>:'.
+ " \ '\<end\>\(;\)\?\s*$'
+ " \ '\<exception\>:'.s:when_no_matched_or_others.
+ " \ ':\<when\s\+others\>,'.
+ "
+ " \ '\%(\<exception\>\|\%('. s:notend . '\<case\>\)\):'.
+ " \ '\%(\<default\>\|'.s:when_no_matched_or_others.'\):'.
+ " \ '\%(\%(\<when\s\+others\>\)\|\<end\s\+case\>\),' .
endif
" Define how to find the macro definition of a variable using the various
diff --git a/runtime/ftplugin/sshconfig.vim b/runtime/ftplugin/sshconfig.vim
index f940af972e..d933ce0527 100644
--- a/runtime/ftplugin/sshconfig.vim
+++ b/runtime/ftplugin/sshconfig.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: OpenSSH client configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: OpenSSH client configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/sudoers.vim b/runtime/ftplugin/sudoers.vim
index 5756302178..38dbf559ee 100644
--- a/runtime/ftplugin/sudoers.vim
+++ b/runtime/ftplugin/sudoers.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: sudoers(5) configuration files
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: sudoers(5) configuration files
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/sysctl.vim b/runtime/ftplugin/sysctl.vim
index fb1098dd3b..8d331cea38 100644
--- a/runtime/ftplugin/sysctl.vim
+++ b/runtime/ftplugin/sysctl.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: sysctl.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: sysctl.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/terminfo.vim b/runtime/ftplugin/terminfo.vim
index 7ce31d1ca1..0ffcc58f58 100644
--- a/runtime/ftplugin/terminfo.vim
+++ b/runtime/ftplugin/terminfo.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: terminfo(5) definition
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: terminfo(5) definition
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/tmux.vim b/runtime/ftplugin/tmux.vim
new file mode 100644
index 0000000000..ed9154924b
--- /dev/null
+++ b/runtime/ftplugin/tmux.vim
@@ -0,0 +1,12 @@
+" Vim filetype plugin file
+" Language: tmux(1) configuration file
+" URL: https://github.com/ericpruitt/tmux.vim/
+" Maintainer: Eric Pruitt <eric.pruitt@gmail.com>
+" Last Changed: 2017 Mar 10
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal commentstring=#\ %s
diff --git a/runtime/ftplugin/treetop.vim b/runtime/ftplugin/treetop.vim
index 2da3c405f5..f978d15303 100644
--- a/runtime/ftplugin/treetop.vim
+++ b/runtime/ftplugin/treetop.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: Treetop
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2011-03-14
+" Language: Treetop
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2011-03-14
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/tutor.vim b/runtime/ftplugin/tutor.vim
index 1579753170..30783d9799 100644
--- a/runtime/ftplugin/tutor.vim
+++ b/runtime/ftplugin/tutor.vim
@@ -19,27 +19,27 @@ setlocal noundofile
setlocal keywordprg=:help
setlocal iskeyword=@,-,_
-setlocal foldmethod=expr
+" The user will have to enable the folds himself, but we provide the foldexpr
+" function.
+setlocal foldmethod=manual
setlocal foldexpr=tutor#TutorFolds()
-setlocal foldcolumn=1
setlocal foldlevel=4
-setlocal nowrap
-setlocal statusline=%{toupper(expand('%:t:r'))}\ tutorial%=
-setlocal statusline+=%{tutor#InfoText()}
+" Load metadata if it exists: {{{1
+if filereadable(expand('%').'.json')
+ call tutor#LoadMetadata()
+endif
" Mappings: {{{1
call tutor#SetNormalMappings()
-call tutor#SetSampleTextMappings()
" Checks: {{{1
sign define tutorok text=✓ texthl=tutorOK
sign define tutorbad text=✗ texthl=tutorX
-if !exists('g:tutor_debug') || g:tutor_debug == 0
- call tutor#PlaceXMarks()
- autocmd! TextChanged <buffer> call tutor#OnTextChanged()
- autocmd! TextChangedI <buffer> call tutor#OnTextChanged()
+if !exists('g:tutor_debug') || g:tutor_debug == 0
+ call tutor#ApplyMarks()
+ autocmd! TextChanged,TextChangedI <buffer> call tutor#ApplyMarksOnChanged()
endif
diff --git a/runtime/ftplugin/udevconf.vim b/runtime/ftplugin/udevconf.vim
index 6042e14413..0bbd86a0a4 100644
--- a/runtime/ftplugin/udevconf.vim
+++ b/runtime/ftplugin/udevconf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: udev(8) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: udev(8) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/udevperm.vim b/runtime/ftplugin/udevperm.vim
index e7ad31d071..f8fb4d4d99 100644
--- a/runtime/ftplugin/udevperm.vim
+++ b/runtime/ftplugin/udevperm.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: udev(8) permissions file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: udev(8) permissions file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/udevrules.vim b/runtime/ftplugin/udevrules.vim
index be8d646968..6404f6c85e 100644
--- a/runtime/ftplugin/udevrules.vim
+++ b/runtime/ftplugin/udevrules.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: udev(8) rules file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: udev(8) rules file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/updatedb.vim b/runtime/ftplugin/updatedb.vim
index f4e7bcebd5..3015918d70 100644
--- a/runtime/ftplugin/updatedb.vim
+++ b/runtime/ftplugin/updatedb.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: updatedb.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: updatedb.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/verilog.vim b/runtime/ftplugin/verilog.vim
index 6594f2ea90..cbf30a3185 100644
--- a/runtime/ftplugin/verilog.vim
+++ b/runtime/ftplugin/verilog.vim
@@ -1,8 +1,12 @@
" Vim filetype plugin file
" Language: Verilog HDL
-" Maintainer: Chih-Tsun Huang <cthuang@larc.ee.nthu.edu.tw>
-" Last Change: Wed Sep 3 15:24:49 CST 2008
-" URL: http://larc.ee.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
+" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
+" Last Change: 2017 Aug 25 by Chih-Tsun Huang
+" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
+"
+" Credits:
+" Suggestions for improvement, bug reports by
+" Shao <shaominghai2005@163.com>
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -45,11 +49,16 @@ if exists("loaded_matchit")
\ '\<begin\>:\<end\>,' .
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
\ '\<module\>:\<endmodule\>,' .
- \ '\<if\>:\<else\>,' .
+ \ '\<if\>:`\@<!\<else\>,' .
\ '\<function\>:\<endfunction\>,' .
- \ '`ifdef\>:`else\>:`endif\>,' .
+ \ '`ifn\?def\>:`elsif\>:`else\>:`endif\>,' .
\ '\<task\>:\<endtask\>,' .
- \ '\<specify\>:\<endspecify\>'
+ \ '\<specify\>:\<endspecify\>,' .
+ \ '\<config\>:\<endconfig\>,' .
+ \ '\<generate\>:\<endgenerate\>,' .
+ \ '\<fork\>:\<join\>,' .
+ \ '\<primitive\>:\<endprimitive\>,' .
+ \ '\<table\>:\<endtable\>'
endif
" Reset 'cpoptions' back to the user's setting
diff --git a/runtime/ftplugin/vim.vim b/runtime/ftplugin/vim.vim
index f355d2837d..34f5eb6db1 100644
--- a/runtime/ftplugin/vim.vim
+++ b/runtime/ftplugin/vim.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Vim
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2014 Sep 07
+" Last Change: 2018 Aug 07
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -14,8 +14,28 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo-=C
-let b:undo_ftplugin = "setl fo< isk< com< tw< commentstring<"
- \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
+if !exists('*VimFtpluginUndo')
+ func VimFtpluginUndo()
+ setl fo< isk< com< tw< commentstring< keywordprg<
+ if exists('b:did_add_maps')
+ silent! nunmap <buffer> [[
+ silent! vunmap <buffer> [[
+ silent! nunmap <buffer> ]]
+ silent! vunmap <buffer> ]]
+ silent! nunmap <buffer> []
+ silent! vunmap <buffer> []
+ silent! nunmap <buffer> ][
+ silent! vunmap <buffer> ][
+ silent! nunmap <buffer> ]"
+ silent! vunmap <buffer> ]"
+ silent! nunmap <buffer> ["
+ silent! vunmap <buffer> ["
+ endif
+ unlet! b:match_ignorecase b:match_words b:match_skip b:did_add_maps
+ endfunc
+endif
+
+let b:undo_ftplugin = "call VimFtpluginUndo()"
" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
@@ -25,6 +45,9 @@ setlocal fo-=t fo+=croql
" keyword character. E.g., for netrw#Nread().
setlocal isk+=#
+" Use :help to lookup the keyword under the cursor with K.
+setlocal keywordprg=:help
+
" Set 'comments' to format dashed lists in comments
setlocal com=sO:\"\ -,mO:\"\ \ ,eO:\"\",:\"
@@ -36,21 +59,28 @@ endif
" Comments start with a double quote
setlocal commentstring=\"%s
-" Move around functions.
-nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
-vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>
-nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR>
-vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR>
-nnoremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR>
-vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "bW")<CR>
-nnoremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR>
-vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "W")<CR>
-
-" Move around comments
-nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
-vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
-nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
-vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
+" Prefer Vim help instead of manpages.
+setlocal keywordprg=:help
+
+if !exists("no_plugin_maps") && !exists("no_vim_maps")
+ let b:did_add_maps = 1
+
+ " Move around functions.
+ nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
+ vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>
+ nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR>
+ vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR>
+ nnoremap <silent><buffer> [] m':call search('^\s*endf\%[unction]\>', "bW")<CR>
+ vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf\%[unction]\>', "bW")<CR>
+ nnoremap <silent><buffer> ][ m':call search('^\s*endf\%[unction]\>', "W")<CR>
+ vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf\%[unction]\>', "W")<CR>
+
+ " Move around comments
+ nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
+ vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
+ nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
+ vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
+endif
" Let the matchit plugin know what items can be matched.
if exists("loaded_matchit")
@@ -60,8 +90,7 @@ if exists("loaded_matchit")
\ '\<\(wh\%[ile]\|for\)\>:\<brea\%[k]\>:\<con\%[tinue]\>:\<end\(w\%[hile]\|fo\%[r]\)\>,' .
\ '\<if\>:\<el\%[seif]\>:\<en\%[dif]\>,' .
\ '\<try\>:\<cat\%[ch]\>:\<fina\%[lly]\>:\<endt\%[ry]\>,' .
- \ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,' .
- \ '(:)'
+ \ '\<aug\%[roup]\s\+\%(END\>\)\@!\S:\<aug\%[roup]\s\+END\>,'
" Ignore syntax region commands and settings, any 'en*' would clobber
" if-endif.
" - set spl=de,en
diff --git a/runtime/ftplugin/wast.vim b/runtime/ftplugin/wast.vim
new file mode 100644
index 0000000000..0d9e98d37a
--- /dev/null
+++ b/runtime/ftplugin/wast.vim
@@ -0,0 +1,17 @@
+" Vim filetype plugin file
+" Language: WebAssembly
+" Maintainer: rhysd <lin90162@yahoo.co.jp>
+" Last Change: Jul 29, 2018
+" For bugs, patches and license go to https://github.com/rhysd/vim-wasm
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal comments=s:(;,e:;),:;;
+setlocal commentstring=(;%s;)
+setlocal formatoptions-=t
+setlocal iskeyword+=$,.,/
+
+let b:undo_ftplugin = "setlocal comments< commentstring< formatoptions< iskeyword<"
diff --git a/runtime/ftplugin/xdefaults.vim b/runtime/ftplugin/xdefaults.vim
index cd851829ca..c1aff70176 100644
--- a/runtime/ftplugin/xdefaults.vim
+++ b/runtime/ftplugin/xdefaults.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: X resources files like ~/.Xdefaults (xrdb)
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: X resources files like ~/.Xdefaults (xrdb)
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/xf86conf.vim b/runtime/ftplugin/xf86conf.vim
index ab7569a100..5a21539dd5 100644
--- a/runtime/ftplugin/xf86conf.vim
+++ b/runtime/ftplugin/xf86conf.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: XFree86 Configuration File
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: XFree86 Configuration File
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/xinetd.vim b/runtime/ftplugin/xinetd.vim
index f209af18be..2b7b64e4fa 100644
--- a/runtime/ftplugin/xinetd.vim
+++ b/runtime/ftplugin/xinetd.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: xinetd.conf(5) configuration file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: xinetd.conf(5) configuration file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/xml.vim b/runtime/ftplugin/xml.vim
index 236e870537..573a6ba441 100644
--- a/runtime/ftplugin/xml.vim
+++ b/runtime/ftplugin/xml.vim
@@ -1,8 +1,10 @@
" Vim filetype plugin file
" Language: xml
-" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
-" Last Changed: 20 Jan 2009
-" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
+" Maintainer: Christian Brabandt <cb@256bit.org>
+" Last Changed: May 08th, 2018
+" Repository: https://github.com/chrisbra/vim-xml-ftplugin
+" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
+" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@@ -10,16 +12,16 @@ 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
+set cpo&vim
setlocal commentstring=<!--%s-->
-setlocal comments=s:<!--,m:\ \ \ \ \ ,e:-->
+" Remove the middlepart from the comments section, as this causes problems:
+" https://groups.google.com/d/msg/vim_dev/x4GT-nqa0Kg/jvtRnEbtAnMJ
+setlocal comments=s:<!--,e:-->
setlocal formatoptions-=t
-if !exists("g:ft_xml_autocomment") || (g:ft_xml_autocomment == 1)
- setlocal formatoptions+=croql
-endif
-
+setlocal formatoptions+=croql
+setlocal formatexpr=xmlformat#Format()
" XML: thanks to Johannes Zellner and Akbar Ibrahim
" - case sensitive
@@ -39,7 +41,6 @@ if exists("loaded_matchit")
\ '<\@<=\%([^ \t>/]\+\)\%(\s\+[^/>]*\|$\):/>'
endif
-"
" For Omni completion, by Mikolaj Machowski.
if exists('&ofu')
setlocal ofu=xmlcomplete#CompleteTags
@@ -47,17 +48,17 @@ endif
command! -nargs=+ XMLns call xmlcomplete#CreateConnection(<f-args>)
command! -nargs=? XMLent call xmlcomplete#CreateEntConnection(<f-args>)
-
" Change the :browse e filter to primarily show xml-related files.
-if has("gui_win32")
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter="XML Files (*.xml)\t*.xml\n" .
- \ "DTD Files (*.dtd)\t*.dtd\n" .
- \ "All Files (*.*)\t*.*\n"
+ \ "DTD Files (*.dtd)\t*.dtd\n" .
+ \ "XSD Files (*.xsd)\t*.xsd\n" .
+ \ "All Files (*.*)\t*.*\n"
endif
" Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" .
- \ " | unlet! b:match_ignorecase b:match_words b:browsefilter"
+let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions< formatexpr< " .
+ \ " | unlet! b:match_ignorecase b:match_words b:browsefilter"
" Restore the saved compatibility options.
let &cpo = s:save_cpo
diff --git a/runtime/ftplugin/xmodmap.vim b/runtime/ftplugin/xmodmap.vim
index 027ae09ff2..77fccd5b4d 100644
--- a/runtime/ftplugin/xmodmap.vim
+++ b/runtime/ftplugin/xmodmap.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: xmodmap(1) definition file
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: xmodmap(1) definition file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/yaml.vim b/runtime/ftplugin/yaml.vim
index b88803ab3a..ceff36f7e4 100644
--- a/runtime/ftplugin/yaml.vim
+++ b/runtime/ftplugin/yaml.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
-" Language: YAML (YAML Ain't Markup Language)
-" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" Language: YAML (YAML Ain't Markup Language)
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2008-07-09
if exists("b:did_ftplugin")
finish
diff --git a/runtime/ftplugin/zimbu.vim b/runtime/ftplugin/zimbu.vim
index 558aea7df0..24674776cb 100644
--- a/runtime/ftplugin/zimbu.vim
+++ b/runtime/ftplugin/zimbu.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Zimbu
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2012 Sep 08
+" Last Change: 2017 Dec 05
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -135,8 +135,10 @@ iabbr <buffer> <expr> until GCUpperSpace("until")
iabbr <buffer> <expr> while GCUpperSpace("while")
iabbr <buffer> <expr> repeat GCUpper("repeat")
-nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR>
-nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR>
+if !exists("no_plugin_maps") && !exists("no_zimbu_maps")
+ nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR>
+ nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR>
+endif
" Using a function makes sure the search pattern is restored
func! ZimbuGoStartBlock()
diff --git a/runtime/ftplugin/zsh.vim b/runtime/ftplugin/zsh.vim
index 6cbc380dc3..fe8efc59ab 100644
--- a/runtime/ftplugin/zsh.vim
+++ b/runtime/ftplugin/zsh.vim
@@ -1,10 +1,10 @@
" Vim filetype plugin file
-" Language: Zsh shell script
-" Maintainer: Christian Brabandt <cb@256bit.org>
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2015-05-29
-" License: Vim (see :h license)
-" Repository: https://github.com/chrisbra/vim-zsh
+" Language: Zsh shell script
+" Maintainer: Christian Brabandt <cb@256bit.org>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2017-11-22
+" License: Vim (see :h license)
+" Repository: https://github.com/chrisbra/vim-zsh
if exists("b:did_ftplugin")
finish
@@ -18,9 +18,7 @@ let b:undo_ftplugin = "setl com< cms< fo<"
setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
-let b:match_words =
- \ &matchpairs
- \ . ',\<if\>:\<elif\>:\<else\>:\<fi\>'
+let b:match_words = ',\<if\>:\<elif\>:\<else\>:\<fi\>'
\ . ',\<case\>:^\s*([^)]*):\<esac\>'
\ . ',\<\%(select\|while\|until\|repeat\|for\%(each\)\=\)\>:\<done\>'
let b:match_skip = 's:comment\|string\|heredoc\|subst'