diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2025-09-15 08:27:55 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-15 08:27:55 +0800 |
| commit | e2ab5e1db7fce3d221e986ede4ac5eb7dbcbdd71 (patch) | |
| tree | b57b4ecfb4f338582b964c27cdedd360b93eb740 /runtime/ftplugin/html.vim | |
| parent | 3f1b12c886d028fda199869553724093e68174ec (diff) | |
| download | rneovim-e2ab5e1db7fce3d221e986ede4ac5eb7dbcbdd71.tar.gz rneovim-e2ab5e1db7fce3d221e986ede4ac5eb7dbcbdd71.tar.bz2 rneovim-e2ab5e1db7fce3d221e986ede4ac5eb7dbcbdd71.zip | |
vim-patch:81ca991: runtime(html): guard against an existing b:undo_ftplugin var (#35763)
Filetype plugins should not assume they are the only file to execute on
behalf of a buffer's filetype: other filetypes may use them, and
dotted filetypes may cause multiple to run. When this occurs, they
should _build_ on their respective b:undo_ftplugin settings, not
overwrite each other.
For example, when using a dotted filetype wiki.markdown, the wiki
filetype plugins go first. Then, during the markdown filetype plugins,
the HTML plugin's unconditional assignment to b:undo_ftplugin trashes
any data previously stored there by the wiki filetype.
Follow the pattern elsewhere of assigning or appending conditionally.
closes: vim/vim#18267
https://github.com/vim/vim/commit/81ca9916d2fb2675a1a6da22fd68d26fb0ee8b8e
Co-authored-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Diffstat (limited to 'runtime/ftplugin/html.vim')
| -rw-r--r-- | runtime/ftplugin/html.vim | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/runtime/ftplugin/html.vim b/runtime/ftplugin/html.vim index 7736b5b054..26b99d2bc3 100644 --- a/runtime/ftplugin/html.vim +++ b/runtime/ftplugin/html.vim @@ -2,9 +2,7 @@ " Language: HTML " Maintainer: Doug Kearns <dougkearns@gmail.com> " Previous Maintainer: Dan Sharp -" Last Change: 2024 Jan 14 -" 2024 May 24 update 'commentstring' option -" 2025 May 10 add expression folding #17141 +" Last Change: 2025 Sep 12 if exists("b:did_ftplugin") finish @@ -18,7 +16,12 @@ setlocal matchpairs+=<:> setlocal commentstring=<!--\ %s\ --> setlocal comments=s:<!--,m:\ \ \ \ ,e:--> -let b:undo_ftplugin = "setlocal comments< commentstring< matchpairs<" +if exists('b:undo_ftplugin') + " no whitespace before |, handle possible :unmap at end of current value + let b:undo_ftplugin ..= "| setlocal comments< commentstring< matchpairs<" +else + let b:undo_ftplugin = "setlocal comments< commentstring< matchpairs<" +endif if get(g:, "ft_html_autocomment", 0) setlocal formatoptions-=t formatoptions+=croql |