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