aboutsummaryrefslogtreecommitdiff
path: root/runtime/ftplugin
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ftplugin')
-rw-r--r--runtime/ftplugin/arduino.vim66
-rw-r--r--runtime/ftplugin/asm.vim14
-rw-r--r--runtime/ftplugin/astro.vim186
-rw-r--r--runtime/ftplugin/bp.vim14
-rw-r--r--runtime/ftplugin/cgdbrc.vim21
-rw-r--r--runtime/ftplugin/checkhealth.vim3
-rw-r--r--runtime/ftplugin/cmake.vim5
-rw-r--r--runtime/ftplugin/dart.vim15
-rw-r--r--runtime/ftplugin/deb822sources.vim16
-rw-r--r--runtime/ftplugin/dts.vim16
-rw-r--r--runtime/ftplugin/gdb.vim12
-rw-r--r--runtime/ftplugin/graphql.vim13
-rw-r--r--runtime/ftplugin/hyprlang.vim13
-rw-r--r--runtime/ftplugin/java.vim60
-rw-r--r--runtime/ftplugin/jj.vim19
-rw-r--r--runtime/ftplugin/jq.vim16
-rw-r--r--runtime/ftplugin/kconfig.vim17
-rw-r--r--runtime/ftplugin/man.vim2
-rw-r--r--runtime/ftplugin/nim.vim13
-rw-r--r--runtime/ftplugin/ondir.vim18
-rw-r--r--runtime/ftplugin/prisma.vim13
-rw-r--r--runtime/ftplugin/purescript.vim14
-rw-r--r--runtime/ftplugin/python.vim23
-rw-r--r--runtime/ftplugin/requirements.vim43
-rw-r--r--runtime/ftplugin/rescript.vim13
-rw-r--r--runtime/ftplugin/roc.vim14
-rw-r--r--runtime/ftplugin/rust.vim31
-rw-r--r--runtime/ftplugin/sh.vim6
-rw-r--r--runtime/ftplugin/slint.vim15
-rw-r--r--runtime/ftplugin/sql.vim5
-rw-r--r--runtime/ftplugin/sshdconfig.vim10
-rw-r--r--runtime/ftplugin/stylus.vim54
-rw-r--r--runtime/ftplugin/tutor.vim2
-rw-r--r--runtime/ftplugin/typst.vim14
-rw-r--r--runtime/ftplugin/uci.vim21
-rw-r--r--runtime/ftplugin/v.vim15
-rw-r--r--runtime/ftplugin/verilog.vim4
-rw-r--r--runtime/ftplugin/vim.vim8
-rw-r--r--runtime/ftplugin/yaml.vim7
-rw-r--r--runtime/ftplugin/zathurarc.vim22
-rw-r--r--runtime/ftplugin/zig.vim60
-rw-r--r--runtime/ftplugin/zsh.vim4
42 files changed, 833 insertions, 104 deletions
diff --git a/runtime/ftplugin/arduino.vim b/runtime/ftplugin/arduino.vim
new file mode 100644
index 0000000000..dae3dd83d3
--- /dev/null
+++ b/runtime/ftplugin/arduino.vim
@@ -0,0 +1,66 @@
+" Vim filetype plugin file
+" Language: Arduino
+" Maintainer: The Vim Project <https://github.com/vim/vim>
+" Ken Takata <https://github.com/k-takata>
+" Last Change: 2024 Apr 12
+"
+" Most of the part was copied from c.vim.
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Using line continuation here.
+let s:cpo_save = &cpo
+set cpo-=C
+
+let b:undo_ftplugin = "setl fo< com< ofu< cms< def< inc<"
+
+if !exists("g:arduino_recommended_style") || g:arduino_recommended_style != 0
+ " Use the default setting of Arduino IDE.
+ setlocal expandtab tabstop=2 softtabstop=2 shiftwidth=2
+ let b:undo_ftplugin ..= " et< ts< sts< sw<"
+endif
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croql
+
+" These options have the right value as default, but the user may have
+" overruled that.
+setlocal commentstring& define& include&
+
+" Set completion with CTRL-X CTRL-O to autoloaded function.
+if exists('&ofu')
+ setlocal ofu=ccomplete#Complete
+endif
+
+" Set 'comments' to format dashed lists in comments.
+" Also include ///, used for Doxygen.
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
+
+" When the matchit plugin is loaded, this makes the % command skip parens and
+" braces in comments properly.
+if !exists("b:match_words")
+ 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'
+ let b:undo_ftplugin ..= " | unlet! b:match_skip b:match_words"
+endif
+
+" Win32 and GTK can filter files in the browse dialog
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
+ let b:browsefilter = "Arduino Source Files (*.ino, *.pde)\t*.ino;*.pde\n"
+ if has("win32")
+ let b:browsefilter ..= "All Files (*.*)\t*\n"
+ else
+ let b:browsefilter ..= "All Files (*)\t*\n"
+ endif
+ let b:undo_ftplugin ..= " | unlet! b:browsefilter"
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/asm.vim b/runtime/ftplugin/asm.vim
index f6a92d57d7..0ae1610394 100644
--- a/runtime/ftplugin/asm.vim
+++ b/runtime/ftplugin/asm.vim
@@ -1,13 +1,23 @@
" Vim filetype plugin file
" Language: asm
" Maintainer: Colin Caine <cmcaine at the common googlemail domain>
-" Last Change: 23 May 2020
+" Last Change: 2020 May 23
" 2023 Aug 28 by Vim Project (undo_ftplugin)
+" 2024 Apr 09 by Vim Project (add Matchit support)
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
+setl include=^\\s*%\\s*include
setl comments=:;,s1:/*,mb:*,ex:*/,://
setl commentstring=;%s
-let b:undo_ftplugin = "setl commentstring< comments<"
+let b:undo_ftplugin = "setl commentstring< comments< include<"
+
+" Matchit support
+if !exists('b:match_words')
+ let b:match_skip = 's:comment\|string\|character\|special'
+ let b:match_words = '^\s*%\s*if\%(\|num\|idn\|nidn\)\>:^\s*%\s*elif\>:^\s*%\s*else\>:^\s*%\s*endif\>,^\s*%\s*macro\>:^\s*%\s*endmacro\>,^\s*%\s*rep\>:^\s*%\s*endrep\>'
+ let b:match_ignorecase = 1
+ let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words b:match_skip"
+endif
diff --git a/runtime/ftplugin/astro.vim b/runtime/ftplugin/astro.vim
new file mode 100644
index 0000000000..0b0e03447b
--- /dev/null
+++ b/runtime/ftplugin/astro.vim
@@ -0,0 +1,186 @@
+" Vim filetype plugin file
+" Language: Astro
+" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
+" Last Change: 2024 Apr 21
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo-=C
+
+function! s:IdentifyScope(start, end) abort
+ let pos_start = searchpairpos(a:start, '', a:end, 'bnW')
+ let pos_end = searchpairpos(a:start, '', a:end, 'nW')
+
+ return pos_start != [0, 0]
+ \ && pos_end != [0, 0]
+ \ && pos_start[0] != getpos('.')[1]
+endfunction
+
+function! s:AstroComments() abort
+ if s:IdentifyScope('^---\n\s*\S', '^---\n\n')
+ \ || s:IdentifyScope('^\s*<script', '^\s*<\/script>')
+ " ECMAScript comments
+ setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
+ setlocal commentstring=//%s
+
+ elseif s:IdentifyScope('^\s*<style', '^\s*<\/style>')
+ " CSS comments
+ setlocal comments=s1:/*,mb:*,ex:*/
+ setlocal commentstring=/*%s*/
+
+ else
+ " HTML comments
+ setlocal comments=s:<!--,m:\ \ \ \ ,e:-->
+ setlocal commentstring=<!--%s-->
+ endif
+endfunction
+
+" https://code.visualstudio.com/docs/languages/jsconfig
+function! s:CollectPathsFromConfig() abort
+ let config_json = findfile('tsconfig.json', '.;')
+
+ if empty(config_json)
+ let config_json = findfile('jsconfig.json', '.;')
+
+ if empty(config_json)
+ return
+ endif
+ endif
+
+ let paths_from_config = config_json
+ \ ->readfile()
+ \ ->filter({ _, val -> val =~ '^\s*[\[\]{}"0-9]' })
+ \ ->join()
+ \ ->json_decode()
+ \ ->get('compilerOptions', {})
+ \ ->get('paths', {})
+
+ if !empty(paths_from_config)
+ let b:astro_paths = paths_from_config
+ \ ->map({key, val -> [
+ \ key->glob2regpat(),
+ \ val[0]->substitute('\/\*$', '', '')
+ \ ]})
+ \ ->values()
+ endif
+
+ let b:undo_ftplugin ..= " | unlet! b:astro_paths"
+endfunction
+
+function! s:AstroInclude(filename) abort
+ let decorated_filename = a:filename
+ \ ->substitute("^", "@", "")
+
+ let found_path = b:
+ \ ->get("astro_paths", [])
+ \ ->indexof({ key, val -> decorated_filename =~ val[0]})
+
+ if found_path != -1
+ let alias = b:astro_paths[found_path][0]
+ let path = b:astro_paths[found_path][1]
+ \ ->substitute('\(\/\)*$', '/', '')
+
+ return decorated_filename
+ \ ->substitute(alias, path, '')
+ endif
+
+ return a:filename
+endfunction
+
+let b:undo_ftplugin = "setlocal"
+ \ .. " formatoptions<"
+ \ .. " path<"
+ \ .. " suffixesadd<"
+ \ .. " matchpairs<"
+ \ .. " comments<"
+ \ .. " commentstring<"
+ \ .. " iskeyword<"
+ \ .. " define<"
+ \ .. " include<"
+ \ .. " includeexpr<"
+
+" Create self-resetting autocommand group
+augroup Astro
+ autocmd! * <buffer>
+augroup END
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal formatoptions-=t
+setlocal formatoptions+=croql
+
+" Remove irrelevant part of 'path'.
+setlocal path-=/usr/include
+
+" Seed 'path' with default directories for :find, gf, etc.
+setlocal path+=src/**
+setlocal path+=public/**
+
+" Help Vim find extension-less filenames
+let &l:suffixesadd =
+ \ ".astro"
+ \ .. ",.js,.jsx,.es,.es6,.cjs,.mjs,.jsm"
+ \ .. ",.json"
+ \ .. ",.scss,.sass,.css"
+ \ .. ",.svelte"
+ \ .. ",.ts,.tsx,.d.ts"
+ \ .. ",.vue"
+
+" From $VIMRUNTIME/ftplugin/html.vim
+setlocal matchpairs+=<:>
+
+" Matchit configuration
+if exists("loaded_matchit")
+ let b:match_ignorecase = 0
+
+ " From $VIMRUNTIME/ftplugin/javascript.vim
+ let b:match_words =
+ \ '\<do\>:\<while\>,'
+ \ .. '<\@<=\([^ \t>/]\+\)\%(\s\+[^>]*\%([^/]>\|$\)\|>\|$\):<\@<=/\1>,'
+ \ .. '<\@<=\%([^ \t>/]\+\)\%(\s\+[^/>]*\|$\):/>'
+
+ " From $VIMRUNTIME/ftplugin/html.vim
+ let b:match_words ..=
+ \ '<!--:-->,'
+ \ .. '<:>,'
+ \ .. '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,'
+ \ .. '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,'
+ \ .. '<\@<=\([^/!][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
+
+ let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words"
+endif
+
+" Change what constitutes a word, mainly useful for CSS/SASS
+setlocal iskeyword+=-
+setlocal iskeyword+=$
+setlocal iskeyword+=%
+
+" Define paths/aliases for module resolution
+call s:CollectPathsFromConfig()
+
+" Find ESM imports
+setlocal include=^\\s*\\(import\\\|import\\s\\+[^\/]\\+from\\)\\s\\+['\"]
+
+" Process aliases if file can't be found
+setlocal includeexpr=s:AstroInclude(v:fname)
+
+" Set 'define' to a comprehensive value
+" From $VIMRUNTIME/ftplugin/javascript.vim and
+" $VIMRUNTIME/ftplugin/sass.vim
+let &l:define =
+ \ '\(^\s*(*async\s\+function\|(*function\)'
+ \ .. '\|^\s*\(\*\|static\|async\|get\|set\|\i\+\.\)'
+ \ .. '\|^\s*\(\ze\i\+\)\(([^)]*).*{$\|\s*[:=,]\)'
+
+
+" Set &comments and &commentstring according to current scope
+autocmd Astro CursorMoved <buffer> call s:AstroComments()
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: textwidth=78 tabstop=8 shiftwidth=4 softtabstop=4 expandtab
diff --git a/runtime/ftplugin/bp.vim b/runtime/ftplugin/bp.vim
new file mode 100644
index 0000000000..5ddebe5233
--- /dev/null
+++ b/runtime/ftplugin/bp.vim
@@ -0,0 +1,14 @@
+" Blueprint build system filetype plugin file
+" Language: Blueprint
+" Maintainer: Bruno BELANYI <bruno.vim@belanyi.fr>
+" Latest Revision: 2024-04-19
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal comments=b://,s1:/*,mb:*,ex:*/
+setlocal commentstring=//\ %s
+
+let b:undo_ftplugin = "setlocal comments< commentstring<"
diff --git a/runtime/ftplugin/cgdbrc.vim b/runtime/ftplugin/cgdbrc.vim
new file mode 100644
index 0000000000..46cf135c5c
--- /dev/null
+++ b/runtime/ftplugin/cgdbrc.vim
@@ -0,0 +1,21 @@
+" Vim filetype plugin file
+" Language: cgdbrc
+" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
+" Documentation: https://cgdb.github.io/docs/Configuring-CGDB.html
+" Latest Revision: 2024-04-09
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:save_cpoptions = &cpoptions
+set cpoptions&vim
+
+let b:undo_ftplugin = 'setl com< cms<'
+
+setlocal commentstring=#%s
+setlocal comments=:#
+
+let &cpoptions = s:save_cpoptions
+unlet s:save_cpoptions
diff --git a/runtime/ftplugin/checkhealth.vim b/runtime/ftplugin/checkhealth.vim
index 4b530e6f7c..62a1970b4a 100644
--- a/runtime/ftplugin/checkhealth.vim
+++ b/runtime/ftplugin/checkhealth.vim
@@ -9,9 +9,6 @@ endif
runtime! ftplugin/help.vim
setlocal wrap breakindent linebreak
-setlocal foldexpr=getline(v:lnum-1)=~'^=\\{78}$'?'>1':(getline(v:lnum)=~'^=\\{78}'?0:'=')
-setlocal foldmethod=expr
-setlocal foldtext=v:lua.require('vim.health').foldtext()
let &l:iskeyword='!-~,^*,^|,^",192-255'
if exists("b:undo_ftplugin")
diff --git a/runtime/ftplugin/cmake.vim b/runtime/ftplugin/cmake.vim
index 94c007629b..9fcf87a759 100644
--- a/runtime/ftplugin/cmake.vim
+++ b/runtime/ftplugin/cmake.vim
@@ -2,6 +2,7 @@
" Language: CMake
" Maintainer: Keith Smiley <keithbsmiley@gmail.com>
" Last Change: 2018 Aug 30
+" 2024 Apr 20 - add include and suffixadd (Vim Project)
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -15,7 +16,7 @@ set cpo&vim
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
-let b:undo_ftplugin = "setl commentstring<"
+let b:undo_ftplugin = "setl inc< sua< commentstring<"
if exists('loaded_matchit')
let b:match_words = '\<if\>:\<elseif\>\|\<else\>:\<endif\>'
@@ -27,6 +28,8 @@ if exists('loaded_matchit')
let b:undo_ftplugin .= "| unlet b:match_words"
endif
+setlocal include=\s*include
+setlocal suffixesadd=.cmake,-config.cmake
setlocal commentstring=#\ %s
" restore 'cpo' and clean up buffer variable
diff --git a/runtime/ftplugin/dart.vim b/runtime/ftplugin/dart.vim
new file mode 100644
index 0000000000..42c90c212f
--- /dev/null
+++ b/runtime/ftplugin/dart.vim
@@ -0,0 +1,15 @@
+" Vim filetype plugin
+" Language: dart
+" Maintainer: Riley Bruins <ribru17@gmail.com>
+" Last Change: 2024 May 18
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+" Set 'comments' to format dashed lists in comments.
+" Also include ///, used for Doxygen.
+setl comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,:// commentstring=//\ %s
+
+let b:undo_ftplugin = 'setl com< cms<'
diff --git a/runtime/ftplugin/deb822sources.vim b/runtime/ftplugin/deb822sources.vim
new file mode 100644
index 0000000000..4936f42bf9
--- /dev/null
+++ b/runtime/ftplugin/deb822sources.vim
@@ -0,0 +1,16 @@
+" Language: Debian sources.list
+" Maintainer: Debian Vim Maintainers <team+vim@tracker.debian.org>
+" Last Change: 2024 Mar 20
+" License: Vim License
+" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/ftplugin/deb822sources.vim
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin=1
+
+setlocal comments=:#
+setlocal commentstring=#%s
+setlocal formatoptions-=t
+
+let b:undo_ftplugin = 'setlocal comments< commentstring< formatoptions<'
diff --git a/runtime/ftplugin/dts.vim b/runtime/ftplugin/dts.vim
new file mode 100644
index 0000000000..42e38338b7
--- /dev/null
+++ b/runtime/ftplugin/dts.vim
@@ -0,0 +1,16 @@
+" Vim filetype plugin file
+" Language: dts/dtsi (device tree files)
+" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
+" Latest Revision: 2024 Apr 12
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = 'setl inc< cms< com<'
+
+setlocal include=^\\%(#include\\\|/include/\\)
+" same as C
+setlocal commentstring&
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
diff --git a/runtime/ftplugin/gdb.vim b/runtime/ftplugin/gdb.vim
index 2473b13af0..7c10633be4 100644
--- a/runtime/ftplugin/gdb.vim
+++ b/runtime/ftplugin/gdb.vim
@@ -1,12 +1,20 @@
" Vim filetype plugin file
" Language: gdb
" Maintainer: Michaƫl Peeters <NOSPAMm.vim@noekeon.org>
-" Last Changed: 26 Oct 2017
+" Last Changed: 2017-10-26
+" 2024-04-10: - add Matchit support (by Vim Project)
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
setlocal commentstring=#%s
+setlocal include=^\\s*source
" Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal cms<"
+let b:undo_ftplugin = "setlocal cms< include<"
+
+" Matchit support
+if !exists('b:match_words')
+ let b:match_words = '\<\%(if\|while\|define\|document\)\>:\<else\>:\<end\>'
+ let b:undo_ftplugin ..= " | unlet! b:match_words"
+endif
diff --git a/runtime/ftplugin/graphql.vim b/runtime/ftplugin/graphql.vim
new file mode 100644
index 0000000000..56f6e36e20
--- /dev/null
+++ b/runtime/ftplugin/graphql.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin
+" Language: graphql
+" Maintainer: Riley Bruins <ribru17@gmail.com>
+" Last Change: 2024 May 18
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+setl comments=:# commentstring=#\ %s
+
+let b:undo_ftplugin = 'setl com< cms<'
diff --git a/runtime/ftplugin/hyprlang.vim b/runtime/ftplugin/hyprlang.vim
new file mode 100644
index 0000000000..5c186c3c5e
--- /dev/null
+++ b/runtime/ftplugin/hyprlang.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin
+" Language: hyprlang
+" Maintainer: ribru17 <ribru17@gmail.com>
+" Last Change: 2024 May 18
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+setl comments=:# commentstring=#\ %s
+
+let b:undo_ftplugin = 'setl com< cms<'
diff --git a/runtime/ftplugin/java.vim b/runtime/ftplugin/java.vim
index bb7e7cd72c..fa2b61075f 100644
--- a/runtime/ftplugin/java.vim
+++ b/runtime/ftplugin/java.vim
@@ -1,10 +1,9 @@
" Vim filetype plugin file
" Language: Java
-"
-" This runtime file is looking for a new maintainer.
-"
-" Former maintainer: Dan Sharp
-" Last Change: 2012 Mar 11
+" Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com>
+" Former Maintainer: Dan Sharp
+" Repository: https://github.com/zzzyxwvut/java-vim.git
+" Last Change: 2024 Apr 18
" 2024 Jan 14 by Vim Project (browsefilter)
if exists("b:did_ftplugin") | finish | endif
@@ -23,8 +22,36 @@ set suffixes+=.class
" name to / and append .java to the name, then search the path.
setlocal includeexpr=substitute(v:fname,'\\.','/','g')
setlocal suffixesadd=.java
-if exists("g:ftplugin_java_source_path")
- let &l:path=g:ftplugin_java_source_path . ',' . &l:path
+
+" Clean up in case this file is sourced again.
+unlet! s:zip_func_upgradable
+
+" Documented in ":help ft-java-plugin".
+if exists("g:ftplugin_java_source_path") &&
+ \ type(g:ftplugin_java_source_path) == type("")
+ if filereadable(g:ftplugin_java_source_path)
+ if exists("#zip") &&
+ \ g:ftplugin_java_source_path =~# '.\.\%(jar\|zip\)$'
+ if !exists("s:zip_files")
+ let s:zip_files = {}
+ endif
+
+ let s:zip_files[bufnr('%')] = g:ftplugin_java_source_path
+ let s:zip_files[0] = g:ftplugin_java_source_path
+ let s:zip_func_upgradable = 1
+
+ function! JavaFileTypeZipFile() abort
+ let @/ = substitute(v:fname, '\.', '\\/', 'g') . '.java'
+ return get(s:zip_files, bufnr('%'), s:zip_files[0])
+ endfunction
+
+ " E120 for "inex=s:JavaFileTypeZipFile()" before v8.2.3900.
+ setlocal includeexpr=JavaFileTypeZipFile()
+ setlocal suffixesadd<
+ endif
+ else
+ let &l:path = g:ftplugin_java_source_path . ',' . &l:path
+ endif
endif
" Set 'formatoptions' to break comment lines but not other lines,
@@ -53,6 +80,25 @@ let b:undo_ftplugin = "setlocal suffixes< suffixesadd<" .
\ " formatoptions< comments< commentstring< path< includeexpr<" .
\ " | unlet! b:browsefilter"
+" See ":help vim9-mix".
+if !has("vim9script")
+ let &cpo = s:save_cpo
+ unlet s:save_cpo
+ finish
+endif
+
+if exists("s:zip_func_upgradable")
+ delfunction! JavaFileTypeZipFile
+
+ def! s:JavaFileTypeZipFile(): string
+ @/ = substitute(v:fname, '\.', '\\/', 'g') .. '.java'
+ return get(zip_files, bufnr('%'), zip_files[0])
+ enddef
+
+ setlocal includeexpr=s:JavaFileTypeZipFile()
+ setlocal suffixesadd<
+endif
+
" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo
diff --git a/runtime/ftplugin/jj.vim b/runtime/ftplugin/jj.vim
new file mode 100644
index 0000000000..cc5d700a30
--- /dev/null
+++ b/runtime/ftplugin/jj.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin
+" Language: jj description
+" Maintainer: Gregory Anders <greg@gpanders.com>
+" Last Change: 2024 May 8
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+" Use the same formatoptions and textwidth as the gitcommit ftplugin
+setlocal nomodeline formatoptions+=tl textwidth=72
+setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=q formatoptions+=n
+setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}]\\s\\+\\\|^\\s*[-*+]\\s\\+
+
+setlocal comments=b:JJ:
+setlocal commentstring=JJ:\ %s
+
+let b:undo_ftplugin = 'setl modeline< formatoptions< textwidth< formatlistpat< comments< commentstring<'
diff --git a/runtime/ftplugin/jq.vim b/runtime/ftplugin/jq.vim
new file mode 100644
index 0000000000..88958e80dd
--- /dev/null
+++ b/runtime/ftplugin/jq.vim
@@ -0,0 +1,16 @@
+" Vim compiler file
+" Language: jq
+" Maintainer: Vito <vito.blog@gmail.com>
+" Last Change: 2024 Apr 29
+" Upstream: https://github.com/vito-c/jq.vim
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal include=^\\s*\\%(import\\\|include\\)
+setlocal commentstring=#%s
+compiler jq
+
+let b:undo_ftplugin = 'setl commentstring< include<'
diff --git a/runtime/ftplugin/kconfig.vim b/runtime/ftplugin/kconfig.vim
index 940ba7427f..767490701b 100644
--- a/runtime/ftplugin/kconfig.vim
+++ b/runtime/ftplugin/kconfig.vim
@@ -1,9 +1,9 @@
" Vim filetype plugin file
" Vim syntax file
-" Maintainer: Christian Brabandt <cb@256bit.org>
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2015-05-29
-" License: Vim (see :h license)
+" Maintainer: Christian Brabandt <cb@256bit.org>
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2024-04-12
+" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-kconfig
if exists("b:did_ftplugin")
@@ -11,17 +11,12 @@ if exists("b:did_ftplugin")
endif
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 inc< com< cms< fo<"
+setlocal include=source\\s\\+
setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
" For matchit.vim
if exists("loaded_matchit")
let b:match_words = '^\<menu\>:\<endmenu\>,^\<if\>:\<endif\>,^\<choice\>:\<endchoice\>'
endif
-
-let &cpo = s:cpo_save
-unlet s:cpo_save
diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim
index 277ce3c0b3..fdeaae4c3f 100644
--- a/runtime/ftplugin/man.vim
+++ b/runtime/ftplugin/man.vim
@@ -24,7 +24,7 @@ if !exists('g:no_plugin_maps') && !exists('g:no_man_maps')
nnoremap <silent> <buffer> k gk
nnoremap <silent> <buffer> gO :lua require'man'.show_toc()<CR>
nnoremap <silent> <buffer> <2-LeftMouse> :Man<CR>
- if get(b:, 'pager')
+ if get(g:, 'pager')
nnoremap <silent> <buffer> <nowait> q :lclose<CR><C-W>q
else
nnoremap <silent> <buffer> <nowait> q :lclose<CR><C-W>c
diff --git a/runtime/ftplugin/nim.vim b/runtime/ftplugin/nim.vim
new file mode 100644
index 0000000000..4ab8b7b536
--- /dev/null
+++ b/runtime/ftplugin/nim.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin
+" Language: nim
+" Maintainer: Riley Bruins <ribru17@gmail.com>
+" Last Change: 2024 May 19
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+setl comments=exO:]#,fs1:#[,mb:*,ex:]#,:# commentstring=#\ %s
+
+let b:undo_ftplugin = 'setl com< cms<'
diff --git a/runtime/ftplugin/ondir.vim b/runtime/ftplugin/ondir.vim
new file mode 100644
index 0000000000..0854578c91
--- /dev/null
+++ b/runtime/ftplugin/ondir.vim
@@ -0,0 +1,18 @@
+" Vim filetype plugin file
+" Language: ondir <https://github.com/alecthomas/ondir>
+" Maintainer: Jon Parise <jon@indelible.org>
+
+if exists('b:did_ftplugin')
+ finish
+endif
+
+let s:cpo_save = &cpoptions
+
+setlocal comments=:# commentstring=#\ %s
+
+let b:undo_ftplugin = 'setl comments< commentstring<'
+
+let &cpoptions = s:cpo_save
+unlet s:cpo_save
+
+" vim: et ts=4 sw=2 sts=2:
diff --git a/runtime/ftplugin/prisma.vim b/runtime/ftplugin/prisma.vim
new file mode 100644
index 0000000000..8b733da64c
--- /dev/null
+++ b/runtime/ftplugin/prisma.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin
+" Language: prisma
+" Maintainer: Riley Bruins <ribru17@gmail.com>
+" Last Change: 2024 May 19
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+setl comments=:///,:// commentstring=//\ %s
+
+let b:undo_ftplugin = 'setl com< cms<'
diff --git a/runtime/ftplugin/purescript.vim b/runtime/ftplugin/purescript.vim
new file mode 100644
index 0000000000..b3300bb324
--- /dev/null
+++ b/runtime/ftplugin/purescript.vim
@@ -0,0 +1,14 @@
+" Vim filetype plugin
+" Language: purescript
+" Maintainer: Riley Bruins <ribru17@gmail.com>
+" Last Change: 2024 May 19
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+setl comments=s1f:{-,mb:\ ,ex:-},:--\ \|,:--
+setl commentstring=--\ %s
+
+let b:undo_ftplugin = 'setl com< cms<'
diff --git a/runtime/ftplugin/python.vim b/runtime/ftplugin/python.vim
index 79acaa6f08..c000296726 100644
--- a/runtime/ftplugin/python.vim
+++ b/runtime/ftplugin/python.vim
@@ -1,10 +1,9 @@
" Vim filetype plugin file
" Language: python
-" Maintainer: Tom Picton <tom@tompicton.co.uk>
+" Maintainer: Tom Picton <tom@tompicton.com>
" Previous Maintainer: James Sully <sullyj3@gmail.com>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
-" Last Change: Mon, 5 October 2020
-" 2024 Jan 14 by Vim Project (browsefilter)
+" Last Change: 2024/05/13
" https://github.com/tpict/vim-ftplugin-python
if exists("b:did_ftplugin") | finish | endif
@@ -15,7 +14,7 @@ set cpo&vim
setlocal cinkeys-=0#
setlocal indentkeys-=0#
setlocal include=^\\s*\\(from\\\|import\\)
-setlocal define=^\\s*\\(def\\\|class\\)
+setlocal define=^\\s*\\(\\(async\\s\\+\\)\\?def\\\|class\\)
" For imports with leading .., append / and replace additional .s with ../
let b:grandparent_match = '^\(.\.\)\(\.*\)'
@@ -57,14 +56,14 @@ 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)'
if !exists('g:no_plugin_maps') && !exists('g:no_python_maps')
- 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', v:count1, 0)<cr>"
- execute "nnoremap <silent> <buffer> [] :call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', v:count1, 0)<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', v:count1, 0)<cr>"
- execute "nnoremap <silent> <buffer> [M :call <SID>Python_jump('n', '". b:prev_end."', 'Wb', v:count1, 0)<cr>"
+ execute "nnoremap <silent> <buffer> ]] :<C-U>call <SID>Python_jump('n', '". b:next_toplevel."', 'W', v:count1)<cr>"
+ execute "nnoremap <silent> <buffer> [[ :<C-U>call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb', v:count1)<cr>"
+ execute "nnoremap <silent> <buffer> ][ :<C-U>call <SID>Python_jump('n', '". b:next_endtoplevel."', 'W', v:count1, 0)<cr>"
+ execute "nnoremap <silent> <buffer> [] :<C-U>call <SID>Python_jump('n', '". b:prev_endtoplevel."', 'Wb', v:count1, 0)<cr>"
+ execute "nnoremap <silent> <buffer> ]m :<C-U>call <SID>Python_jump('n', '". b:next."', 'W', v:count1)<cr>"
+ execute "nnoremap <silent> <buffer> [m :<C-U>call <SID>Python_jump('n', '". b:prev."', 'Wb', v:count1)<cr>"
+ execute "nnoremap <silent> <buffer> ]M :<C-U>call <SID>Python_jump('n', '". b:next_end."', 'W', v:count1, 0)<cr>"
+ execute "nnoremap <silent> <buffer> [M :<C-U>call <SID>Python_jump('n', '". b:prev_end."', 'Wb', v:count1, 0)<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>"
diff --git a/runtime/ftplugin/requirements.vim b/runtime/ftplugin/requirements.vim
new file mode 100644
index 0000000000..fcfc1ac269
--- /dev/null
+++ b/runtime/ftplugin/requirements.vim
@@ -0,0 +1,43 @@
+" the Requirements File Format syntax support for Vim
+" Version: 1.8.0
+" Author: raimon <raimon49@hotmail.com>
+" Upstream: https://github.com/raimon49/requirements.txt.vim
+" License: MIT LICENSE
+" The MIT License (MIT)
+"
+" Copyright (c) 2015 raimon
+"
+" Permission is hereby granted, free of charge, to any person obtaining a copy
+" of this software and associated documentation files (the "Software"), to deal
+" in the Software without restriction, including without limitation the rights
+" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+" copies of the Software, and to permit persons to whom the Software is
+" furnished to do so, subject to the following conditions:
+"
+" The above copyright notice and this permission notice shall be included in all
+" copies or substantial portions of the Software.
+"
+" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+" SOFTWARE.
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:save_cpoptions = &cpoptions
+set cpoptions&vim
+
+let b:undo_ftplugin = "setl iskeyword< commentstring<"
+" pip options contain "-"
+setlocal iskeyword+=-
+setlocal commentstring=#\ %s
+compiler pip_compile
+
+let &cpoptions = s:save_cpoptions
+unlet s:save_cpoptions
+" vim: et sw=4 ts=4 sts=4:
diff --git a/runtime/ftplugin/rescript.vim b/runtime/ftplugin/rescript.vim
new file mode 100644
index 0000000000..dd94c68799
--- /dev/null
+++ b/runtime/ftplugin/rescript.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin
+" Language: rescript
+" Maintainer: Riley Bruins <ribru17@gmail.com>
+" Last Change: 2024 May 21
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+setl comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// commentstring=//\ %s
+
+let b:undo_ftplugin = 'setl com< cms<'
diff --git a/runtime/ftplugin/roc.vim b/runtime/ftplugin/roc.vim
new file mode 100644
index 0000000000..c66510874d
--- /dev/null
+++ b/runtime/ftplugin/roc.vim
@@ -0,0 +1,14 @@
+" Roc filetype plugin file
+" Language: Roc
+" Maintainer: nat-418 <93013864+nat-418@users.noreply.github.com>
+" Latest Revision: 2024-04-5
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal comments=:##,:#
+setlocal commentstring=#\ %s
+
+let b:undo_ftplugin = "setl com< cms<"
diff --git a/runtime/ftplugin/rust.vim b/runtime/ftplugin/rust.vim
index 7f1a86ea95..fb15b444d0 100644
--- a/runtime/ftplugin/rust.vim
+++ b/runtime/ftplugin/rust.vim
@@ -1,7 +1,7 @@
" Language: Rust
" Description: Vim ftplugin for Rust
" Maintainer: Chris Morgan <me@chrismorgan.info>
-" Last Change: 2023-09-11
+" Last Change: 2024-03-17
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
if exists("b:did_ftplugin")
@@ -94,14 +94,15 @@ if has('conceal') && get(g:, 'rust_conceal', 0)
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>
+if !exists("g:no_plugin_maps") && !exists("g:no_rust_maps")
+ " 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>
+endif
" Commands {{{1
@@ -176,12 +177,12 @@ let b:undo_ftplugin = "
\|delcommand -buffer RustInfoToClipboard
\|delcommand -buffer RustInfoToFile
\|delcommand -buffer RustTest
- \|nunmap <buffer> [[
- \|nunmap <buffer> ]]
- \|xunmap <buffer> [[
- \|xunmap <buffer> ]]
- \|ounmap <buffer> [[
- \|ounmap <buffer> ]]
+ \|silent! nunmap <buffer> [[
+ \|silent! nunmap <buffer> ]]
+ \|silent! xunmap <buffer> [[
+ \|silent! xunmap <buffer> ]]
+ \|silent! ounmap <buffer> [[
+ \|silent! ounmap <buffer> ]]
\|setlocal matchpairs-=<:>
\|unlet b:match_skip
\"
diff --git a/runtime/ftplugin/sh.vim b/runtime/ftplugin/sh.vim
index 6d2093bf83..c47aa520e9 100644
--- a/runtime/ftplugin/sh.vim
+++ b/runtime/ftplugin/sh.vim
@@ -4,7 +4,7 @@
" Previous Maintainer: Dan Sharp
" Contributor: Enno Nagel <ennonagel+vim@gmail.com>
" Eisuke Kawashima
-" Last Change: 2024 Feb 27
+" Last Change: 2024 May 06 by Vim Project (MANPAGER=)
if exists("b:did_ftplugin")
finish
@@ -46,11 +46,11 @@ endif
if get(b:, "is_bash", 0)
if !has("gui_running") && executable("less")
- command! -buffer -nargs=1 ShKeywordPrg silent exe '!bash -c "{ help "<args>" 2>/dev/null || man "<args>"; } | LESS= less"' | redraw!
+ command! -buffer -nargs=1 ShKeywordPrg silent exe '!bash -c "{ help "<args>" 2>/dev/null || MANPAGER= man "<args>"; } | LESS= less"' | redraw!
elseif has("terminal")
command! -buffer -nargs=1 ShKeywordPrg silent exe ':term bash -c "help "<args>" 2>/dev/null || man "<args>""'
else
- command! -buffer -nargs=1 ShKeywordPrg echo system('bash -c "help <args>" 2>/dev/null || man "<args>"')
+ command! -buffer -nargs=1 ShKeywordPrg echo system('bash -c "help <args>" 2>/dev/null || MANPAGER= man "<args>"')
endif
setlocal keywordprg=:ShKeywordPrg
let b:undo_ftplugin ..= " | setl kp< | sil! delc -buffer ShKeywordPrg"
diff --git a/runtime/ftplugin/slint.vim b/runtime/ftplugin/slint.vim
new file mode 100644
index 0000000000..ac8057f39d
--- /dev/null
+++ b/runtime/ftplugin/slint.vim
@@ -0,0 +1,15 @@
+" Vim filetype plugin
+" Language: slint
+" Maintainer: Riley Bruins <ribru17@gmail.com>
+" Last Change: 2024 May 19
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+" Set 'comments' to format dashed lists in comments.
+" Also include ///, used for Doxygen.
+setl comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,:// commentstring=//\ %s
+
+let b:undo_ftplugin = 'setl com< cms<'
diff --git a/runtime/ftplugin/sql.vim b/runtime/ftplugin/sql.vim
index c85232f51b..61b7e67255 100644
--- a/runtime/ftplugin/sql.vim
+++ b/runtime/ftplugin/sql.vim
@@ -4,6 +4,7 @@
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Last Change: 2017 Mar 07
" 2024 Jan 14 by Vim Project (browsefilter)
+" 2024 May 18 by Vim Project (set comment options)
" Download: http://vim.sourceforge.net/script.php?script_id=454
" For more details please use:
@@ -105,6 +106,8 @@ set cpo&vim
setlocal formatoptions-=t
setlocal formatoptions+=c
+setlocal comments=:-- commentstring=--\ %s
+
" Functions/Commands to allow the user to change SQL syntax dialects
" through the use of :SQLSetType <tab> for completion.
" This works with both Vim 6 and 7.
@@ -266,7 +269,7 @@ if exists("b:did_ftplugin") && exists("b:current_ftplugin") && b:current_ftplugi
finish
endif
-let b:undo_ftplugin = "setl comments< formatoptions< define< omnifunc<" .
+let b:undo_ftplugin = "setl comments< commentstring< formatoptions< define< omnifunc<" .
\ " | unlet! b:browsefilter b:match_words"
" Don't load another plugin for this buffer
diff --git a/runtime/ftplugin/sshdconfig.vim b/runtime/ftplugin/sshdconfig.vim
new file mode 100644
index 0000000000..3d394549bc
--- /dev/null
+++ b/runtime/ftplugin/sshdconfig.vim
@@ -0,0 +1,10 @@
+" Vim filetype plugin file
+" Language: OpenSSH server configuration file
+" Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com>
+" Latest Revision: 2024-05-17
+
+if exists("b:did_ftplugin")
+ finish
+endif
+
+runtime! ftplugin/conf.vim
diff --git a/runtime/ftplugin/stylus.vim b/runtime/ftplugin/stylus.vim
new file mode 100644
index 0000000000..1c5f14eebe
--- /dev/null
+++ b/runtime/ftplugin/stylus.vim
@@ -0,0 +1,54 @@
+" Vim filetype plugin
+" Language: Stylus
+" Maintainer: Marc Harter
+" Credits: Tim Pope
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+let s:save_cpo = &cpo
+set cpo-=C
+
+" Define some defaults in case the included ftplugins don't set them.
+let s:undo_ftplugin = ""
+let s:browsefilter = "All Files (*.*)\t*.*\n"
+
+runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+unlet! b:did_ftplugin
+
+" Override our defaults if these were set by an included ftplugin.
+if exists("b:undo_ftplugin")
+ let s:undo_ftplugin = b:undo_ftplugin
+ unlet b:undo_ftplugin
+endif
+if exists("b:browsefilter")
+ let s:browsefilter = b:browsefilter
+ unlet b:browsefilter
+endif
+
+" Change the browse dialog on Win32 to show mainly Styl-related files
+if has("gui_win32")
+ let b:browsefilter="Stylus Files (*.styl)\t*.styl\n" . s:browsefilter
+endif
+
+setlocal comments= commentstring=//\ %s
+setlocal suffixesadd=.styl
+setlocal formatoptions+=r
+
+" Add '-' and '#' to the what makes up a keyword.
+" This means that 'e' and 'w' work properly now, for properties
+" and valid variable names.
+setl iskeyword+=#,-
+
+" Add a Stylus command (to see if it's valid)
+command -buffer Stylus !clear; cat % |stylus
+
+
+let b:undo_ftplugin = "setl sua< isk< cms< com< fo< "
+ \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin
+
+let &cpo = s:save_cpo
+
+" vim:set sw=2:
diff --git a/runtime/ftplugin/tutor.vim b/runtime/ftplugin/tutor.vim
index 30783d9799..45ee582cba 100644
--- a/runtime/ftplugin/tutor.vim
+++ b/runtime/ftplugin/tutor.vim
@@ -19,7 +19,7 @@ setlocal noundofile
setlocal keywordprg=:help
setlocal iskeyword=@,-,_
-" The user will have to enable the folds himself, but we provide the foldexpr
+" The user will have to enable the folds themself, but we provide the foldexpr
" function.
setlocal foldmethod=manual
setlocal foldexpr=tutor#TutorFolds()
diff --git a/runtime/ftplugin/typst.vim b/runtime/ftplugin/typst.vim
new file mode 100644
index 0000000000..c2d7811ace
--- /dev/null
+++ b/runtime/ftplugin/typst.vim
@@ -0,0 +1,14 @@
+" Vim filetype plugin
+" Language: typst
+" Maintainer: Riley Bruins <ribru17@gmail.com>
+" Last Change: 2024 May 19
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
+setlocal commentstring=//\ %s
+
+let b:undo_ftplugin = 'setl com< cms<'
diff --git a/runtime/ftplugin/uci.vim b/runtime/ftplugin/uci.vim
new file mode 100644
index 0000000000..984dab6c5f
--- /dev/null
+++ b/runtime/ftplugin/uci.vim
@@ -0,0 +1,21 @@
+" Vim ftplugin file
+" Language: OpenWrt Unified Configuration Interface
+" Maintainer: Colin Caine <complaints@cmcaine.co.uk>
+" Upstream: https://github.com/cmcaine/vim-uci
+" Last Change: 2024 Apr 17
+"
+" For more information on uci, see https://openwrt.org/docs/guide-user/base-system/uci
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+" UCI files are indented with tabs.
+setl noexpandtab
+setl shiftwidth=0
+setl softtabstop=0
+
+setl commentstring=#\ %s
+
+let b:undo_ftplugin = "setlocal et< cms< sts< sw<"
diff --git a/runtime/ftplugin/v.vim b/runtime/ftplugin/v.vim
new file mode 100644
index 0000000000..4d4f60d797
--- /dev/null
+++ b/runtime/ftplugin/v.vim
@@ -0,0 +1,15 @@
+" Vim filetype plugin
+" Language: v
+" Maintainer: Riley Bruins <ribru17@gmail.com>
+" Last Change: 2024 May 19
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+" Set 'comments' to format dashed lists in comments.
+" Also include ///, used for Doxygen.
+setl comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,:// commentstring=//\ %s
+
+let b:undo_ftplugin = 'setl com< cms<'
diff --git a/runtime/ftplugin/verilog.vim b/runtime/ftplugin/verilog.vim
index 83c3754e05..c20be25865 100644
--- a/runtime/ftplugin/verilog.vim
+++ b/runtime/ftplugin/verilog.vim
@@ -3,6 +3,7 @@
" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
" Last Change: 2017 Aug 25 by Chih-Tsun Huang
" 2024 Jan 14 by Vim Project (browsefilter)
+" 2024 May 20 by Riley Bruins <ribru17@gmail.com> (commentstring)
" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
"
" Credits:
@@ -22,7 +23,7 @@ let s:cpo_save = &cpo
set cpo&vim
" Undo the plugin effect
-let b:undo_ftplugin = "setlocal fo< com< tw<"
+let b:undo_ftplugin = "setlocal fo< com< tw< cms<"
\ . "| unlet! b:browsefilter b:match_ignorecase b:match_words"
" Set 'formatoptions' to break comment lines but not other lines,
@@ -31,6 +32,7 @@ setlocal fo-=t fo+=croqlm1
" Set 'comments' to format dashed lists in comments.
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
+setlocal commentstring=//\ %s
" Format comments to be up to 78 characters long
if &textwidth == 0
diff --git a/runtime/ftplugin/vim.vim b/runtime/ftplugin/vim.vim
index f5dae0f94e..5c99df7f5a 100644
--- a/runtime/ftplugin/vim.vim
+++ b/runtime/ftplugin/vim.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin
-" Language: Vim
-" Maintainer: The Vim Project <https://github.com/vim/vim>
-" Last Change: 2023 Aug 10
+" Language: Vim
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Last Change: 2024 Apr 13
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Only do this when not done yet for this buffer
@@ -50,7 +50,7 @@ setlocal isk+=#
setlocal keywordprg=:help
" Comments starts with # in Vim9 script. We have to guess which one to use.
-if "\n" .. getline(1, 10)->join("\n") =~# '\n\s*vim9\%[script]\>'
+if "\n" .. getline(1, 32)->join("\n") =~# '\n\s*vim9\%[script]\>'
setlocal commentstring=#%s
else
setlocal commentstring=\"%s
diff --git a/runtime/ftplugin/yaml.vim b/runtime/ftplugin/yaml.vim
index db7cbd7ddb..8bfc45e4c8 100644
--- a/runtime/ftplugin/yaml.vim
+++ b/runtime/ftplugin/yaml.vim
@@ -16,6 +16,13 @@ let b:undo_ftplugin = "setl com< cms< et< fo<"
setlocal comments=:# commentstring=#\ %s expandtab
setlocal formatoptions-=t formatoptions+=croql
+" rime input method engine uses `*.custom.yaml` as its config files
+if expand('%:r:e') ==# 'custom'
+ compiler rime_deployer
+ setlocal include=__include:\\s*
+ let b:undo_ftplugin ..= " inc<"
+endif
+
if !exists("g:yaml_recommended_style") || g:yaml_recommended_style != 0
let b:undo_ftplugin ..= " sw< sts<"
setlocal shiftwidth=2 softtabstop=2
diff --git a/runtime/ftplugin/zathurarc.vim b/runtime/ftplugin/zathurarc.vim
new file mode 100644
index 0000000000..259fb137a1
--- /dev/null
+++ b/runtime/ftplugin/zathurarc.vim
@@ -0,0 +1,22 @@
+" Vim filetype plugin file
+" Language: Zathurarc
+" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
+" Documentation: https://pwmt.org/projects/zathura/documentation/
+" Upstream: https://github.com/Freed-Wu/zathurarc.vim
+" Latest Revision: 2024-04-02
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:save_cpoptions = &cpoptions
+set cpoptions&vim
+
+let b:undo_ftplugin = 'setlocal comments< commentstring< include<'
+setlocal comments=:#
+setlocal commentstring=#\ %s
+setlocal include=^\sinclude
+
+let &cpoptions = s:save_cpoptions
+unlet s:save_cpoptions
diff --git a/runtime/ftplugin/zig.vim b/runtime/ftplugin/zig.vim
index 28b8cd5a67..ea229b6a49 100644
--- a/runtime/ftplugin/zig.vim
+++ b/runtime/ftplugin/zig.vim
@@ -1,68 +1,52 @@
" Vim filetype plugin file
-" Language: Zig
-" Upstream: https://github.com/ziglang/zig.vim
+" Language: Zig
+" Maintainer: Mathias Lindgren <math.lindgren@gmail.com>
+" Last Change: 2024 May 21
+" Based on: https://github.com/ziglang/zig.vim
-" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
-let s:cpo_orig = &cpo
+let s:cpo_save = &cpo
set cpo&vim
compiler zig_build
" Match Zig builtin fns
setlocal iskeyword+=@-@
-
-" Recommended code style, no tabs and 4-space indentation
-setlocal expandtab
-setlocal tabstop=8
-setlocal softtabstop=4
-setlocal shiftwidth=4
-
setlocal formatoptions-=t formatoptions+=croql
-
-setlocal suffixesadd=.zig,.zir
+setlocal suffixesadd=.zig,.zir,.zon
+let &l:define='\v(<fn>|<const>|<var>|^\s*\#\s*define)'
+let b:undo_ftplugin = 'setl isk< fo< sua< mp< def<'
+
+if get(g:, 'zig_recommended_style', 1)
+ setlocal expandtab
+ setlocal tabstop=8
+ setlocal softtabstop=4
+ setlocal shiftwidth=4
+ let b:undo_ftplugin .= ' | setl et< ts< sts< sw<'
+endif
if has('comments')
setlocal comments=:///,://!,://
setlocal commentstring=//\ %s
+ let b:undo_ftplugin .= ' | setl com< cms<'
endif
if has('find_in_path')
let &l:includeexpr='substitute(v:fname, "^([^.])$", "\1.zig", "")'
let &l:include='\v(\@import>|\@cInclude>|^\s*\#\s*include)'
-endif
-
-let &l:define='\v(<fn>|<const>|<var>|^\s*\#\s*define)'
-
-" Safety check: don't execute zig from current directory
-if !exists('g:zig_std_dir') && exists('*json_decode') &&
- \ executable('zig') && dist#vim#IsSafeExecutable('zig', 'zig')
- silent let s:env = system('zig env')
- if v:shell_error == 0
- let g:zig_std_dir = json_decode(s:env)['std_dir']
- endif
- unlet! s:env
+ let b:undo_ftplugin .= ' | setl inex< inc<'
endif
if exists('g:zig_std_dir')
- let &l:path = g:zig_std_dir . ',' . &l:path
+ let &l:path .= ',' . g:zig_std_dir
+ let b:undo_ftplugin .= ' | setl pa<'
endif
-let b:undo_ftplugin =
- \ 'setl isk< et< ts< sts< sw< fo< sua< mp< com< cms< inex< inc< pa<'
-
-augroup vim-zig
- autocmd! * <buffer>
- autocmd BufWritePre <buffer> if get(g:, 'zig_fmt_autosave', 1) | call zig#fmt#Format() | endif
-augroup END
-
-let b:undo_ftplugin .= '|au! vim-zig * <buffer>'
-
-let &cpo = s:cpo_orig
-unlet s:cpo_orig
+let &cpo = s:cpo_save
+unlet s:cpo_save
" vim: tabstop=8 shiftwidth=4 softtabstop=4 expandtab
diff --git a/runtime/ftplugin/zsh.vim b/runtime/ftplugin/zsh.vim
index 40986fccbe..aee890024f 100644
--- a/runtime/ftplugin/zsh.vim
+++ b/runtime/ftplugin/zsh.vim
@@ -2,7 +2,7 @@
" Language: Zsh shell script
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2023-10-07
+" Latest Revision: 2024 May 06 by Vim Project (MANPAGER=)
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-zsh
@@ -24,7 +24,7 @@ if executable('zsh') && &shell !~# '/\%(nologin\|false\)$'
elseif has('terminal')
command! -buffer -nargs=1 ZshKeywordPrg silent exe ':term zsh -c "autoload -Uz run-help; run-help <args>"'
else
- command! -buffer -nargs=1 ZshKeywordPrg echo system('zsh -c "autoload -Uz run-help; run-help <args> 2>/dev/null"')
+ command! -buffer -nargs=1 ZshKeywordPrg echo system('MANPAGER= zsh -c "autoload -Uz run-help; run-help <args> 2>/dev/null"')
endif
if !exists('current_compiler')
compiler zsh