xref: /vim-8.2.3635/runtime/syntax/kconfig.vim (revision f2571c61)
14c3f536fSBram Moolenaar" Vim syntax file
2*f2571c61SBram Moolenaar" Maintainer:           Christian Brabandt <[email protected]>
3*f2571c61SBram Moolenaar" Previous Maintainer:  Nikolai Weibull <[email protected]>
4*f2571c61SBram Moolenaar" Latest Revision:      2015-05-29
5*f2571c61SBram Moolenaar" License:              Vim (see :h license)
6*f2571c61SBram Moolenaar" Repository:		https://github.com/chrisbra/vim-kconfig
74c3f536fSBram Moolenaar
84c3f536fSBram Moolenaarif exists("b:current_syntax")
94c3f536fSBram Moolenaar  finish
104c3f536fSBram Moolenaarendif
114c3f536fSBram Moolenaar
124c3f536fSBram Moolenaarlet s:cpo_save = &cpo
134c3f536fSBram Moolenaarset cpo&vim
144c3f536fSBram Moolenaar
154c3f536fSBram Moolenaarif exists("g:kconfig_syntax_heavy")
164c3f536fSBram Moolenaar
174c3f536fSBram Moolenaarsyn match   kconfigBegin              '^' nextgroup=kconfigKeyword
184c3f536fSBram Moolenaar                                      \ skipwhite
194c3f536fSBram Moolenaar
204c3f536fSBram Moolenaarsyn keyword kconfigTodo               contained TODO FIXME XXX NOTE
214c3f536fSBram Moolenaar
224c3f536fSBram Moolenaarsyn match   kconfigComment            display '#.*$' contains=kconfigTodo
234c3f536fSBram Moolenaar
244c3f536fSBram Moolenaarsyn keyword kconfigKeyword            config nextgroup=kconfigSymbol
254c3f536fSBram Moolenaar                                      \ skipwhite
264c3f536fSBram Moolenaar
274c3f536fSBram Moolenaarsyn keyword kconfigKeyword            menuconfig nextgroup=kconfigSymbol
284c3f536fSBram Moolenaar                                      \ skipwhite
294c3f536fSBram Moolenaar
304c3f536fSBram Moolenaarsyn keyword kconfigKeyword            comment menu mainmenu
314c3f536fSBram Moolenaar                                      \ nextgroup=kconfigKeywordPrompt
324c3f536fSBram Moolenaar                                      \ skipwhite
334c3f536fSBram Moolenaar
344c3f536fSBram Moolenaarsyn keyword kconfigKeyword            choice
354c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptions
364c3f536fSBram Moolenaar                                      \ skipwhite skipnl
374c3f536fSBram Moolenaar
384c3f536fSBram Moolenaarsyn keyword kconfigKeyword            endmenu endchoice
394c3f536fSBram Moolenaar
404c3f536fSBram Moolenaarsyn keyword kconfigPreProc            source
414c3f536fSBram Moolenaar                                      \ nextgroup=kconfigPath
424c3f536fSBram Moolenaar                                      \ skipwhite
434c3f536fSBram Moolenaar
444c3f536fSBram Moolenaar" TODO: This is a hack.  The who .*Expr stuff should really be generated so
454c3f536fSBram Moolenaar" that we can reuse it for various nextgroups.
464c3f536fSBram Moolenaarsyn keyword kconfigConditional        if endif
474c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionIfExpr
484c3f536fSBram Moolenaar                                      \ skipwhite
494c3f536fSBram Moolenaar
504c3f536fSBram Moolenaarsyn match   kconfigKeywordPrompt      '"[^"\\]*\%(\\.[^"\\]*\)*"'
514c3f536fSBram Moolenaar                                      \ contained
524c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptions
534c3f536fSBram Moolenaar                                      \ skipwhite skipnl
544c3f536fSBram Moolenaar
554c3f536fSBram Moolenaarsyn match   kconfigPath               '"[^"\\]*\%(\\.[^"\\]*\)*"\|\S\+'
564c3f536fSBram Moolenaar                                      \ contained
574c3f536fSBram Moolenaar
584c3f536fSBram Moolenaarsyn match   kconfigSymbol             '\<\k\+\>'
594c3f536fSBram Moolenaar                                      \ contained
604c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptions
614c3f536fSBram Moolenaar                                      \ skipwhite skipnl
624c3f536fSBram Moolenaar
634c3f536fSBram Moolenaar" FIXME: There is – probably – no reason to cluster these instead of just
644c3f536fSBram Moolenaar" defining them in the same group.
654c3f536fSBram Moolenaarsyn cluster kconfigConfigOptions      contains=kconfigTypeDefinition,
664c3f536fSBram Moolenaar                                      \        kconfigInputPrompt,
674c3f536fSBram Moolenaar                                      \        kconfigDefaultValue,
684c3f536fSBram Moolenaar                                      \        kconfigDependencies,
694c3f536fSBram Moolenaar                                      \        kconfigReverseDependencies,
704c3f536fSBram Moolenaar                                      \        kconfigNumericalRanges,
714c3f536fSBram Moolenaar                                      \        kconfigHelpText,
724c3f536fSBram Moolenaar                                      \        kconfigDefBool,
734c3f536fSBram Moolenaar                                      \        kconfigOptional
744c3f536fSBram Moolenaar
754c3f536fSBram Moolenaarsyn keyword kconfigTypeDefinition     bool boolean tristate string hex int
764c3f536fSBram Moolenaar                                      \ contained
774c3f536fSBram Moolenaar                                      \ nextgroup=kconfigTypeDefPrompt,
784c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
794c3f536fSBram Moolenaar                                      \ skipwhite skipnl
804c3f536fSBram Moolenaar
814c3f536fSBram Moolenaarsyn match   kconfigTypeDefPrompt      '"[^"\\]*\%(\\.[^"\\]*\)*"'
824c3f536fSBram Moolenaar                                      \ contained
834c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
844c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
854c3f536fSBram Moolenaar                                      \ skipwhite skipnl
864c3f536fSBram Moolenaar
874c3f536fSBram Moolenaarsyn match   kconfigTypeDefPrompt      "'[^'\\]*\%(\\.[^'\\]*\)*'"
884c3f536fSBram Moolenaar                                      \ contained
894c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
904c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
914c3f536fSBram Moolenaar                                      \ skipwhite skipnl
924c3f536fSBram Moolenaar
934c3f536fSBram Moolenaarsyn keyword kconfigInputPrompt        prompt
944c3f536fSBram Moolenaar                                      \ contained
954c3f536fSBram Moolenaar                                      \ nextgroup=kconfigPromptPrompt
964c3f536fSBram Moolenaar                                      \ skipwhite
974c3f536fSBram Moolenaar
984c3f536fSBram Moolenaarsyn match   kconfigPromptPrompt       '"[^"\\]*\%(\\.[^"\\]*\)*"'
994c3f536fSBram Moolenaar                                      \ contained
1004c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
1014c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
1024c3f536fSBram Moolenaar                                      \ skipwhite skipnl
1034c3f536fSBram Moolenaar
1044c3f536fSBram Moolenaarsyn match   kconfigPromptPrompt       "'[^'\\]*\%(\\.[^'\\]*\)*'"
1054c3f536fSBram Moolenaar                                      \ contained
1064c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
1074c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
1084c3f536fSBram Moolenaar                                      \ skipwhite skipnl
1094c3f536fSBram Moolenaar
1104c3f536fSBram Moolenaarsyn keyword   kconfigDefaultValue     default
1114c3f536fSBram Moolenaar                                      \ contained
1124c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionExpr
1134c3f536fSBram Moolenaar                                      \ skipwhite
1144c3f536fSBram Moolenaar
1154c3f536fSBram Moolenaarsyn match   kconfigDependencies       'depends on\|requires'
1164c3f536fSBram Moolenaar                                      \ contained
1174c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionIfExpr
1184c3f536fSBram Moolenaar                                      \ skipwhite
1194c3f536fSBram Moolenaar
1204c3f536fSBram Moolenaarsyn keyword kconfigReverseDependencies select
1214c3f536fSBram Moolenaar                                      \ contained
1224c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigRevDepSymbol
1234c3f536fSBram Moolenaar                                      \ skipwhite
1244c3f536fSBram Moolenaar
1254c3f536fSBram Moolenaarsyn cluster kconfigRevDepSymbol       contains=kconfigRevDepCSymbol,
1264c3f536fSBram Moolenaar                                      \        kconfigRevDepNCSymbol
1274c3f536fSBram Moolenaar
1284c3f536fSBram Moolenaarsyn match   kconfigRevDepCSymbol      '"[^"\\]*\%(\\.[^"\\]*\)*"'
1294c3f536fSBram Moolenaar                                      \ contained
1304c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
1314c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
1324c3f536fSBram Moolenaar                                      \ skipwhite skipnl
1334c3f536fSBram Moolenaar
1344c3f536fSBram Moolenaarsyn match   kconfigRevDepCSymbol      "'[^'\\]*\%(\\.[^'\\]*\)*'"
1354c3f536fSBram Moolenaar                                      \ contained
1364c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
1374c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
1384c3f536fSBram Moolenaar                                      \ skipwhite skipnl
1394c3f536fSBram Moolenaar
1404c3f536fSBram Moolenaarsyn match   kconfigRevDepNCSymbol     '\<\k\+\>'
1414c3f536fSBram Moolenaar                                      \ contained
1424c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
1434c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
1444c3f536fSBram Moolenaar                                      \ skipwhite skipnl
1454c3f536fSBram Moolenaar
1464c3f536fSBram Moolenaarsyn keyword kconfigNumericalRanges    range
1474c3f536fSBram Moolenaar                                      \ contained
1484c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigRangeSymbol
1494c3f536fSBram Moolenaar                                      \ skipwhite
1504c3f536fSBram Moolenaar
1514c3f536fSBram Moolenaarsyn cluster kconfigRangeSymbol        contains=kconfigRangeCSymbol,
1524c3f536fSBram Moolenaar                                      \        kconfigRangeNCSymbol
1534c3f536fSBram Moolenaar
1544c3f536fSBram Moolenaarsyn match   kconfigRangeCSymbol       '"[^"\\]*\%(\\.[^"\\]*\)*"'
1554c3f536fSBram Moolenaar                                      \ contained
1564c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigRangeSymbol2
1574c3f536fSBram Moolenaar                                      \ skipwhite skipnl
1584c3f536fSBram Moolenaar
1594c3f536fSBram Moolenaarsyn match   kconfigRangeCSymbol       "'[^'\\]*\%(\\.[^'\\]*\)*'"
1604c3f536fSBram Moolenaar                                      \ contained
1614c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigRangeSymbol2
1624c3f536fSBram Moolenaar                                      \ skipwhite skipnl
1634c3f536fSBram Moolenaar
1644c3f536fSBram Moolenaarsyn match   kconfigRangeNCSymbol      '\<\k\+\>'
1654c3f536fSBram Moolenaar                                      \ contained
1664c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigRangeSymbol2
1674c3f536fSBram Moolenaar                                      \ skipwhite skipnl
1684c3f536fSBram Moolenaar
1694c3f536fSBram Moolenaarsyn cluster kconfigRangeSymbol2       contains=kconfigRangeCSymbol2,
1704c3f536fSBram Moolenaar                                      \        kconfigRangeNCSymbol2
1714c3f536fSBram Moolenaar
1724c3f536fSBram Moolenaarsyn match   kconfigRangeCSymbol2      "'[^'\\]*\%(\\.[^'\\]*\)*'"
1734c3f536fSBram Moolenaar                                      \ contained
1744c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
1754c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
1764c3f536fSBram Moolenaar                                      \ skipwhite skipnl
1774c3f536fSBram Moolenaar
1784c3f536fSBram Moolenaarsyn match   kconfigRangeNCSymbol2     '\<\k\+\>'
1794c3f536fSBram Moolenaar                                      \ contained
1804c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
1814c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
1824c3f536fSBram Moolenaar                                      \ skipwhite skipnl
1834c3f536fSBram Moolenaar
1844c3f536fSBram Moolenaarsyn region  kconfigHelpText           contained
1854c3f536fSBram Moolenaar      \ matchgroup=kconfigConfigOption
18618144c84SBram Moolenaar      \ start='\%(help\|---help---\)\ze\s*\n\z(\s\+\)'
1874c3f536fSBram Moolenaar      \ skip='^$'
1884c3f536fSBram Moolenaar      \ end='^\z1\@!'
1894c3f536fSBram Moolenaar      \ nextgroup=@kconfigConfigOptions
1904c3f536fSBram Moolenaar      \ skipwhite skipnl
1914c3f536fSBram Moolenaar
1924c3f536fSBram Moolenaar" XXX: Undocumented
1934c3f536fSBram Moolenaarsyn keyword kconfigDefBool            def_bool
1944c3f536fSBram Moolenaar                                      \ contained
1954c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigDefBoolSymbol
1964c3f536fSBram Moolenaar                                      \ skipwhite
1974c3f536fSBram Moolenaar
1984c3f536fSBram Moolenaarsyn cluster kconfigDefBoolSymbol      contains=kconfigDefBoolCSymbol,
1994c3f536fSBram Moolenaar                                      \        kconfigDefBoolNCSymbol
2004c3f536fSBram Moolenaar
2014c3f536fSBram Moolenaarsyn match   kconfigDefBoolCSymbol     '"[^"\\]*\%(\\.[^"\\]*\)*"'
2024c3f536fSBram Moolenaar                                      \ contained
2034c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
2044c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
2054c3f536fSBram Moolenaar                                      \ skipwhite skipnl
2064c3f536fSBram Moolenaar
2074c3f536fSBram Moolenaarsyn match   kconfigDefBoolCSymbol     "'[^'\\]*\%(\\.[^'\\]*\)*'"
2084c3f536fSBram Moolenaar                                      \ contained
2094c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
2104c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
2114c3f536fSBram Moolenaar                                      \ skipwhite skipnl
2124c3f536fSBram Moolenaar
2134c3f536fSBram Moolenaarsyn match   kconfigDefBoolNCSymbol    '\<\k\+\>'
2144c3f536fSBram Moolenaar                                      \ contained
2154c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
2164c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
2174c3f536fSBram Moolenaar                                      \ skipwhite skipnl
2184c3f536fSBram Moolenaar
2194c3f536fSBram Moolenaar" XXX: This is actually only a valid option for “choice”, but treating it
2204c3f536fSBram Moolenaar" specially would require a lot of extra groups.
2214c3f536fSBram Moolenaarsyn keyword kconfigOptional           optional
2224c3f536fSBram Moolenaar                                      \ contained
2234c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptions
2244c3f536fSBram Moolenaar                                      \ skipwhite skipnl
2254c3f536fSBram Moolenaar
2264c3f536fSBram Moolenaarsyn keyword kconfigConfigOptionIf     if
2274c3f536fSBram Moolenaar                                      \ contained
2284c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionIfExpr
2294c3f536fSBram Moolenaar                                      \ skipwhite
2304c3f536fSBram Moolenaar
2314c3f536fSBram Moolenaarsyn cluster kconfigConfigOptionIfExpr contains=@kconfigConfOptIfExprSym,
2324c3f536fSBram Moolenaar                                      \        kconfigConfOptIfExprNeg,
2334c3f536fSBram Moolenaar                                      \        kconfigConfOptIfExprGroup
2344c3f536fSBram Moolenaar
2354c3f536fSBram Moolenaarsyn cluster kconfigConfOptIfExprSym   contains=kconfigConfOptIfExprCSym,
2364c3f536fSBram Moolenaar                                      \        kconfigConfOptIfExprNCSym
2374c3f536fSBram Moolenaar
2384c3f536fSBram Moolenaarsyn match   kconfigConfOptIfExprCSym  '"[^"\\]*\%(\\.[^"\\]*\)*"'
2394c3f536fSBram Moolenaar                                      \ contained
2404c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptions,
2414c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprAnd,
2424c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprOr,
2434c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprEq,
2444c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprNEq
2454c3f536fSBram Moolenaar                                      \ skipwhite skipnl
2464c3f536fSBram Moolenaar
2474c3f536fSBram Moolenaarsyn match   kconfigConfOptIfExprCSym  "'[^'\\]*\%(\\.[^'\\]*\)*'"
2484c3f536fSBram Moolenaar                                      \ contained
2494c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptions,
2504c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprAnd,
2514c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprOr,
2524c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprEq,
2534c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprNEq
2544c3f536fSBram Moolenaar                                      \ skipwhite skipnl
2554c3f536fSBram Moolenaar
2564c3f536fSBram Moolenaarsyn match   kconfigConfOptIfExprNCSym '\<\k\+\>'
2574c3f536fSBram Moolenaar                                      \ contained
2584c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptions,
2594c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprAnd,
2604c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprOr,
2614c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprEq,
2624c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprNEq
2634c3f536fSBram Moolenaar                                      \ skipwhite skipnl
2644c3f536fSBram Moolenaar
2654c3f536fSBram Moolenaarsyn cluster kconfigConfOptIfExprSym2  contains=kconfigConfOptIfExprCSym2,
2664c3f536fSBram Moolenaar                                      \        kconfigConfOptIfExprNCSym2
2674c3f536fSBram Moolenaar
2684c3f536fSBram Moolenaarsyn match   kconfigConfOptIfExprEq    '='
2694c3f536fSBram Moolenaar                                      \ contained
2704c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfOptIfExprSym2
2714c3f536fSBram Moolenaar                                      \ skipwhite
2724c3f536fSBram Moolenaar
2734c3f536fSBram Moolenaarsyn match   kconfigConfOptIfExprNEq   '!='
2744c3f536fSBram Moolenaar                                      \ contained
2754c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfOptIfExprSym2
2764c3f536fSBram Moolenaar                                      \ skipwhite
2774c3f536fSBram Moolenaar
2784c3f536fSBram Moolenaarsyn match   kconfigConfOptIfExprCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
2794c3f536fSBram Moolenaar                                      \ contained
2804c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptions,
2814c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprAnd,
2824c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprOr
2834c3f536fSBram Moolenaar                                      \ skipwhite skipnl
2844c3f536fSBram Moolenaar
2854c3f536fSBram Moolenaarsyn match   kconfigConfOptIfExprNCSym2 '\<\k\+\>'
2864c3f536fSBram Moolenaar                                      \ contained
2874c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptions,
2884c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprAnd,
2894c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprOr
2904c3f536fSBram Moolenaar                                      \ skipwhite skipnl
2914c3f536fSBram Moolenaar
2924c3f536fSBram Moolenaarsyn match   kconfigConfOptIfExprNeg   '!'
2934c3f536fSBram Moolenaar                                      \ contained
2944c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionIfExpr
2954c3f536fSBram Moolenaar                                      \ skipwhite
2964c3f536fSBram Moolenaar
2974c3f536fSBram Moolenaarsyn match   kconfigConfOptIfExprAnd   '&&'
2984c3f536fSBram Moolenaar                                      \ contained
2994c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionIfExpr
3004c3f536fSBram Moolenaar                                      \ skipwhite
3014c3f536fSBram Moolenaar
3024c3f536fSBram Moolenaarsyn match   kconfigConfOptIfExprOr    '||'
3034c3f536fSBram Moolenaar                                      \ contained
3044c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionIfExpr
3054c3f536fSBram Moolenaar                                      \ skipwhite
3064c3f536fSBram Moolenaar
3074c3f536fSBram Moolenaarsyn match   kconfigConfOptIfExprGroup '('
3084c3f536fSBram Moolenaar                                      \ contained
3094c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionIfGExp
3104c3f536fSBram Moolenaar                                      \ skipwhite
3114c3f536fSBram Moolenaar
3124c3f536fSBram Moolenaar" TODO: hm, this kind of recursion doesn't work right.  We need another set of
3134c3f536fSBram Moolenaar" expressions that have kconfigConfigOPtionIfGExp as nextgroup and a matcher
3144c3f536fSBram Moolenaar" for '(' that sets it all off.
3154c3f536fSBram Moolenaarsyn cluster kconfigConfigOptionIfGExp contains=@kconfigConfOptIfGExpSym,
3164c3f536fSBram Moolenaar                                      \        kconfigConfOptIfGExpNeg,
3174c3f536fSBram Moolenaar                                      \        kconfigConfOptIfExprGroup
3184c3f536fSBram Moolenaar
3194c3f536fSBram Moolenaarsyn cluster kconfigConfOptIfGExpSym   contains=kconfigConfOptIfGExpCSym,
3204c3f536fSBram Moolenaar                                      \        kconfigConfOptIfGExpNCSym
3214c3f536fSBram Moolenaar
3224c3f536fSBram Moolenaarsyn match   kconfigConfOptIfGExpCSym  '"[^"\\]*\%(\\.[^"\\]*\)*"'
3234c3f536fSBram Moolenaar                                      \ contained
3244c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigIf,
3254c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpAnd,
3264c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpOr,
3274c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpEq,
3284c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpNEq
3294c3f536fSBram Moolenaar                                      \ skipwhite skipnl
3304c3f536fSBram Moolenaar
3314c3f536fSBram Moolenaarsyn match   kconfigConfOptIfGExpCSym  "'[^'\\]*\%(\\.[^'\\]*\)*'"
3324c3f536fSBram Moolenaar                                      \ contained
3334c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigIf,
3344c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpAnd,
3354c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpOr,
3364c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpEq,
3374c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpNEq
3384c3f536fSBram Moolenaar                                      \ skipwhite skipnl
3394c3f536fSBram Moolenaar
3404c3f536fSBram Moolenaarsyn match   kconfigConfOptIfGExpNCSym '\<\k\+\>'
3414c3f536fSBram Moolenaar                                      \ contained
3424c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfOptIfExprGrpE,
3434c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpAnd,
3444c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpOr,
3454c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpEq,
3464c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpNEq
3474c3f536fSBram Moolenaar                                      \ skipwhite skipnl
3484c3f536fSBram Moolenaar
3494c3f536fSBram Moolenaarsyn cluster kconfigConfOptIfGExpSym2  contains=kconfigConfOptIfGExpCSym2,
3504c3f536fSBram Moolenaar                                      \        kconfigConfOptIfGExpNCSym2
3514c3f536fSBram Moolenaar
3524c3f536fSBram Moolenaarsyn match   kconfigConfOptIfGExpEq    '='
3534c3f536fSBram Moolenaar                                      \ contained
3544c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfOptIfGExpSym2
3554c3f536fSBram Moolenaar                                      \ skipwhite
3564c3f536fSBram Moolenaar
3574c3f536fSBram Moolenaarsyn match   kconfigConfOptIfGExpNEq   '!='
3584c3f536fSBram Moolenaar                                      \ contained
3594c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfOptIfGExpSym2
3604c3f536fSBram Moolenaar                                      \ skipwhite
3614c3f536fSBram Moolenaar
3624c3f536fSBram Moolenaarsyn match   kconfigConfOptIfGExpCSym2 '"[^"\\]*\%(\\.[^"\\]*\)*"'
3634c3f536fSBram Moolenaar                                      \ contained
3644c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfOptIfExprGrpE,
3654c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpAnd,
3664c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpOr
3674c3f536fSBram Moolenaar                                      \ skipwhite skipnl
3684c3f536fSBram Moolenaar
3694c3f536fSBram Moolenaarsyn match   kconfigConfOptIfGExpCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
3704c3f536fSBram Moolenaar                                      \ contained
3714c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfOptIfExprGrpE,
3724c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpAnd,
3734c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpOr
3744c3f536fSBram Moolenaar                                      \ skipwhite skipnl
3754c3f536fSBram Moolenaar
3764c3f536fSBram Moolenaarsyn match   kconfigConfOptIfGExpNCSym2 '\<\k\+\>'
3774c3f536fSBram Moolenaar                                      \ contained
3784c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfOptIfExprGrpE,
3794c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpAnd,
3804c3f536fSBram Moolenaar                                      \           kconfigConfOptIfGExpOr
3814c3f536fSBram Moolenaar                                      \ skipwhite skipnl
3824c3f536fSBram Moolenaar
3834c3f536fSBram Moolenaarsyn match   kconfigConfOptIfGExpNeg   '!'
3844c3f536fSBram Moolenaar                                      \ contained
3854c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionIfGExp
3864c3f536fSBram Moolenaar                                      \ skipwhite
3874c3f536fSBram Moolenaar
3884c3f536fSBram Moolenaarsyn match   kconfigConfOptIfGExpAnd   '&&'
3894c3f536fSBram Moolenaar                                      \ contained
3904c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionIfGExp
3914c3f536fSBram Moolenaar                                      \ skipwhite
3924c3f536fSBram Moolenaar
3934c3f536fSBram Moolenaarsyn match   kconfigConfOptIfGExpOr    '||'
3944c3f536fSBram Moolenaar                                      \ contained
3954c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionIfGExp
3964c3f536fSBram Moolenaar                                      \ skipwhite
3974c3f536fSBram Moolenaar
3984c3f536fSBram Moolenaarsyn match   kconfigConfOptIfExprGrpE  ')'
3994c3f536fSBram Moolenaar                                      \ contained
4004c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptions,
4014c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprAnd,
4024c3f536fSBram Moolenaar                                      \           kconfigConfOptIfExprOr
4034c3f536fSBram Moolenaar                                      \ skipwhite skipnl
4044c3f536fSBram Moolenaar
4054c3f536fSBram Moolenaar
4064c3f536fSBram Moolenaarsyn cluster kconfigConfigOptionExpr   contains=@kconfigConfOptExprSym,
4074c3f536fSBram Moolenaar                                      \        kconfigConfOptExprNeg,
4084c3f536fSBram Moolenaar                                      \        kconfigConfOptExprGroup
4094c3f536fSBram Moolenaar
4104c3f536fSBram Moolenaarsyn cluster kconfigConfOptExprSym     contains=kconfigConfOptExprCSym,
4114c3f536fSBram Moolenaar                                      \        kconfigConfOptExprNCSym
4124c3f536fSBram Moolenaar
4134c3f536fSBram Moolenaarsyn match   kconfigConfOptExprCSym    '"[^"\\]*\%(\\.[^"\\]*\)*"'
4144c3f536fSBram Moolenaar                                      \ contained
4154c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
4164c3f536fSBram Moolenaar                                      \           kconfigConfOptExprAnd,
4174c3f536fSBram Moolenaar                                      \           kconfigConfOptExprOr,
4184c3f536fSBram Moolenaar                                      \           kconfigConfOptExprEq,
4194c3f536fSBram Moolenaar                                      \           kconfigConfOptExprNEq,
4204c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
4214c3f536fSBram Moolenaar                                      \ skipwhite skipnl
4224c3f536fSBram Moolenaar
4234c3f536fSBram Moolenaarsyn match   kconfigConfOptExprCSym    "'[^'\\]*\%(\\.[^'\\]*\)*'"
4244c3f536fSBram Moolenaar                                      \ contained
4254c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
4264c3f536fSBram Moolenaar                                      \           kconfigConfOptExprAnd,
4274c3f536fSBram Moolenaar                                      \           kconfigConfOptExprOr,
4284c3f536fSBram Moolenaar                                      \           kconfigConfOptExprEq,
4294c3f536fSBram Moolenaar                                      \           kconfigConfOptExprNEq,
4304c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
4314c3f536fSBram Moolenaar                                      \ skipwhite skipnl
4324c3f536fSBram Moolenaar
4334c3f536fSBram Moolenaarsyn match   kconfigConfOptExprNCSym   '\<\k\+\>'
4344c3f536fSBram Moolenaar                                      \ contained
4354c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
4364c3f536fSBram Moolenaar                                      \           kconfigConfOptExprAnd,
4374c3f536fSBram Moolenaar                                      \           kconfigConfOptExprOr,
4384c3f536fSBram Moolenaar                                      \           kconfigConfOptExprEq,
4394c3f536fSBram Moolenaar                                      \           kconfigConfOptExprNEq,
4404c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
4414c3f536fSBram Moolenaar                                      \ skipwhite skipnl
4424c3f536fSBram Moolenaar
4434c3f536fSBram Moolenaarsyn cluster kconfigConfOptExprSym2    contains=kconfigConfOptExprCSym2,
4444c3f536fSBram Moolenaar                                      \        kconfigConfOptExprNCSym2
4454c3f536fSBram Moolenaar
4464c3f536fSBram Moolenaarsyn match   kconfigConfOptExprEq      '='
4474c3f536fSBram Moolenaar                                      \ contained
4484c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfOptExprSym2
4494c3f536fSBram Moolenaar                                      \ skipwhite
4504c3f536fSBram Moolenaar
4514c3f536fSBram Moolenaarsyn match   kconfigConfOptExprNEq     '!='
4524c3f536fSBram Moolenaar                                      \ contained
4534c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfOptExprSym2
4544c3f536fSBram Moolenaar                                      \ skipwhite
4554c3f536fSBram Moolenaar
4564c3f536fSBram Moolenaarsyn match   kconfigConfOptExprCSym2   '"[^"\\]*\%(\\.[^"\\]*\)*"'
4574c3f536fSBram Moolenaar                                      \ contained
4584c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
4594c3f536fSBram Moolenaar                                      \           kconfigConfOptExprAnd,
4604c3f536fSBram Moolenaar                                      \           kconfigConfOptExprOr,
4614c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
4624c3f536fSBram Moolenaar                                      \ skipwhite skipnl
4634c3f536fSBram Moolenaar
4644c3f536fSBram Moolenaarsyn match   kconfigConfOptExprCSym2   "'[^'\\]*\%(\\.[^'\\]*\)*'"
4654c3f536fSBram Moolenaar                                      \ contained
4664c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
4674c3f536fSBram Moolenaar                                      \           kconfigConfOptExprAnd,
4684c3f536fSBram Moolenaar                                      \           kconfigConfOptExprOr,
4694c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
4704c3f536fSBram Moolenaar                                      \ skipwhite skipnl
4714c3f536fSBram Moolenaar
4724c3f536fSBram Moolenaarsyn match   kconfigConfOptExprNCSym2  '\<\k\+\>'
4734c3f536fSBram Moolenaar                                      \ contained
4744c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
4754c3f536fSBram Moolenaar                                      \           kconfigConfOptExprAnd,
4764c3f536fSBram Moolenaar                                      \           kconfigConfOptExprOr,
4774c3f536fSBram Moolenaar                                      \           @kconfigConfigOptions
4784c3f536fSBram Moolenaar                                      \ skipwhite skipnl
4794c3f536fSBram Moolenaar
4804c3f536fSBram Moolenaarsyn match   kconfigConfOptExprNeg     '!'
4814c3f536fSBram Moolenaar                                      \ contained
4824c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionExpr
4834c3f536fSBram Moolenaar                                      \ skipwhite
4844c3f536fSBram Moolenaar
4854c3f536fSBram Moolenaarsyn match   kconfigConfOptExprAnd     '&&'
4864c3f536fSBram Moolenaar                                      \ contained
4874c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionExpr
4884c3f536fSBram Moolenaar                                      \ skipwhite
4894c3f536fSBram Moolenaar
4904c3f536fSBram Moolenaarsyn match   kconfigConfOptExprOr      '||'
4914c3f536fSBram Moolenaar                                      \ contained
4924c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionExpr
4934c3f536fSBram Moolenaar                                      \ skipwhite
4944c3f536fSBram Moolenaar
4954c3f536fSBram Moolenaarsyn match   kconfigConfOptExprGroup   '('
4964c3f536fSBram Moolenaar                                      \ contained
4974c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionGExp
4984c3f536fSBram Moolenaar                                      \ skipwhite
4994c3f536fSBram Moolenaar
5004c3f536fSBram Moolenaarsyn cluster kconfigConfigOptionGExp   contains=@kconfigConfOptGExpSym,
5014c3f536fSBram Moolenaar                                      \        kconfigConfOptGExpNeg,
5024c3f536fSBram Moolenaar                                      \        kconfigConfOptGExpGroup
5034c3f536fSBram Moolenaar
5044c3f536fSBram Moolenaarsyn cluster kconfigConfOptGExpSym     contains=kconfigConfOptGExpCSym,
5054c3f536fSBram Moolenaar                                      \        kconfigConfOptGExpNCSym
5064c3f536fSBram Moolenaar
5074c3f536fSBram Moolenaarsyn match   kconfigConfOptGExpCSym    '"[^"\\]*\%(\\.[^"\\]*\)*"'
5084c3f536fSBram Moolenaar                                      \ contained
5094c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfOptExprGrpE,
5104c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpAnd,
5114c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpOr,
5124c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpEq,
5134c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpNEq
5144c3f536fSBram Moolenaar                                      \ skipwhite skipnl
5154c3f536fSBram Moolenaar
5164c3f536fSBram Moolenaarsyn match   kconfigConfOptGExpCSym    "'[^'\\]*\%(\\.[^'\\]*\)*'"
5174c3f536fSBram Moolenaar                                      \ contained
5184c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfOptExprGrpE,
5194c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpAnd,
5204c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpOr,
5214c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpEq,
5224c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpNEq
5234c3f536fSBram Moolenaar                                      \ skipwhite skipnl
5244c3f536fSBram Moolenaar
5254c3f536fSBram Moolenaarsyn match   kconfigConfOptGExpNCSym   '\<\k\+\>'
5264c3f536fSBram Moolenaar                                      \ contained
5274c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfOptExprGrpE,
5284c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpAnd,
5294c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpOr,
5304c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpEq,
5314c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpNEq
5324c3f536fSBram Moolenaar                                      \ skipwhite skipnl
5334c3f536fSBram Moolenaar
5344c3f536fSBram Moolenaarsyn cluster kconfigConfOptGExpSym2    contains=kconfigConfOptGExpCSym2,
5354c3f536fSBram Moolenaar                                      \        kconfigConfOptGExpNCSym2
5364c3f536fSBram Moolenaar
5374c3f536fSBram Moolenaarsyn match   kconfigConfOptGExpEq      '='
5384c3f536fSBram Moolenaar                                      \ contained
5394c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfOptGExpSym2
5404c3f536fSBram Moolenaar                                      \ skipwhite
5414c3f536fSBram Moolenaar
5424c3f536fSBram Moolenaarsyn match   kconfigConfOptGExpNEq     '!='
5434c3f536fSBram Moolenaar                                      \ contained
5444c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfOptGExpSym2
5454c3f536fSBram Moolenaar                                      \ skipwhite
5464c3f536fSBram Moolenaar
5474c3f536fSBram Moolenaarsyn match   kconfigConfOptGExpCSym2   '"[^"\\]*\%(\\.[^"\\]*\)*"'
5484c3f536fSBram Moolenaar                                      \ contained
5494c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfOptExprGrpE,
5504c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpAnd,
5514c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpOr
5524c3f536fSBram Moolenaar                                      \ skipwhite skipnl
5534c3f536fSBram Moolenaar
5544c3f536fSBram Moolenaarsyn match   kconfigConfOptGExpCSym2   "'[^'\\]*\%(\\.[^'\\]*\)*'"
5554c3f536fSBram Moolenaar                                      \ contained
5564c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfOptExprGrpE,
5574c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpAnd,
5584c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpOr
5594c3f536fSBram Moolenaar                                      \ skipwhite skipnl
5604c3f536fSBram Moolenaar
5614c3f536fSBram Moolenaarsyn match   kconfigConfOptGExpNCSym2  '\<\k\+\>'
5624c3f536fSBram Moolenaar                                      \ contained
5634c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfOptExprGrpE,
5644c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpAnd,
5654c3f536fSBram Moolenaar                                      \           kconfigConfOptGExpOr
5664c3f536fSBram Moolenaar                                      \ skipwhite skipnl
5674c3f536fSBram Moolenaar
5684c3f536fSBram Moolenaarsyn match   kconfigConfOptGExpNeg     '!'
5694c3f536fSBram Moolenaar                                      \ contained
5704c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionGExp
5714c3f536fSBram Moolenaar                                      \ skipwhite
5724c3f536fSBram Moolenaar
5734c3f536fSBram Moolenaarsyn match   kconfigConfOptGExpAnd     '&&'
5744c3f536fSBram Moolenaar                                      \ contained
5754c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionGExp
5764c3f536fSBram Moolenaar                                      \ skipwhite
5774c3f536fSBram Moolenaar
5784c3f536fSBram Moolenaarsyn match   kconfigConfOptGExpOr      '||'
5794c3f536fSBram Moolenaar                                      \ contained
5804c3f536fSBram Moolenaar                                      \ nextgroup=@kconfigConfigOptionGExp
5814c3f536fSBram Moolenaar                                      \ skipwhite
5824c3f536fSBram Moolenaar
5834c3f536fSBram Moolenaarsyn match   kconfigConfOptExprGrpE    ')'
5844c3f536fSBram Moolenaar                                      \ contained
5854c3f536fSBram Moolenaar                                      \ nextgroup=kconfigConfigOptionIf,
5864c3f536fSBram Moolenaar                                      \           kconfigConfOptExprAnd,
5874c3f536fSBram Moolenaar                                      \           kconfigConfOptExprOr
5884c3f536fSBram Moolenaar                                      \ skipwhite skipnl
5894c3f536fSBram Moolenaar
59018144c84SBram Moolenaarsyn sync minlines=50
59118144c84SBram Moolenaar
5924c3f536fSBram Moolenaarhi def link kconfigTodo                 Todo
5934c3f536fSBram Moolenaarhi def link kconfigComment              Comment
5944c3f536fSBram Moolenaarhi def link kconfigKeyword              Keyword
5954c3f536fSBram Moolenaarhi def link kconfigPreProc              PreProc
5964c3f536fSBram Moolenaarhi def link kconfigConditional          Conditional
5974c3f536fSBram Moolenaarhi def link kconfigPrompt               String
5984c3f536fSBram Moolenaarhi def link kconfigKeywordPrompt        kconfigPrompt
5994c3f536fSBram Moolenaarhi def link kconfigPath                 String
6004c3f536fSBram Moolenaarhi def link kconfigSymbol               String
6014c3f536fSBram Moolenaarhi def link kconfigConstantSymbol       Constant
6024c3f536fSBram Moolenaarhi def link kconfigConfigOption         Type
6034c3f536fSBram Moolenaarhi def link kconfigTypeDefinition       kconfigConfigOption
6044c3f536fSBram Moolenaarhi def link kconfigTypeDefPrompt        kconfigPrompt
6054c3f536fSBram Moolenaarhi def link kconfigInputPrompt          kconfigConfigOption
6064c3f536fSBram Moolenaarhi def link kconfigPromptPrompt         kconfigPrompt
6074c3f536fSBram Moolenaarhi def link kconfigDefaultValue         kconfigConfigOption
6084c3f536fSBram Moolenaarhi def link kconfigDependencies         kconfigConfigOption
6094c3f536fSBram Moolenaarhi def link kconfigReverseDependencies  kconfigConfigOption
6104c3f536fSBram Moolenaarhi def link kconfigRevDepCSymbol        kconfigConstantSymbol
6114c3f536fSBram Moolenaarhi def link kconfigRevDepNCSymbol       kconfigSymbol
6124c3f536fSBram Moolenaarhi def link kconfigNumericalRanges      kconfigConfigOption
6134c3f536fSBram Moolenaarhi def link kconfigRangeCSymbol         kconfigConstantSymbol
6144c3f536fSBram Moolenaarhi def link kconfigRangeNCSymbol        kconfigSymbol
6154c3f536fSBram Moolenaarhi def link kconfigRangeCSymbol2        kconfigConstantSymbol
6164c3f536fSBram Moolenaarhi def link kconfigRangeNCSymbol2       kconfigSymbol
6174c3f536fSBram Moolenaarhi def link kconfigHelpText             Normal
6184c3f536fSBram Moolenaarhi def link kconfigDefBool              kconfigConfigOption
6194c3f536fSBram Moolenaarhi def link kconfigDefBoolCSymbol       kconfigConstantSymbol
6204c3f536fSBram Moolenaarhi def link kconfigDefBoolNCSymbol      kconfigSymbol
6214c3f536fSBram Moolenaarhi def link kconfigOptional             kconfigConfigOption
6224c3f536fSBram Moolenaarhi def link kconfigConfigOptionIf       Conditional
6234c3f536fSBram Moolenaarhi def link kconfigConfOptIfExprCSym    kconfigConstantSymbol
6244c3f536fSBram Moolenaarhi def link kconfigConfOptIfExprNCSym   kconfigSymbol
6254c3f536fSBram Moolenaarhi def link kconfigOperator             Operator
6264c3f536fSBram Moolenaarhi def link kconfigConfOptIfExprEq      kconfigOperator
6274c3f536fSBram Moolenaarhi def link kconfigConfOptIfExprNEq     kconfigOperator
6284c3f536fSBram Moolenaarhi def link kconfigConfOptIfExprCSym2   kconfigConstantSymbol
6294c3f536fSBram Moolenaarhi def link kconfigConfOptIfExprNCSym2  kconfigSymbol
6304c3f536fSBram Moolenaarhi def link kconfigConfOptIfExprNeg     kconfigOperator
6314c3f536fSBram Moolenaarhi def link kconfigConfOptIfExprAnd     kconfigOperator
6324c3f536fSBram Moolenaarhi def link kconfigConfOptIfExprOr      kconfigOperator
6334c3f536fSBram Moolenaarhi def link kconfigDelimiter            Delimiter
6344c3f536fSBram Moolenaarhi def link kconfigConfOptIfExprGroup   kconfigDelimiter
6354c3f536fSBram Moolenaarhi def link kconfigConfOptIfGExpCSym    kconfigConstantSymbol
6364c3f536fSBram Moolenaarhi def link kconfigConfOptIfGExpNCSym   kconfigSymbol
6374c3f536fSBram Moolenaarhi def link kconfigConfOptIfGExpEq      kconfigOperator
6384c3f536fSBram Moolenaarhi def link kconfigConfOptIfGExpNEq     kconfigOperator
6394c3f536fSBram Moolenaarhi def link kconfigConfOptIfGExpCSym2   kconfigConstantSymbol
6404c3f536fSBram Moolenaarhi def link kconfigConfOptIfGExpNCSym2  kconfigSymbol
6414c3f536fSBram Moolenaarhi def link kconfigConfOptIfGExpNeg     kconfigOperator
6424c3f536fSBram Moolenaarhi def link kconfigConfOptIfGExpAnd     kconfigOperator
6434c3f536fSBram Moolenaarhi def link kconfigConfOptIfGExpOr      kconfigOperator
6444c3f536fSBram Moolenaarhi def link kconfigConfOptIfExprGrpE    kconfigDelimiter
6454c3f536fSBram Moolenaarhi def link kconfigConfOptExprCSym      kconfigConstantSymbol
6464c3f536fSBram Moolenaarhi def link kconfigConfOptExprNCSym     kconfigSymbol
6474c3f536fSBram Moolenaarhi def link kconfigConfOptExprEq        kconfigOperator
6484c3f536fSBram Moolenaarhi def link kconfigConfOptExprNEq       kconfigOperator
6494c3f536fSBram Moolenaarhi def link kconfigConfOptExprCSym2     kconfigConstantSymbol
6504c3f536fSBram Moolenaarhi def link kconfigConfOptExprNCSym2    kconfigSymbol
6514c3f536fSBram Moolenaarhi def link kconfigConfOptExprNeg       kconfigOperator
6524c3f536fSBram Moolenaarhi def link kconfigConfOptExprAnd       kconfigOperator
6534c3f536fSBram Moolenaarhi def link kconfigConfOptExprOr        kconfigOperator
6544c3f536fSBram Moolenaarhi def link kconfigConfOptExprGroup     kconfigDelimiter
6554c3f536fSBram Moolenaarhi def link kconfigConfOptGExpCSym      kconfigConstantSymbol
6564c3f536fSBram Moolenaarhi def link kconfigConfOptGExpNCSym     kconfigSymbol
6574c3f536fSBram Moolenaarhi def link kconfigConfOptGExpEq        kconfigOperator
6584c3f536fSBram Moolenaarhi def link kconfigConfOptGExpNEq       kconfigOperator
6594c3f536fSBram Moolenaarhi def link kconfigConfOptGExpCSym2     kconfigConstantSymbol
6604c3f536fSBram Moolenaarhi def link kconfigConfOptGExpNCSym2    kconfigSymbol
6614c3f536fSBram Moolenaarhi def link kconfigConfOptGExpNeg       kconfigOperator
6624c3f536fSBram Moolenaarhi def link kconfigConfOptGExpAnd       kconfigOperator
6634c3f536fSBram Moolenaarhi def link kconfigConfOptGExpOr        kconfigOperator
6644c3f536fSBram Moolenaarhi def link kconfigConfOptExprGrpE      kconfigConfOptIfExprGroup
6654c3f536fSBram Moolenaar
6664c3f536fSBram Moolenaarelse
6674c3f536fSBram Moolenaar
6684c3f536fSBram Moolenaarsyn keyword kconfigTodo               contained TODO FIXME XXX NOTE
6694c3f536fSBram Moolenaar
6704c3f536fSBram Moolenaarsyn match   kconfigComment            display '#.*$' contains=kconfigTodo
6714c3f536fSBram Moolenaar
6725c73622aSBram Moolenaarsyn keyword kconfigKeyword            config menuconfig comment mainmenu
6734c3f536fSBram Moolenaar
6745c73622aSBram Moolenaarsyn keyword kconfigConditional        menu endmenu choice endchoice if endif
6754c3f536fSBram Moolenaar
6764c3f536fSBram Moolenaarsyn keyword kconfigPreProc            source
6774c3f536fSBram Moolenaar                                      \ nextgroup=kconfigPath
6784c3f536fSBram Moolenaar                                      \ skipwhite
6794c3f536fSBram Moolenaar
68018144c84SBram Moolenaarsyn keyword kconfigTriState           y m n
68118144c84SBram Moolenaar
6824c3f536fSBram Moolenaarsyn match   kconfigSpecialChar        contained '\\.'
6838424a624SBram Moolenaarsyn match   kconfigSpecialChar        '\\$'
6844c3f536fSBram Moolenaar
6854c3f536fSBram Moolenaarsyn region  kconfigPath               matchgroup=kconfigPath
6864c3f536fSBram Moolenaar                                      \ start=+"+ skip=+\\\\\|\\\"+ end=+"+
6874c3f536fSBram Moolenaar                                      \ contains=kconfigSpecialChar
6884c3f536fSBram Moolenaar
6894c3f536fSBram Moolenaarsyn region  kconfigPath               matchgroup=kconfigPath
6904c3f536fSBram Moolenaar                                      \ start=+'+ skip=+\\\\\|\\\'+ end=+'+
6914c3f536fSBram Moolenaar                                      \ contains=kconfigSpecialChar
6924c3f536fSBram Moolenaar
6934c3f536fSBram Moolenaarsyn match   kconfigPath               '\S\+'
6944c3f536fSBram Moolenaar                                      \ contained
6954c3f536fSBram Moolenaar
6964c3f536fSBram Moolenaarsyn region  kconfigString             matchgroup=kconfigString
6974c3f536fSBram Moolenaar                                      \ start=+"+ skip=+\\\\\|\\\"+ end=+"+
6984c3f536fSBram Moolenaar                                      \ contains=kconfigSpecialChar
6994c3f536fSBram Moolenaar
7004c3f536fSBram Moolenaarsyn region  kconfigString             matchgroup=kconfigString
7014c3f536fSBram Moolenaar                                      \ start=+'+ skip=+\\\\\|\\\'+ end=+'+
7024c3f536fSBram Moolenaar                                      \ contains=kconfigSpecialChar
7034c3f536fSBram Moolenaar
7044c3f536fSBram Moolenaarsyn keyword kconfigType               bool boolean tristate string hex int
7054c3f536fSBram Moolenaar
7064c3f536fSBram Moolenaarsyn keyword kconfigOption             prompt default requires select range
7074c3f536fSBram Moolenaar                                      \ optional
70818144c84SBram Moolenaarsyn match   kconfigOption             'depends\%( on\)\='
7094c3f536fSBram Moolenaar
7104c3f536fSBram Moolenaarsyn keyword kconfigMacro              def_bool def_tristate
7114c3f536fSBram Moolenaar
71218144c84SBram Moolenaarsyn region  kconfigHelpText
71318144c84SBram Moolenaar      \ matchgroup=kconfigOption
71418144c84SBram Moolenaar      \ start='\%(help\|---help---\)\ze\s*\n\z(\s\+\)'
7154c3f536fSBram Moolenaar      \ skip='^$'
7164c3f536fSBram Moolenaar      \ end='^\z1\@!'
7174c3f536fSBram Moolenaar
7187fc904b6SBram Moolenaarsyn sync    match kconfigSyncHelp     grouphere kconfigHelpText 'help\|---help---'
7197fc904b6SBram Moolenaar
7204c3f536fSBram Moolenaarhi def link kconfigTodo         Todo
7214c3f536fSBram Moolenaarhi def link kconfigComment      Comment
7224c3f536fSBram Moolenaarhi def link kconfigKeyword      Keyword
7234c3f536fSBram Moolenaarhi def link kconfigConditional  Conditional
7244c3f536fSBram Moolenaarhi def link kconfigPreProc      PreProc
72518144c84SBram Moolenaarhi def link kconfigTriState     Boolean
7264c3f536fSBram Moolenaarhi def link kconfigSpecialChar  SpecialChar
7274c3f536fSBram Moolenaarhi def link kconfigPath         String
7284c3f536fSBram Moolenaarhi def link kconfigString       String
7294c3f536fSBram Moolenaarhi def link kconfigType         Type
7304c3f536fSBram Moolenaarhi def link kconfigOption       Identifier
7314c3f536fSBram Moolenaarhi def link kconfigHelpText     Normal
7324c3f536fSBram Moolenaarhi def link kconfigmacro        Macro
7334c3f536fSBram Moolenaar
7344c3f536fSBram Moolenaarendif
7354c3f536fSBram Moolenaar
7364c3f536fSBram Moolenaarlet b:current_syntax = "kconfig"
7374c3f536fSBram Moolenaar
7384c3f536fSBram Moolenaarlet &cpo = s:cpo_save
7394c3f536fSBram Moolenaarunlet s:cpo_save
740