summaryrefslogtreecommitdiffstatshomepage
path: root/runtime/ftplugin
AgeCommit message (Collapse)AuthorFiles
2026-04-21vim-patch:9.2.0371: filetype: ghostty config files are not recognized (#39267)zeertzjq1
Problem: filetype: ghostty config files are not recognized Solution: Detect ghostty configuration files as ghostty filetype, include a simple ghostty filetype plugin (Bez Hermoso) closes: vim/vim#20002 https://github.com/vim/vim/commit/b30803b231beea13e2efa42fefc04be71a4e9bb5 Co-authored-by: Bez Hermoso <bezalelhermoso@gmail.com> Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-04-10vim-patch:72cefe6: runtime(help): support highlighting groups in translated ↵zeertzjq1
syntax doc (#38922) closes: vim/vim#19942 https://github.com/vim/vim/commit/72cefe6b72c92b5f3686ee297277a2940cbb702f Also include a blank line change from https://github.com/vim/vim/commit/9d9381fb2804c426f88cd9b30650b94fc500d6bb Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
2026-04-08feat(api): rename buffer to buf #35330Jordan1
Problem: `:help dev-name-common` states that "buf" should be used instead of "buffer" but there are cases where buffer is mentioned in the lua API. Solution: - Rename occurrences of "buffer" to "buf" for consistency with the documentation. - Support (but deprecate) "buffer" for backwards compatibility. Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2026-04-01vim-patch:82ebaa7: runtime(racket): Make visual K mapping more robust for ↵zeertzjq1
shell injection (#38677) fyi @benknoble https://github.com/vim/vim/commit/82ebaa79b03f0f9d66eeba51570c62a83096108f Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-04-01vim-patch:374f06f: runtime(racket): Use shellescape() to harden the K mappingzeertzjq1
fyi: @benknoble https://github.com/vim/vim/commit/374f06ffd8b890809289911334d8f0b0b15603bc Co-authored-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Michał Majchrowicz <mmajchrowicz@afine.com>
2026-03-31fix(tutor): open a temporary copy instead of original file #38522Matthew Chen1
Problem: `:Tutor` should open a copy of the tutor file instead of the original. This is because edits modify the original file buffer, and crashes or other misuse could potentially corrupt the original file even if it's WO. Solution: Copy the tutor file to a temp path before opening. Store the original path in `b:tutor_file` so metadata json loading still works. - `tutor#TutorCmd` will now copy the tutor file to a temp path via `tempname()` before opening with `drop`. Store the original path in `b:tutor_file` only after the buffer is created. - `tutor#LoadMetadata` now uses `b:tutor_file` to resolve the JSON path instead of `expand('%')`, which now points to the temp copy buffer - `ftplugin/tutor.vim` does not make the `tutor#LoadMetadata` call anymore. It was guarded by `filereadable(expand('%').'.json')` which fails for the new temp copy path logic . Instead, `tutor#LoadMetadata` is already called directly inside `tutor#TutorCmd` since we are already assumed to enable interactive. Co-authored-by: Phạm Bình An <111893501+brianhuster@users.noreply.github.com>
2026-03-24fix(runtime): stop treesitter highlight in b:undo_ftplugin #38459Eisuke Kawashima1
Co-authored-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
2026-03-23vim-patch:9.2.0235: filetype: wks files are not recognized (#38451)Anakin Childerhose1
Problem: filetype: wks files are not recognized. Solution: Detect *.wks, *.wks.in and *.wks.inc as wks filetype, include a filetype and syntax plugin (Anakin Childerhose) The OpenEmbedded Image Creation tool, `wic` uses wic kickstarter files to define image partition and bootloader layouts. wks files can end with .wks, .wks.in for templated wks files, and .wks.inc for including in other .wks files. The autocmd for *.wks.inc needs to come before *.inc in runtime/ftdetect.vim Reference: https://docs.yoctoproject.org/ref-manual/kickstart.html#openembedded-kickstart-wks-reference https://git.openembedded.org/openembedded-core/tree/scripts/lib/wic/canned-wks closes: vim/vim#19796 https://github.com/vim/vim/commit/8c116bbe79eab7337bb5c979468d3b0cb5933d07
2026-03-23fix(lua): drop support for boolean `buf` in `vim.keymap` #38432skewb1k1
Problem: `vim.keymap.*.Opts.buf` allows `boolean` aliases for more widely used `integer?` values, `true` -> `0` and `false` -> `nil`. This conversion is unnecessary and can be handled at call sites. Solution: As a follow-up to deprecating the `buffer` option, drop support for boolean values for the new `buf` option. The deprecated `buffer` continues to support booleans for backward compatibility.
2026-03-21feat(lua): replace `buffer` with `buf` in vim.keymap.set/del #38360skewb1k4
The `buffer` option remains functional but is now undocumented. Providing both will raise an error. Since providing `buf` was disallowed before, there is no code that will break due to using `buffer` alongside `buf`.
2026-03-21vim-patch:ce4fbda: runtime(fish): Add matchit support to filetype plugin ↵zeertzjq1
(#38399) closes: vim/vim#19701 https://github.com/vim/vim/commit/ce4fbda99285c991df3c1f26e248c88bc938ba9e Co-authored-by: Phạm Bình An <phambinhanctb2004@gmail.com> Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2026-03-19vim-patch:39ee7d1: runtime(yara): add ftplugin for yara filetype (#38361)zeertzjq1
Add a minimal ftplugin `runtime/ftplugin/yara.vim` that sets: - `commentstring` for YARA line comments (`//`) - `comments` for YARA block comment (`/* */`) - `formatoptions` to wrap comment lines and continue comment after newlines This was heavily inspired from `runtime/ftplugin/c.vim` closes: vim/vim#19736 https://github.com/vim/vim/commit/39ee7d17b9dec0a83eaa500f8a6f9c9d1b076bcf Co-authored-by: Thomas Dupuy <thom4s.d@gmail.com>
2026-03-15feat(help): super K (":help!") guesses tag at cursor #36205Justin M. Keyes1
Problem: `K` in help files may fail in some noisy text. Example: (`fun(config: vim.lsp.ClientConfig): boolean`) ^cursor Solution: - `:help!` (bang, no args) activates DWIM behavior: tries `<cWORD>`, then trims punctuation until a valid tag is found. - Set `keywordprg=:help!` by default. - Does not affect `CTRL-]`, that is still fully "tags" based.
2026-03-13refactor(treesitter)!: get_parser return nil on error #37276nikolightsaber1
2026-03-12vim-patch:3697c6b: runtime(ssh): ignore case in 'keywordprg', update syntax ↵zeertzjq1
script (#38277) - ftplugin(sshdconfig): use "-I" for 'keywordprg' to search case-insensitive in the man page - syntax(sshdconfig,sshconfig): Mark "lowdelay", "throughput", and "reliability" as deprecated for IPQoS, highlighting them as errors/warnings to reflect OpenSSH 10.1p1 release Reference: https://www.openssh.org/releasenotes.html#10.1p1 closes: vim/vim#19636 https://github.com/vim/vim/commit/3697c6b020e6b5899a13e7c7cb105708ba2eb9d9 Co-authored-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
2026-03-12vim-patch:8f2cd47: runtime(sudoers): update filetype plugin and syntax ↵zeertzjq1
script (#38262) - remove `set isk+=-` to highlight `-=` operator correctly - implement highlighting of GID - fix highlight of hostname and add special value ALL - fix highlight of IP address - update include and includedir patterns - remove duplicate syntax rules - add missing options - fix highlight of parameter assignment (limit operators to list parameters) - fix highlight of string and list parameters with trailing whitespaces - implement highlight of permission (octal) - implement highlight of floating point numbers - implement highlight of timeout-specific options - support highlight of negatable options (integer, mode, float, timeout, string) - allow sudoersListParameter to be negated - fix highlight of comma-separated parameter list used as boolean - fix highlight of parameter negation (prevent highlighting ill-formed `! !`) - fix highlight of Tag_Spec - allow empty Runas spec: `()` and `(:)` - fix highlight of comma-concatenated commands, hosts, and users - check word boundaries for special value ALL - implement highlight of Option_Spec - fix highlight in User_Spec (specifically for Host position) - fix highlight of `Default!` command - support highlight of digests (sha224, etc.) - add syntax test and update header closes: vim/vim#19634 https://github.com/vim/vim/commit/8f2cd474048302ee1d919a45707e8b1f5db7ea57 Co-authored-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
2026-03-03vim-patch:99ba87d: runtime(nickel): Add filetype plugin with com, cms ↵zeertzjq1
settings (#38134) closes: vim/vim#19545 https://github.com/vim/vim/commit/99ba87d152a93d994eb052ba1cfc39e55ac46421 Co-authored-by: Riley Bruins <ribru17@hotmail.com>
2026-03-02vim-patch:14eddc7: runtime(xkb): Include a simple xkb ftplugin (#38121)zeertzjq1
Problem: There is a xkb syntax, but no filetype plugin. Solution: Create a filetype plugin and set the comment and commentstring options for the xkb filetype (xkb = X keyboard extension) closes: vim/vim#19537 https://github.com/vim/vim/commit/14eddc7d46f2e6830beb00834f33eb272d028e82 Co-authored-by: GX <59413576+gx089@users.noreply.github.com>
2026-02-28vim-patch:75c291f: runtime(julia): Update julia ftpluginChristian Clason1
commentstring changed to single line variant in JuliaEditorSupport/julia-vim@edd3512 closes: vim/vim#19530 https://github.com/vim/vim/commit/75c291fc39d33844365cb0a4e99569b570d85af0 Co-authored-by: Daniel Wennberg <daniel.wennberg@gmail.com>
2026-02-28vim-patch:9148644: runtime(env): add ftplugin for env filetype (#38098)zeertzjq1
Patch 9.2.0033 (vim/vim#19260) introduced a dedicated `env` filetype for .env files, which were previously detected as `sh`. This left env files without `commentstring`, `comments`, or `formatoptions` since no ftplugin was added alongside the new filetype. Add runtime/ftplugin/env.vim to set these options, matching the behavior that .env files had when they used the `sh` filetype. closes: vim/vim#19522 https://github.com/vim/vim/commit/9148644c1eb73faad702eacac2d40925c0c9a2d0 Co-authored-by: snelling-a <72226000+snelling-a@users.noreply.github.com>
2026-02-23refactor(gen): let Hugo build html docs #37972Yochem van Rosmalen1
Problem: The html and css of the website's documentation pages are defined in long strings in gen_help_html.lua, making it hard to maintain and improve them. E.g. adding in headers that state the documentation is for nightly Nvim has been a long standing feature request. Solution: Move the inlined css and html (e.g. the <head>, <nav>, etc.) to Hugo. Now that the website is build with Hugo, we can use its templating system to generate the full html/css from the Tree-sitter tree: https://github.com/neovim/neovim.github.io/pull/437
2026-02-18feat(defaults): don't enable treesitter query linterChristian Clason1
This was added before there was a dedicated language server for tree-sitter queries. Now that https://github.com/ribru17/ts_query_ls exists, this is a better option in every regard (and up to now required manually disabling the builtin linter to avoid duplicate diagnostics and performance issues).
2026-02-17feat(ftplugin): treesitter default highlighting for markdownChristian Clason1
2026-02-14vim-patch:10f5573: runtime(systemverilog): use correct matchit pattern for ↵zeertzjq1
the covergroup block A covergroup start with the "covergroup" keyword and ends with the "endgroup" keyword. "group" is not even a reserved keyword in systemverilog. Reference: https://www.chipverify.com/systemverilog/systemverilog-covergroup-coverpoint#covergroup https://github.com/MikePopoloski/slang/blob/master/docs/grammar.md#covergroup_declaration closes: vim/vim#19393 https://github.com/vim/vim/commit/10f5573672cb2656ed70a9ac9b9a995ceba3d8ed Co-authored-by: TG <tarik.graba@telecom-paris.fr>
2026-02-14vim-patch:dcc4175: runtime(go,gleam): Remove 'formatprg' from ftpluginszeertzjq2
Effective use of 'formatprg' requires both an understanding of the specific capabilities of the formatting tool and Vim's formatting commands. This is overly burdensome for some users. Rather than address each complaint on a filetype by filetype basis, remove 'formatprg' settings from all ftplugins. It is expected that formatter plugins will be available in the near future as a better solution. See vim/vim#17145 (Add "formatter" feature using "compiler" as a template). Note: 'formatprg' will be removed from older ftplugins after the release of Vim 9.2. The setting was added to the go and gleam ftplugins during the current development cycle and have not been included in a Vim release. See: vim/vim#18650 (rust.vim: stop setting formatprg to rustfmt) closes: vim/vim#19108 https://github.com/vim/vim/commit/dcc41752843428142623b527433c551991ea7a31 Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2026-02-10vim-patch:5ed3723: runtime(ruby): Update for Vim 9.2 release (#37806)zeertzjq1
closes: vim/vim#19316 https://github.com/vim/vim/commit/5ed37232bb23245f6d59fa928a7654d3933a2f0a Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2026-02-09vim-patch:b422a33: runtime(gdb): Update syntax and ftplugin (#37783)zeertzjq1
- Change syntax file maintainer. - Add Guile and Python command highlighting. - Update command list to version 12. - Add foldable regions for the commands 'define', 'if' and 'while' multiline commands. - Support documented partial command names. - Add matchit, browsefilter, and comment formatting support. - Support embedded C in compiler {code|print} commands. - Add largely complete settings highlighting and folding. - Add syntax tests (incomplete). Thanks to Claudio Fleiner for many years of maintenance. closes: vim/vim#10649 https://github.com/vim/vim/commit/b422a33ac22dbd0086f64e7540afefc0c9a5a7ee Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2026-02-06vim-patch:56d470a: runtime(lf): update syntax to support lf version r41 (#37750)zeertzjq1
Also, mark @CatsDeservePets as maintainer. closes: vim/vim#18640 https://github.com/vim/vim/commit/56d470a00863234f455fbfba6a96de4f49fe33aa Co-authored-by: CatsDeservePets <145048791+CatsDeservePets@users.noreply.github.com>
2026-02-04vim-patch:ac5af8e: runtime(vim): Fix for :VimKeywordPrg when syntax does not ↵zeertzjq1
match When using vim9-syntax plugin, :VimKeywordPrg does not lookup functions correctly, as it relies solely on syntax names to find the help topic. The syntax keyword used for builtin function is vi9FuncNameBuiltin in vim9-syntax plugin, not vimFuncName expected by :VimKeywordPrg, so the fallback rules apply, and there is no fallback rule for function calls. Fix by just checking if the first char after topic is '(', and if so assume help topic is a function. closes: vim/vim#19320 https://github.com/vim/vim/commit/ac5af8ecd3025c2739ab79f6b8529ea0415c1380 Co-authored-by: Mark Woods <mwoods.online.ie@gmail.com>
2026-02-04vim-patch:c65643c: runtime(vim): Update ftplugin, fix option variable ↵zeertzjq1
'keywordprg' matching - Match &option, and &[lg]:option variables. - Match Ex commands after :bar. - Fix matching of pre and post context text. - Style - use '..' for string concatenation. fixes vim/vim#17567 closes: vim/vim#17653 https://github.com/vim/vim/commit/c65643cbec4f5a77a2d30232c64c258b5f0f5c09 Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2026-01-27vim-patch:b8efcc0: runtime(vim): set 'path' to common Vim directorieszeertzjq1
closes: vim/vim#19219 https://github.com/vim/vim/commit/b8efcc02028d9a3aa5844978025997e258d84469 Co-authored-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
2026-01-26vim-patch:dd3aa92: runtime(toml): update syntax and ftplugin.zeertzjq1
Add "-" to iskeyword. This required a change to the syntax files too because they were using the word begin and end atoms. closes: vim/vim#17259 https://github.com/vim/vim/commit/dd3aa92ce610c2f61e5b8899d68dbe7f840cc377 Co-authored-by: Aman Verma <amanraoverma@gmail.com> Co-authored-by: Teemu Ikonen <tpikonen@mailbox.org> Co-authored-by: A4-Tacks <wdsjxhno1001@163.com>
2026-01-26vim-patch:9.1.2110: filetype: skhd files are not recognizedzeertzjq1
Problem: filetype: skhd files are not recognized Solution: Detect .skhdrc and skhdrc as skhd filetype, include a syntax and filetype plugin, add syntax tests (Kiyoon Kim) Add syntax highlighting for skhd (simple hotkey daemon for macOS) configuration files. Includes filetype detection for skhdrc and .skhdrc files. Reference: - https://github.com/asmvik/skhd closes: vim/vim#19235 https://github.com/vim/vim/commit/e5f61842b509acea91c63923e60987ad7ae123dd Co-authored-by: Kiyoon Kim <kiyoon@users.noreply.github.com>
2026-01-24vim-patch:09a4805: runtime(csh): Update ftplugin, improve matchit behaviourzeertzjq1
- Allow for an unparenthesised expression argument to the 'if', 'if-then', and 'while' commands. This is undocumented, and probably unintended, behaviour but is frequently seen in the wild. - Allow for a continued-line expression argument to the 'if-then' command. related: vim/vim#19172 (csh: Support negated if in matchit) closes: vim/vim#19190 https://github.com/vim/vim/commit/09a48056c775074e0c29aaaf252ccea918f42bbc Co-authored-by: Doug Kearns <dougkearns@gmail.com>
2026-01-22vim-patch:87635dc: runtime(kitty): Add kitty ftplugin filezeertzjq1
closes: vim/vim#19232 https://github.com/vim/vim/commit/87635dcb5ad0b55cddc71ca7e9bc312ef87d5246 Co-authored-by: Arvin Verain <arvinverain@proton.me>
2026-01-20vim-patch:d829e10: runtime(sml): add 'include' setting to ftpluginzeertzjq1
closes: vim/vim#19156 https://github.com/vim/vim/commit/d829e10e0fa36de50ce230ee840dfc727e252642 Co-authored-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
2026-01-20vim-patch:b1fa262: runtime(asm): add '#' as comment symbol (GNU as)zeertzjq1
closes: vim/vim#19158 https://github.com/vim/vim/commit/b1fa262960ca3ef910ae192db58d28b3e3c7719a Co-authored-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
2026-01-19vim-patch:0b103d6: runtime(haskell): add include-search and define support ↵zeertzjq1
in ftplugin closes: vim/vim#19143 https://github.com/vim/vim/commit/0b103d6a7c2dd6a858f02a0bc93c5d93efc303c7 Co-authored-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
2026-01-16vim-patch:f25c343: runtime(csh): Support negated if in matchitzeertzjq1
Currently, the matchit configuration chokes on valid syntax like: ```csh if !(true) then true endif ``` Make sure the negation syntax is supported. closes: vim/vim#19172 https://github.com/vim/vim/commit/f25c343b2639d393544106c21b3b0b58caa3adca Co-authored-by: Simão Afonso <simao.afonso@powertools-tech.com>
2026-01-14vim-patch:17d60ce: runtime(compiler): add compiler plugin for cabalzeertzjq1
closes: vim/vim#19152 https://github.com/vim/vim/commit/17d60cee555ec36e62492793159f9051218a6bd9 Co-authored-by: Mateo Gjika <104777599+mateoxh@users.noreply.github.com>
2026-01-12vim-patch:be62259: runtime(rst): set suffixesadd for rst (#37365)zeertzjq1
Add .rst to suffixesadd. This allows gf and similar commands to work for rst documentation such as in the linux kernel Documentation. closes: vim/vim#19149 https://github.com/vim/vim/commit/be6225976c0b7d120c41026de5616e76851dd2f2 Co-authored-by: Anakin Childerhose <anakin@childerhose.ca> Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-10vim-patch:fc00006: runtime(sieve): preserve existing line endings in ↵zeertzjq1
ftplugin (#37334) Only set fileformat=dos for new files; preserve existing line endings when editing. This satisfies RFC 5228 for new files while avoiding issues with version control and existing workflows. The previous change (3cb4148) unconditionally set fileformat=dos, which converts existing files with LF line endings to CRLF on save. This causes issues with version control (entire file appears changed) and breaks workflows where sieve files are stored with unix line endings. Dovecot Pigeonhole (the main sieve implementation) has explicitly accepted LF line endings since 2008 (commit 97b967b5): /* Loose LF is allowed (non-standard) and converted to CRLF */ This behavior has remained unchanged for almost 18 years. closes: vim/vim#19144 https://github.com/vim/vim/commit/fc00006777594f969ba8fcff676e6ca1bcb43546 Co-authored-by: André-Patrick Bubel <code@apb.name> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08vim-patch:5eb10c5: runtime(xml): update XML runtime fileszeertzjq1
closes: vim/vim#19112 https://github.com/vim/vim/commit/5eb10c5359e05338050819b8229bd4c8af36d365 Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-08vim-patch:c45e16a: runtime(zsh): Update runtime fileszeertzjq1
closes: vim/vim#19113 https://github.com/vim/vim/commit/c45e16a939b5d924d13bf234a5905b5b599884fc Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-03vim-patch:57352b2: runtime: mention subscription only ml, fix typo in ↵zeertzjq6
maintainer email (#37222) https://github.com/vim/vim/commit/57352b279d4de492dee4be07d6bc4a116599bbac Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-03vim-patch:cc71684: runtime(logtalk): Update Logtalk runtime files for the ↵zeertzjq1
latest language spec (#37205) closes: vim/vim#19058 https://github.com/vim/vim/commit/cc71684ab0025e87b697ed0b359214061f143392 Co-authored-by: Paulo Moura <pmoura@logtalk.org>
2026-01-02vim-patch:62d8f3d: runtime: Revert several "mark invalid contact addresses" ↵zeertzjq73
commits (#37192) This reverts commits: - 6b652a785033fd4164e049492a7327c1ed7c3e5f - 2f689d5abde0ccddca9e20d8c93a0299bd054e32 - a025a46d4169587145fb54f04af349cd05cb6122 Several email addresses that are known to be valid caused bounces due to an issue with my email setup. The previous commits incorrectly marked these addresses as invalid. So revert the whole thing again. https://github.com/vim/vim/commit/62d8f3dab5a0b30c31a8df86a973c5e59821a3f0 N/A patch: vim-patch:2f689d5: runtime: mark more invalid email addresses Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-01vim-patch:a025a46: runtime: mark more invalid email addresseszeertzjq8
https://github.com/vim/vim/commit/a025a46d4169587145fb54f04af349cd05cb6122 Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-01vim-patch:partial:2f689d5: runtime: mark more invalid email addresseszeertzjq65
https://github.com/vim/vim/commit/2f689d5abde0ccddca9e20d8c93a0299bd054e32 Skip colors/ and syntax/help_ru.vim: missing previous changes. Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-12-28feat(pack): hint in confirmation buffer that plugin is not activeEvgeni Chasnovski1
Problem: After `vim.pack.update()` it is not clear if plugin is active or not. This can be useful to detect cases when plugin was removed from 'init.lua' but there was no `vim.pack.del()`. Solution: Add ` (not active)` suffix with distinctive highlighting to header of plugins that are not active. It will also be shown in in-process LSP document symbols to have quick reference about which plugins are not active.