runtime(help): Add Vim lang annotation support for codeblocks

closes: #16215

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Shougo Matsushita <Shougo.Matsu@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Shougo Matsushita
2024-12-15 20:47:37 +01:00
committed by Christian Brabandt
parent 3a3a2c921c
commit 6fea0a5480
2 changed files with 23 additions and 5 deletions

View File

@ -1,4 +1,4 @@
*helphelp.txt* For Vim version 9.1. Last change: 2024 Nov 19
*helphelp.txt* For Vim version 9.1. Last change: 2024 Dec 15
VIM REFERENCE MANUAL by Bram Moolenaar
@ -437,7 +437,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

View File

@ -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,10 +15,22 @@ 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
if has("conceal")
syn region helpExample matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<" concealends
else
syn region helpExample matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<"
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=" >$" start="^>$" 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
if has("ebcdic")
syn match helpHyperTextJump "\\\@<!|[^"*|]\+|" contains=helpBar