mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 05:35:10 -07:00
c89150241d
This commit makaes the following changes to the vim help syntax:
- fix excessive URL detection in help, because `file:{filename}` in
doc/options.txt is determined to be a URL.
- update highlighting N for :resize in help
- split Italian-specific syntax into separate help script
- highlight `Note` in parentheses in help
- update 'titlestring' behaviour in documentation for invalid '%' format
closes: vim/vim#15883
6c2fc377bf
Co-authored-by: Milly <milly.ca@gmail.com>
226 lines
8.4 KiB
VimL
226 lines
8.4 KiB
VimL
" Vim syntax file
|
|
" Language: Vim help file
|
|
" Maintainer: The Vim Project <https://github.com/vim/vim>
|
|
" Last Change: 2024 Oct 16
|
|
" Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
|
|
|
" Quit when a (custom) syntax file was already loaded
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
let s:cpo_save = &cpo
|
|
set cpo&vim
|
|
|
|
syn match helpHeadline "^[A-Z.][-A-Z0-9 .,()_']*?\=\ze\(\s\+\*\|$\)"
|
|
syn match helpSectionDelim "^===.*===$"
|
|
syn match helpSectionDelim "^---.*--$"
|
|
" 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
|
|
else
|
|
syn region helpExample matchgroup=helpIgnore start=" >[a-z0-9]*$" start="^>[a-z0-9]*$" end="^[^ \t]"me=e-1 end="^<"
|
|
endif
|
|
syn match helpHyperTextJump "\\\@<!|[#-)!+-~]\+|" contains=helpBar
|
|
syn match helpHyperTextEntry "\*[#-)!+-~]\+\*\s"he=e-1 contains=helpStar
|
|
syn match helpHyperTextEntry "\*[#-)!+-~]\+\*$" contains=helpStar
|
|
if has("conceal")
|
|
syn match helpBar contained "|" conceal
|
|
syn match helpBacktick contained "`" conceal
|
|
syn match helpStar contained "\*" conceal
|
|
else
|
|
syn match helpBar contained "|"
|
|
syn match helpBacktick contained "`"
|
|
syn match helpStar contained "\*"
|
|
endif
|
|
syn match helpNormal "|.*====*|"
|
|
syn match helpNormal "|||"
|
|
syn match helpNormal ":|vim:|" " for :help modeline
|
|
syn match helpVim "\<Vim version [0-9][0-9.a-z]*"
|
|
syn match helpVim "VIM REFERENCE.*"
|
|
syn match helpVim "NVIM REFERENCE.*"
|
|
syn match helpOption "'[a-z]\{2,\}'"
|
|
syn match helpOption "'t_..'"
|
|
syn match helpNormal "'ab'"
|
|
syn match helpCommand "`[^` \t]\+`"hs=s+1,he=e-1 contains=helpBacktick
|
|
" doesn't allow a . directly after an ending backtick. See :helpgrep `[^`,]\+ [^`,]\+`\.
|
|
syn match helpCommand "\(^\|[^a-z"[]\)\zs`[^`]\+`\ze\([^a-z\t."']\|[.?!]\?$\)"hs=s+1,he=e-1 contains=helpBacktick
|
|
syn match helpHeader "\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore
|
|
syn match helpGraphic ".* \ze`$" nextgroup=helpIgnore
|
|
if has("conceal")
|
|
syn match helpIgnore "." contained conceal
|
|
else
|
|
syn match helpIgnore "." contained
|
|
endif
|
|
syn keyword helpNote note Note NOTE note: Note: NOTE: Notes Notes:
|
|
syn match helpNote "\c(note\(:\|\>\)"ms=s+1
|
|
syn keyword helpWarning WARNING WARNING: Warning:
|
|
syn keyword helpDeprecated DEPRECATED DEPRECATED: Deprecated:
|
|
syn match helpSpecial "\<N\>"
|
|
syn match helpSpecial "\<N\.$"me=e-1
|
|
syn match helpSpecial "\<N\.\s"me=e-2
|
|
syn match helpSpecial "(N\>"ms=s+1
|
|
|
|
syn match helpSpecial "\[N]"
|
|
" avoid highlighting N N in quickref.txt
|
|
syn match helpSpecial "N N"he=s+1
|
|
syn match helpSpecial "Nth"me=e-2
|
|
syn match helpSpecial "N-1"me=e-2
|
|
" highlighting N for :resize in windows.txt
|
|
syn match helpSpecial "] -N\>"ms=s+3
|
|
syn match helpSpecial "+N\>"ms=s+1
|
|
syn match helpSpecial "\[+-]N\>"ms=s+4
|
|
" highlighting N of cinoptions-values in indent.txt
|
|
syn match helpSpecial "^\t-\?\zsNs\?\s"me=s+1
|
|
" highlighting N of cinoptions-values in indent.txt
|
|
syn match helpSpecial "^\t[>enf{}^L:=lbghNEpti+cC/(uUwWkmMjJ)*#P]N\s"ms=s+2,me=e-1
|
|
syn match helpSpecial "{[-_a-zA-Z0-9'"*+/:%#=[\]<>.,]\+}"
|
|
syn match helpSpecial "\s\[[-a-z^A-Z0-9_]\{2,}]"ms=s+1
|
|
syn match helpSpecial "<[-a-zA-Z0-9_]\+>"
|
|
syn match helpSpecial "<[SCM]-.>"
|
|
syn match helpNormal "<---*>"
|
|
syn match helpSpecial "\[range]"
|
|
syn match helpSpecial "\[line]"
|
|
syn match helpSpecial "\[count]"
|
|
syn match helpSpecial "\[offset]"
|
|
syn match helpSpecial "\[cmd]"
|
|
syn match helpSpecial "\[num]"
|
|
syn match helpSpecial "\[+num]"
|
|
syn match helpSpecial "\[-num]"
|
|
syn match helpSpecial "\[+cmd]"
|
|
syn match helpSpecial "\[++opt]"
|
|
syn match helpSpecial "\[arg]"
|
|
syn match helpSpecial "\[arguments]"
|
|
syn match helpSpecial "\[ident]"
|
|
syn match helpSpecial "\[addr]"
|
|
syn match helpSpecial "\[group]"
|
|
" Don't highlight [converted] and others that do not have a tag
|
|
syn match helpNormal "\[\(readonly\|fifo\|socket\|converted\|crypted\)]"
|
|
|
|
syn match helpSpecial "CTRL-."
|
|
syn match helpSpecial "CTRL-<\a\+>"
|
|
syn match helpSpecial "CTRL-SHIFT-."
|
|
syn match helpSpecial "CTRL-Break"
|
|
syn match helpSpecial "CTRL-PageUp"
|
|
syn match helpSpecial "CTRL-PageDown"
|
|
syn match helpSpecial "CTRL-Insert"
|
|
syn match helpSpecial "CTRL-Del"
|
|
syn match helpSpecial "CTRL-{char}"
|
|
syn match helpSpecial "META-."
|
|
syn match helpSpecial "ALT-."
|
|
|
|
" Highlight group items in their own color.
|
|
syn match helpComment "\t[* ]Comment\t\+[a-z].*"
|
|
syn match helpConstant "\t[* ]Constant\t\+[a-z].*"
|
|
syn match helpString "\t[* ]String\t\+[a-z].*"
|
|
syn match helpCharacter "\t[* ]Character\t\+[a-z].*"
|
|
syn match helpNumber "\t[* ]Number\t\+[a-z].*"
|
|
syn match helpBoolean "\t[* ]Boolean\t\+[a-z].*"
|
|
syn match helpFloat "\t[* ]Float\t\+[a-z].*"
|
|
syn match helpIdentifier "\t[* ]Identifier\t\+[a-z].*"
|
|
syn match helpFunction "\t[* ]Function\t\+[a-z].*"
|
|
syn match helpStatement "\t[* ]Statement\t\+[a-z].*"
|
|
syn match helpConditional "\t[* ]Conditional\t\+[a-z].*"
|
|
syn match helpRepeat "\t[* ]Repeat\t\+[a-z].*"
|
|
syn match helpLabel "\t[* ]Label\t\+[a-z].*"
|
|
syn match helpOperator "\t[* ]Operator\t\+["a-z].*"
|
|
syn match helpKeyword "\t[* ]Keyword\t\+[a-z].*"
|
|
syn match helpException "\t[* ]Exception\t\+[a-z].*"
|
|
syn match helpPreProc "\t[* ]PreProc\t\+[a-z].*"
|
|
syn match helpInclude "\t[* ]Include\t\+[a-z].*"
|
|
syn match helpDefine "\t[* ]Define\t\+[a-z].*"
|
|
syn match helpMacro "\t[* ]Macro\t\+[a-z].*"
|
|
syn match helpPreCondit "\t[* ]PreCondit\t\+[a-z].*"
|
|
syn match helpType "\t[* ]Type\t\+[a-z].*"
|
|
syn match helpStorageClass "\t[* ]StorageClass\t\+[a-z].*"
|
|
syn match helpStructure "\t[* ]Structure\t\+[a-z].*"
|
|
syn match helpTypedef "\t[* ]Typedef\t\+[Aa-z].*"
|
|
syn match helpSpecial "\t[* ]Special\t\+[a-z].*"
|
|
syn match helpSpecialChar "\t[* ]SpecialChar\t\+[a-z].*"
|
|
syn match helpTag "\t[* ]Tag\t\+[a-z].*"
|
|
syn match helpDelimiter "\t[* ]Delimiter\t\+[a-z].*"
|
|
syn match helpSpecialComment "\t[* ]SpecialComment\t\+[a-z].*"
|
|
syn match helpDebug "\t[* ]Debug\t\+[a-z].*"
|
|
syn match helpUnderlined "\t[* ]Underlined\t\+[a-z].*"
|
|
syn match helpError "\t[* ]Error\t\+[a-z].*"
|
|
syn match helpTodo "\t[* ]Todo\t\+[a-z].*"
|
|
|
|
syn match helpURL `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^'" \t<>{}]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^'" \t<>{}]+)[a-zA-Z0-9/]`
|
|
|
|
syn match helpDiffAdded "\t[* ]Added\t\+[a-z].*"
|
|
syn match helpDiffChanged "\t[* ]Changed\t\+[a-z].*"
|
|
syn match helpDiffRemoved "\t[* ]Removed\t\+[a-z].*"
|
|
|
|
" Additionally load a language-specific syntax file "help_ab.vim".
|
|
let s:i = match(expand("%"), '\.\a\ax$')
|
|
if s:i > 0
|
|
exe "runtime syntax/help_" . strpart(expand("%"), s:i + 1, 2) . ".vim"
|
|
endif
|
|
|
|
syn sync minlines=40
|
|
|
|
|
|
" Define the default highlighting.
|
|
" Only used when an item doesn't have highlighting yet
|
|
hi def link helpIgnore Ignore
|
|
hi def link helpHyperTextJump Identifier
|
|
hi def link helpBar Ignore
|
|
hi def link helpBacktick Ignore
|
|
hi def link helpStar Ignore
|
|
hi def link helpHyperTextEntry String
|
|
hi def link helpHeadline Statement
|
|
hi def link helpHeader PreProc
|
|
hi def link helpSectionDelim PreProc
|
|
hi def link helpVim Identifier
|
|
hi def link helpCommand Comment
|
|
hi def link helpExample Comment
|
|
hi def link helpOption Type
|
|
hi def link helpSpecial Special
|
|
hi def link helpNote Todo
|
|
hi def link helpWarning Todo
|
|
hi def link helpDeprecated Todo
|
|
|
|
hi def link helpComment Comment
|
|
hi def link helpConstant Constant
|
|
hi def link helpString String
|
|
hi def link helpCharacter Character
|
|
hi def link helpNumber Number
|
|
hi def link helpBoolean Boolean
|
|
hi def link helpFloat Float
|
|
hi def link helpIdentifier Identifier
|
|
hi def link helpFunction Function
|
|
hi def link helpStatement Statement
|
|
hi def link helpConditional Conditional
|
|
hi def link helpRepeat Repeat
|
|
hi def link helpLabel Label
|
|
hi def link helpOperator Operator
|
|
hi def link helpKeyword Keyword
|
|
hi def link helpException Exception
|
|
hi def link helpPreProc PreProc
|
|
hi def link helpInclude Include
|
|
hi def link helpDefine Define
|
|
hi def link helpMacro Macro
|
|
hi def link helpPreCondit PreCondit
|
|
hi def link helpType Type
|
|
hi def link helpStorageClass StorageClass
|
|
hi def link helpStructure Structure
|
|
hi def link helpTypedef Typedef
|
|
hi def link helpSpecialChar SpecialChar
|
|
hi def link helpTag Tag
|
|
hi def link helpDelimiter Delimiter
|
|
hi def link helpSpecialComment SpecialComment
|
|
hi def link helpDebug Debug
|
|
hi def link helpUnderlined Underlined
|
|
hi def link helpError Error
|
|
hi def link helpTodo Todo
|
|
hi def link helpURL String
|
|
hi def link helpDiffAdded Added
|
|
hi def link helpDiffChanged Changed
|
|
hi def link helpDiffRemoved Removed
|
|
|
|
let b:current_syntax = "help"
|
|
|
|
let &cpo = s:cpo_save
|
|
unlet s:cpo_save
|
|
" vim: ts=8 sw=2
|