neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 11ae879ebd555b36dbc38d798dabf8641bb11f05
parent 5ebaf832562f36a4c0e996f8b5f3436969ed587e
Author: brianhuster <phambinhanctb2004@gmail.com>
Date:   Sat, 31 May 2025 17:13:46 +0700

vim-patch:6fea0a5: runtime(help): Add Vim lang annotation support for codeblocks

closes: vim/vim#16215

https://github.com/vim/vim/commit/6fea0a54804fc36ab7138a66210b0eb380d96198

Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>

Diffstat:
Mruntime/doc/helphelp.txt | 8+++++++-
Mruntime/syntax/help.vim | 15++++++++++++++-
2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt @@ -377,7 +377,13 @@ also implicitly stops the block of ex-commands before it. E.g. > echo "Example" endfunction < - +It's possible to add Vim syntax highlighting support to code examples. This +can be done by adding "vim" after the greater than (>) character (">vim"). +E.g: >vim + function Example_Func() + echo "Example" + endfunction +< The following are highlighted differently in a Vim help file: - a special key name expressed either in <> notation as in <PageDown>, or as a Ctrl character as in CTRL-X diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Vim help file " Maintainer: The Vim Project <https://github.com/vim/vim> -" Last Change: 2024 Oct 16 +" Last Change: 2024 Dec 15 " Former Maintainer: Bram Moolenaar <Bram@vim.org> " Quit when a (custom) syntax file was already loaded @@ -15,11 +15,24 @@ set cpo&vim syn match helpHeadline "^[A-Z.][-A-Z0-9 .,()_']*?\=\ze\(\s\+\*\|$\)" syn match helpSectionDelim "^===.*===$" syn match helpSectionDelim "^---.*--$" + +unlet! b:current_syntax +" sil! to prevent E403 +silent! syntax include @VimScript syntax/vim.vim + " Nvim: support language annotation in codeblocks if has("conceal") syn region helpExample matchgroup=helpIgnore start=" >[a-z0-9]*$" start="^>[a-z0-9]*$" end="^[^ \t]"me=e-1 end="^<" concealends + syn region helpExampleVimScript matchgroup=helpIgnore + \ start=/^>vim$/ start=/ >vim$/ + \ end=/^[^ \t]/me=e-1 end=/^</ concealends + \ contains=@VimScript keepend else syn region helpExample matchgroup=helpIgnore start=" >[a-z0-9]*$" start="^>[a-z0-9]*$" end="^[^ \t]"me=e-1 end="^<" + syn region helpExampleVimScript matchgroup=helpIgnore + \ start=/^>vim$/ start=/ >vim$/ + \ end=/^[^ \t]/me=e-1 end=/^</ + \ contains=@VimScript keepend endif syn match helpHyperTextJump "\\\@<!|[#-)!+-~]\+|" contains=helpBar syn match helpHyperTextEntry "\*[#-)!+-~]\+\*\s"he=e-1 contains=helpStar