mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
737 lines
35 KiB
VimL
737 lines
35 KiB
VimL
|
" Vim syntax file
|
|||
|
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
|||
|
" Latest Revision: 2009-05-25
|
|||
|
|
|||
|
if exists("b:current_syntax")
|
|||
|
finish
|
|||
|
endif
|
|||
|
|
|||
|
let s:cpo_save = &cpo
|
|||
|
set cpo&vim
|
|||
|
|
|||
|
if exists("g:kconfig_syntax_heavy")
|
|||
|
|
|||
|
syn match kconfigBegin '^' nextgroup=kconfigKeyword
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn keyword kconfigTodo contained TODO FIXME XXX NOTE
|
|||
|
|
|||
|
syn match kconfigComment display '#.*$' contains=kconfigTodo
|
|||
|
|
|||
|
syn keyword kconfigKeyword config nextgroup=kconfigSymbol
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn keyword kconfigKeyword menuconfig nextgroup=kconfigSymbol
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn keyword kconfigKeyword comment menu mainmenu
|
|||
|
\ nextgroup=kconfigKeywordPrompt
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn keyword kconfigKeyword choice
|
|||
|
\ nextgroup=@kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn keyword kconfigKeyword endmenu endchoice
|
|||
|
|
|||
|
syn keyword kconfigPreProc source
|
|||
|
\ nextgroup=kconfigPath
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
" TODO: This is a hack. The who .*Expr stuff should really be generated so
|
|||
|
" that we can reuse it for various nextgroups.
|
|||
|
syn keyword kconfigConditional if endif
|
|||
|
\ nextgroup=@kconfigConfigOptionIfExpr
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigKeywordPrompt '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigPath '"[^"\\]*\%(\\.[^"\\]*\)*"\|\S\+'
|
|||
|
\ contained
|
|||
|
|
|||
|
syn match kconfigSymbol '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
" FIXME: There is – probably – no reason to cluster these instead of just
|
|||
|
" defining them in the same group.
|
|||
|
syn cluster kconfigConfigOptions contains=kconfigTypeDefinition,
|
|||
|
\ kconfigInputPrompt,
|
|||
|
\ kconfigDefaultValue,
|
|||
|
\ kconfigDependencies,
|
|||
|
\ kconfigReverseDependencies,
|
|||
|
\ kconfigNumericalRanges,
|
|||
|
\ kconfigHelpText,
|
|||
|
\ kconfigDefBool,
|
|||
|
\ kconfigOptional
|
|||
|
|
|||
|
syn keyword kconfigTypeDefinition bool boolean tristate string hex int
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigTypeDefPrompt,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigTypeDefPrompt '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigTypeDefPrompt "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn keyword kconfigInputPrompt prompt
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigPromptPrompt
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigPromptPrompt '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigPromptPrompt "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn keyword kconfigDefaultValue default
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionExpr
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigDependencies 'depends on\|requires'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionIfExpr
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn keyword kconfigReverseDependencies select
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigRevDepSymbol
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn cluster kconfigRevDepSymbol contains=kconfigRevDepCSymbol,
|
|||
|
\ kconfigRevDepNCSymbol
|
|||
|
|
|||
|
syn match kconfigRevDepCSymbol '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigRevDepCSymbol "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigRevDepNCSymbol '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn keyword kconfigNumericalRanges range
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigRangeSymbol
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn cluster kconfigRangeSymbol contains=kconfigRangeCSymbol,
|
|||
|
\ kconfigRangeNCSymbol
|
|||
|
|
|||
|
syn match kconfigRangeCSymbol '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigRangeSymbol2
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigRangeCSymbol "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigRangeSymbol2
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigRangeNCSymbol '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigRangeSymbol2
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn cluster kconfigRangeSymbol2 contains=kconfigRangeCSymbol2,
|
|||
|
\ kconfigRangeNCSymbol2
|
|||
|
|
|||
|
syn match kconfigRangeCSymbol2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigRangeNCSymbol2 '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn region kconfigHelpText contained
|
|||
|
\ matchgroup=kconfigConfigOption
|
|||
|
\ start='\%(help\|---help---\)\ze\s*\n\z(\s\+\)'
|
|||
|
\ skip='^$'
|
|||
|
\ end='^\z1\@!'
|
|||
|
\ nextgroup=@kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
" XXX: Undocumented
|
|||
|
syn keyword kconfigDefBool def_bool
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigDefBoolSymbol
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn cluster kconfigDefBoolSymbol contains=kconfigDefBoolCSymbol,
|
|||
|
\ kconfigDefBoolNCSymbol
|
|||
|
|
|||
|
syn match kconfigDefBoolCSymbol '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigDefBoolCSymbol "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigDefBoolNCSymbol '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
" XXX: This is actually only a valid option for “choice”, but treating it
|
|||
|
" specially would require a lot of extra groups.
|
|||
|
syn keyword kconfigOptional optional
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn keyword kconfigConfigOptionIf if
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionIfExpr
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn cluster kconfigConfigOptionIfExpr contains=@kconfigConfOptIfExprSym,
|
|||
|
\ kconfigConfOptIfExprNeg,
|
|||
|
\ kconfigConfOptIfExprGroup
|
|||
|
|
|||
|
syn cluster kconfigConfOptIfExprSym contains=kconfigConfOptIfExprCSym,
|
|||
|
\ kconfigConfOptIfExprNCSym
|
|||
|
|
|||
|
syn match kconfigConfOptIfExprCSym '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptions,
|
|||
|
\ kconfigConfOptIfExprAnd,
|
|||
|
\ kconfigConfOptIfExprOr,
|
|||
|
\ kconfigConfOptIfExprEq,
|
|||
|
\ kconfigConfOptIfExprNEq
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptIfExprCSym "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptions,
|
|||
|
\ kconfigConfOptIfExprAnd,
|
|||
|
\ kconfigConfOptIfExprOr,
|
|||
|
\ kconfigConfOptIfExprEq,
|
|||
|
\ kconfigConfOptIfExprNEq
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptIfExprNCSym '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptions,
|
|||
|
\ kconfigConfOptIfExprAnd,
|
|||
|
\ kconfigConfOptIfExprOr,
|
|||
|
\ kconfigConfOptIfExprEq,
|
|||
|
\ kconfigConfOptIfExprNEq
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn cluster kconfigConfOptIfExprSym2 contains=kconfigConfOptIfExprCSym2,
|
|||
|
\ kconfigConfOptIfExprNCSym2
|
|||
|
|
|||
|
syn match kconfigConfOptIfExprEq '='
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfOptIfExprSym2
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptIfExprNEq '!='
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfOptIfExprSym2
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptIfExprCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptions,
|
|||
|
\ kconfigConfOptIfExprAnd,
|
|||
|
\ kconfigConfOptIfExprOr
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptIfExprNCSym2 '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptions,
|
|||
|
\ kconfigConfOptIfExprAnd,
|
|||
|
\ kconfigConfOptIfExprOr
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptIfExprNeg '!'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionIfExpr
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptIfExprAnd '&&'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionIfExpr
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptIfExprOr '||'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionIfExpr
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptIfExprGroup '('
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionIfGExp
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
" TODO: hm, this kind of recursion doesn't work right. We need another set of
|
|||
|
" expressions that have kconfigConfigOPtionIfGExp as nextgroup and a matcher
|
|||
|
" for '(' that sets it all off.
|
|||
|
syn cluster kconfigConfigOptionIfGExp contains=@kconfigConfOptIfGExpSym,
|
|||
|
\ kconfigConfOptIfGExpNeg,
|
|||
|
\ kconfigConfOptIfExprGroup
|
|||
|
|
|||
|
syn cluster kconfigConfOptIfGExpSym contains=kconfigConfOptIfGExpCSym,
|
|||
|
\ kconfigConfOptIfGExpNCSym
|
|||
|
|
|||
|
syn match kconfigConfOptIfGExpCSym '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigIf,
|
|||
|
\ kconfigConfOptIfGExpAnd,
|
|||
|
\ kconfigConfOptIfGExpOr,
|
|||
|
\ kconfigConfOptIfGExpEq,
|
|||
|
\ kconfigConfOptIfGExpNEq
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptIfGExpCSym "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigIf,
|
|||
|
\ kconfigConfOptIfGExpAnd,
|
|||
|
\ kconfigConfOptIfGExpOr,
|
|||
|
\ kconfigConfOptIfGExpEq,
|
|||
|
\ kconfigConfOptIfGExpNEq
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptIfGExpNCSym '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfOptIfExprGrpE,
|
|||
|
\ kconfigConfOptIfGExpAnd,
|
|||
|
\ kconfigConfOptIfGExpOr,
|
|||
|
\ kconfigConfOptIfGExpEq,
|
|||
|
\ kconfigConfOptIfGExpNEq
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn cluster kconfigConfOptIfGExpSym2 contains=kconfigConfOptIfGExpCSym2,
|
|||
|
\ kconfigConfOptIfGExpNCSym2
|
|||
|
|
|||
|
syn match kconfigConfOptIfGExpEq '='
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfOptIfGExpSym2
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptIfGExpNEq '!='
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfOptIfGExpSym2
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptIfGExpCSym2 '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfOptIfExprGrpE,
|
|||
|
\ kconfigConfOptIfGExpAnd,
|
|||
|
\ kconfigConfOptIfGExpOr
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptIfGExpCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfOptIfExprGrpE,
|
|||
|
\ kconfigConfOptIfGExpAnd,
|
|||
|
\ kconfigConfOptIfGExpOr
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptIfGExpNCSym2 '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfOptIfExprGrpE,
|
|||
|
\ kconfigConfOptIfGExpAnd,
|
|||
|
\ kconfigConfOptIfGExpOr
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptIfGExpNeg '!'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionIfGExp
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptIfGExpAnd '&&'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionIfGExp
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptIfGExpOr '||'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionIfGExp
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptIfExprGrpE ')'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptions,
|
|||
|
\ kconfigConfOptIfExprAnd,
|
|||
|
\ kconfigConfOptIfExprOr
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
|
|||
|
syn cluster kconfigConfigOptionExpr contains=@kconfigConfOptExprSym,
|
|||
|
\ kconfigConfOptExprNeg,
|
|||
|
\ kconfigConfOptExprGroup
|
|||
|
|
|||
|
syn cluster kconfigConfOptExprSym contains=kconfigConfOptExprCSym,
|
|||
|
\ kconfigConfOptExprNCSym
|
|||
|
|
|||
|
syn match kconfigConfOptExprCSym '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ kconfigConfOptExprAnd,
|
|||
|
\ kconfigConfOptExprOr,
|
|||
|
\ kconfigConfOptExprEq,
|
|||
|
\ kconfigConfOptExprNEq,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptExprCSym "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ kconfigConfOptExprAnd,
|
|||
|
\ kconfigConfOptExprOr,
|
|||
|
\ kconfigConfOptExprEq,
|
|||
|
\ kconfigConfOptExprNEq,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptExprNCSym '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ kconfigConfOptExprAnd,
|
|||
|
\ kconfigConfOptExprOr,
|
|||
|
\ kconfigConfOptExprEq,
|
|||
|
\ kconfigConfOptExprNEq,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn cluster kconfigConfOptExprSym2 contains=kconfigConfOptExprCSym2,
|
|||
|
\ kconfigConfOptExprNCSym2
|
|||
|
|
|||
|
syn match kconfigConfOptExprEq '='
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfOptExprSym2
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptExprNEq '!='
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfOptExprSym2
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptExprCSym2 '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ kconfigConfOptExprAnd,
|
|||
|
\ kconfigConfOptExprOr,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptExprCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ kconfigConfOptExprAnd,
|
|||
|
\ kconfigConfOptExprOr,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptExprNCSym2 '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ kconfigConfOptExprAnd,
|
|||
|
\ kconfigConfOptExprOr,
|
|||
|
\ @kconfigConfigOptions
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptExprNeg '!'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionExpr
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptExprAnd '&&'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionExpr
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptExprOr '||'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionExpr
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptExprGroup '('
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionGExp
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn cluster kconfigConfigOptionGExp contains=@kconfigConfOptGExpSym,
|
|||
|
\ kconfigConfOptGExpNeg,
|
|||
|
\ kconfigConfOptGExpGroup
|
|||
|
|
|||
|
syn cluster kconfigConfOptGExpSym contains=kconfigConfOptGExpCSym,
|
|||
|
\ kconfigConfOptGExpNCSym
|
|||
|
|
|||
|
syn match kconfigConfOptGExpCSym '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfOptExprGrpE,
|
|||
|
\ kconfigConfOptGExpAnd,
|
|||
|
\ kconfigConfOptGExpOr,
|
|||
|
\ kconfigConfOptGExpEq,
|
|||
|
\ kconfigConfOptGExpNEq
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptGExpCSym "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfOptExprGrpE,
|
|||
|
\ kconfigConfOptGExpAnd,
|
|||
|
\ kconfigConfOptGExpOr,
|
|||
|
\ kconfigConfOptGExpEq,
|
|||
|
\ kconfigConfOptGExpNEq
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptGExpNCSym '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfOptExprGrpE,
|
|||
|
\ kconfigConfOptGExpAnd,
|
|||
|
\ kconfigConfOptGExpOr,
|
|||
|
\ kconfigConfOptGExpEq,
|
|||
|
\ kconfigConfOptGExpNEq
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn cluster kconfigConfOptGExpSym2 contains=kconfigConfOptGExpCSym2,
|
|||
|
\ kconfigConfOptGExpNCSym2
|
|||
|
|
|||
|
syn match kconfigConfOptGExpEq '='
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfOptGExpSym2
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptGExpNEq '!='
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfOptGExpSym2
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptGExpCSym2 '"[^"\\]*\%(\\.[^"\\]*\)*"'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfOptExprGrpE,
|
|||
|
\ kconfigConfOptGExpAnd,
|
|||
|
\ kconfigConfOptGExpOr
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptGExpCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfOptExprGrpE,
|
|||
|
\ kconfigConfOptGExpAnd,
|
|||
|
\ kconfigConfOptGExpOr
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptGExpNCSym2 '\<\k\+\>'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfOptExprGrpE,
|
|||
|
\ kconfigConfOptGExpAnd,
|
|||
|
\ kconfigConfOptGExpOr
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn match kconfigConfOptGExpNeg '!'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionGExp
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptGExpAnd '&&'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionGExp
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptGExpOr '||'
|
|||
|
\ contained
|
|||
|
\ nextgroup=@kconfigConfigOptionGExp
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn match kconfigConfOptExprGrpE ')'
|
|||
|
\ contained
|
|||
|
\ nextgroup=kconfigConfigOptionIf,
|
|||
|
\ kconfigConfOptExprAnd,
|
|||
|
\ kconfigConfOptExprOr
|
|||
|
\ skipwhite skipnl
|
|||
|
|
|||
|
syn sync minlines=50
|
|||
|
|
|||
|
hi def link kconfigTodo Todo
|
|||
|
hi def link kconfigComment Comment
|
|||
|
hi def link kconfigKeyword Keyword
|
|||
|
hi def link kconfigPreProc PreProc
|
|||
|
hi def link kconfigConditional Conditional
|
|||
|
hi def link kconfigPrompt String
|
|||
|
hi def link kconfigKeywordPrompt kconfigPrompt
|
|||
|
hi def link kconfigPath String
|
|||
|
hi def link kconfigSymbol String
|
|||
|
hi def link kconfigConstantSymbol Constant
|
|||
|
hi def link kconfigConfigOption Type
|
|||
|
hi def link kconfigTypeDefinition kconfigConfigOption
|
|||
|
hi def link kconfigTypeDefPrompt kconfigPrompt
|
|||
|
hi def link kconfigInputPrompt kconfigConfigOption
|
|||
|
hi def link kconfigPromptPrompt kconfigPrompt
|
|||
|
hi def link kconfigDefaultValue kconfigConfigOption
|
|||
|
hi def link kconfigDependencies kconfigConfigOption
|
|||
|
hi def link kconfigReverseDependencies kconfigConfigOption
|
|||
|
hi def link kconfigRevDepCSymbol kconfigConstantSymbol
|
|||
|
hi def link kconfigRevDepNCSymbol kconfigSymbol
|
|||
|
hi def link kconfigNumericalRanges kconfigConfigOption
|
|||
|
hi def link kconfigRangeCSymbol kconfigConstantSymbol
|
|||
|
hi def link kconfigRangeNCSymbol kconfigSymbol
|
|||
|
hi def link kconfigRangeCSymbol2 kconfigConstantSymbol
|
|||
|
hi def link kconfigRangeNCSymbol2 kconfigSymbol
|
|||
|
hi def link kconfigHelpText Normal
|
|||
|
hi def link kconfigDefBool kconfigConfigOption
|
|||
|
hi def link kconfigDefBoolCSymbol kconfigConstantSymbol
|
|||
|
hi def link kconfigDefBoolNCSymbol kconfigSymbol
|
|||
|
hi def link kconfigOptional kconfigConfigOption
|
|||
|
hi def link kconfigConfigOptionIf Conditional
|
|||
|
hi def link kconfigConfOptIfExprCSym kconfigConstantSymbol
|
|||
|
hi def link kconfigConfOptIfExprNCSym kconfigSymbol
|
|||
|
hi def link kconfigOperator Operator
|
|||
|
hi def link kconfigConfOptIfExprEq kconfigOperator
|
|||
|
hi def link kconfigConfOptIfExprNEq kconfigOperator
|
|||
|
hi def link kconfigConfOptIfExprCSym2 kconfigConstantSymbol
|
|||
|
hi def link kconfigConfOptIfExprNCSym2 kconfigSymbol
|
|||
|
hi def link kconfigConfOptIfExprNeg kconfigOperator
|
|||
|
hi def link kconfigConfOptIfExprAnd kconfigOperator
|
|||
|
hi def link kconfigConfOptIfExprOr kconfigOperator
|
|||
|
hi def link kconfigDelimiter Delimiter
|
|||
|
hi def link kconfigConfOptIfExprGroup kconfigDelimiter
|
|||
|
hi def link kconfigConfOptIfGExpCSym kconfigConstantSymbol
|
|||
|
hi def link kconfigConfOptIfGExpNCSym kconfigSymbol
|
|||
|
hi def link kconfigConfOptIfGExpEq kconfigOperator
|
|||
|
hi def link kconfigConfOptIfGExpNEq kconfigOperator
|
|||
|
hi def link kconfigConfOptIfGExpCSym2 kconfigConstantSymbol
|
|||
|
hi def link kconfigConfOptIfGExpNCSym2 kconfigSymbol
|
|||
|
hi def link kconfigConfOptIfGExpNeg kconfigOperator
|
|||
|
hi def link kconfigConfOptIfGExpAnd kconfigOperator
|
|||
|
hi def link kconfigConfOptIfGExpOr kconfigOperator
|
|||
|
hi def link kconfigConfOptIfExprGrpE kconfigDelimiter
|
|||
|
hi def link kconfigConfOptExprCSym kconfigConstantSymbol
|
|||
|
hi def link kconfigConfOptExprNCSym kconfigSymbol
|
|||
|
hi def link kconfigConfOptExprEq kconfigOperator
|
|||
|
hi def link kconfigConfOptExprNEq kconfigOperator
|
|||
|
hi def link kconfigConfOptExprCSym2 kconfigConstantSymbol
|
|||
|
hi def link kconfigConfOptExprNCSym2 kconfigSymbol
|
|||
|
hi def link kconfigConfOptExprNeg kconfigOperator
|
|||
|
hi def link kconfigConfOptExprAnd kconfigOperator
|
|||
|
hi def link kconfigConfOptExprOr kconfigOperator
|
|||
|
hi def link kconfigConfOptExprGroup kconfigDelimiter
|
|||
|
hi def link kconfigConfOptGExpCSym kconfigConstantSymbol
|
|||
|
hi def link kconfigConfOptGExpNCSym kconfigSymbol
|
|||
|
hi def link kconfigConfOptGExpEq kconfigOperator
|
|||
|
hi def link kconfigConfOptGExpNEq kconfigOperator
|
|||
|
hi def link kconfigConfOptGExpCSym2 kconfigConstantSymbol
|
|||
|
hi def link kconfigConfOptGExpNCSym2 kconfigSymbol
|
|||
|
hi def link kconfigConfOptGExpNeg kconfigOperator
|
|||
|
hi def link kconfigConfOptGExpAnd kconfigOperator
|
|||
|
hi def link kconfigConfOptGExpOr kconfigOperator
|
|||
|
hi def link kconfigConfOptExprGrpE kconfigConfOptIfExprGroup
|
|||
|
|
|||
|
else
|
|||
|
|
|||
|
syn keyword kconfigTodo contained TODO FIXME XXX NOTE
|
|||
|
|
|||
|
syn match kconfigComment display '#.*$' contains=kconfigTodo
|
|||
|
|
|||
|
syn keyword kconfigKeyword config menuconfig comment mainmenu
|
|||
|
|
|||
|
syn keyword kconfigConditional menu endmenu choice endchoice if endif
|
|||
|
|
|||
|
syn keyword kconfigPreProc source
|
|||
|
\ nextgroup=kconfigPath
|
|||
|
\ skipwhite
|
|||
|
|
|||
|
syn keyword kconfigTriState y m n
|
|||
|
|
|||
|
syn match kconfigSpecialChar contained '\\.'
|
|||
|
syn match kconfigSpecialChar '\\$'
|
|||
|
|
|||
|
syn region kconfigPath matchgroup=kconfigPath
|
|||
|
\ start=+"+ skip=+\\\\\|\\\"+ end=+"+
|
|||
|
\ contains=kconfigSpecialChar
|
|||
|
|
|||
|
syn region kconfigPath matchgroup=kconfigPath
|
|||
|
\ start=+'+ skip=+\\\\\|\\\'+ end=+'+
|
|||
|
\ contains=kconfigSpecialChar
|
|||
|
|
|||
|
syn match kconfigPath '\S\+'
|
|||
|
\ contained
|
|||
|
|
|||
|
syn region kconfigString matchgroup=kconfigString
|
|||
|
\ start=+"+ skip=+\\\\\|\\\"+ end=+"+
|
|||
|
\ contains=kconfigSpecialChar
|
|||
|
|
|||
|
syn region kconfigString matchgroup=kconfigString
|
|||
|
\ start=+'+ skip=+\\\\\|\\\'+ end=+'+
|
|||
|
\ contains=kconfigSpecialChar
|
|||
|
|
|||
|
syn keyword kconfigType bool boolean tristate string hex int
|
|||
|
|
|||
|
syn keyword kconfigOption prompt default requires select range
|
|||
|
\ optional
|
|||
|
syn match kconfigOption 'depends\%( on\)\='
|
|||
|
|
|||
|
syn keyword kconfigMacro def_bool def_tristate
|
|||
|
|
|||
|
syn region kconfigHelpText
|
|||
|
\ matchgroup=kconfigOption
|
|||
|
\ start='\%(help\|---help---\)\ze\s*\n\z(\s\+\)'
|
|||
|
\ skip='^$'
|
|||
|
\ end='^\z1\@!'
|
|||
|
|
|||
|
syn sync match kconfigSyncHelp grouphere kconfigHelpText 'help\|---help---'
|
|||
|
|
|||
|
hi def link kconfigTodo Todo
|
|||
|
hi def link kconfigComment Comment
|
|||
|
hi def link kconfigKeyword Keyword
|
|||
|
hi def link kconfigConditional Conditional
|
|||
|
hi def link kconfigPreProc PreProc
|
|||
|
hi def link kconfigTriState Boolean
|
|||
|
hi def link kconfigSpecialChar SpecialChar
|
|||
|
hi def link kconfigPath String
|
|||
|
hi def link kconfigString String
|
|||
|
hi def link kconfigType Type
|
|||
|
hi def link kconfigOption Identifier
|
|||
|
hi def link kconfigHelpText Normal
|
|||
|
hi def link kconfigmacro Macro
|
|||
|
|
|||
|
endif
|
|||
|
|
|||
|
let b:current_syntax = "kconfig"
|
|||
|
|
|||
|
let &cpo = s:cpo_save
|
|||
|
unlet s:cpo_save
|