codekingpro/portable-devtools
114k
1" Vim syntax file2" Maintainer: Christian Brabandt <cb@256bit.org>3" Previous Maintainer: Nikolai Weibull <now@bitwi.se>4" Latest Revision: 2025 Jan 205" License: Vim (see :h license)6" Repository: https://github.com/chrisbra/vim-kconfig7 8if exists("b:current_syntax")9 finish10endif11 12let s:cpo_save = &cpo13set cpo&vim14 15exe "syn sync minlines=" . get(g:, 'kconfig_minlines', 50)16 17if exists("g:kconfig_syntax_heavy")18 19 syn match kconfigBegin '^' nextgroup=kconfigKeyword20 \ skipwhite21 22 syn keyword kconfigTodo contained TODO FIXME XXX NOTE23 24 syn match kconfigComment display '#.*$' contains=kconfigTodo25 26 syn keyword kconfigKeyword config nextgroup=kconfigSymbol27 \ skipwhite28 29 syn keyword kconfigKeyword menuconfig nextgroup=kconfigSymbol30 \ skipwhite31 32 syn keyword kconfigKeyword comment menu mainmenu33 \ nextgroup=kconfigKeywordPrompt34 \ skipwhite35 36 syn keyword kconfigKeyword choice37 \ nextgroup=@kconfigConfigOptions38 \ skipwhite skipnl39 40 syn keyword kconfigKeyword endmenu endchoice41 42 syn keyword kconfigPreProc source43 \ nextgroup=kconfigPath44 \ skipwhite45 46 " TODO: This is a hack. The who .*Expr stuff should really be generated so47 " that we can reuse it for various nextgroups.48 syn keyword kconfigConditional if endif49 \ nextgroup=@kconfigConfigOptionIfExpr50 \ skipwhite51 52 syn match kconfigKeywordPrompt '"[^"\\]*\%(\\.[^"\\]*\)*"'53 \ contained54 \ nextgroup=@kconfigConfigOptions55 \ skipwhite skipnl56 57 syn match kconfigPath '"[^"\\]*\%(\\.[^"\\]*\)*"\|\S\+'58 \ contained59 60 syn match kconfigSymbol '\<\k\+\>'61 \ contained62 \ nextgroup=@kconfigConfigOptions63 \ skipwhite skipnl64 65 " FIXME: There is – probably – no reason to cluster these instead of just66 " defining them in the same group.67 syn cluster kconfigConfigOptions contains=kconfigTypeDefinition,68 \ kconfigInputPrompt,69 \ kconfigDefaultValue,70 \ kconfigDependencies,71 \ kconfigReverseDependencies,72 \ kconfigNumericalRanges,73 \ kconfigHelpText,74 \ kconfigDefBool,75 \ kconfigOptional76 77 syn keyword kconfigTypeDefinition bool boolean tristate string hex int78 \ contained79 \ nextgroup=kconfigTypeDefPrompt,80 \ @kconfigConfigOptions81 \ skipwhite skipnl82 83 syn match kconfigTypeDefPrompt '"[^"\\]*\%(\\.[^"\\]*\)*"'84 \ contained85 \ nextgroup=kconfigConfigOptionIf,86 \ @kconfigConfigOptions87 \ skipwhite skipnl88 89 syn match kconfigTypeDefPrompt "'[^'\\]*\%(\\.[^'\\]*\)*'"90 \ contained91 \ nextgroup=kconfigConfigOptionIf,92 \ @kconfigConfigOptions93 \ skipwhite skipnl94 95 syn keyword kconfigInputPrompt prompt96 \ contained97 \ nextgroup=kconfigPromptPrompt98 \ skipwhite99 100 syn match kconfigPromptPrompt '"[^"\\]*\%(\\.[^"\\]*\)*"'101 \ contained102 \ nextgroup=kconfigConfigOptionIf,103 \ @kconfigConfigOptions104 \ skipwhite skipnl105 106 syn match kconfigPromptPrompt "'[^'\\]*\%(\\.[^'\\]*\)*'"107 \ contained108 \ nextgroup=kconfigConfigOptionIf,109 \ @kconfigConfigOptions110 \ skipwhite skipnl111 112 syn keyword kconfigDefaultValue default113 \ contained114 \ nextgroup=@kconfigConfigOptionExpr115 \ skipwhite116 117 syn match kconfigDependencies 'depends on\|requires'118 \ contained119 \ nextgroup=@kconfigConfigOptionIfExpr120 \ skipwhite121 122 syn keyword kconfigReverseDependencies select123 \ contained124 \ nextgroup=@kconfigRevDepSymbol125 \ skipwhite126 127 syn cluster kconfigRevDepSymbol contains=kconfigRevDepCSymbol,128 \ kconfigRevDepNCSymbol129 130 syn match kconfigRevDepCSymbol '"[^"\\]*\%(\\.[^"\\]*\)*"'131 \ contained132 \ nextgroup=kconfigConfigOptionIf,133 \ @kconfigConfigOptions134 \ skipwhite skipnl135 136 syn match kconfigRevDepCSymbol "'[^'\\]*\%(\\.[^'\\]*\)*'"137 \ contained138 \ nextgroup=kconfigConfigOptionIf,139 \ @kconfigConfigOptions140 \ skipwhite skipnl141 142 syn match kconfigRevDepNCSymbol '\<\k\+\>'143 \ contained144 \ nextgroup=kconfigConfigOptionIf,145 \ @kconfigConfigOptions146 \ skipwhite skipnl147 148 syn keyword kconfigNumericalRanges range149 \ contained150 \ nextgroup=@kconfigRangeSymbol151 \ skipwhite152 153 syn cluster kconfigRangeSymbol contains=kconfigRangeCSymbol,154 \ kconfigRangeNCSymbol155 156 syn match kconfigRangeCSymbol '"[^"\\]*\%(\\.[^"\\]*\)*"'157 \ contained158 \ nextgroup=@kconfigRangeSymbol2159 \ skipwhite skipnl160 161 syn match kconfigRangeCSymbol "'[^'\\]*\%(\\.[^'\\]*\)*'"162 \ contained163 \ nextgroup=@kconfigRangeSymbol2164 \ skipwhite skipnl165 166 syn match kconfigRangeNCSymbol '\<\k\+\>'167 \ contained168 \ nextgroup=@kconfigRangeSymbol2169 \ skipwhite skipnl170 171 syn cluster kconfigRangeSymbol2 contains=kconfigRangeCSymbol2,172 \ kconfigRangeNCSymbol2173 174 syn match kconfigRangeCSymbol2 "'[^'\\]*\%(\\.[^'\\]*\)*'"175 \ contained176 \ nextgroup=kconfigConfigOptionIf,177 \ @kconfigConfigOptions178 \ skipwhite skipnl179 180 syn match kconfigRangeNCSymbol2 '\<\k\+\>'181 \ contained182 \ nextgroup=kconfigConfigOptionIf,183 \ @kconfigConfigOptions184 \ skipwhite skipnl185 186 syn region kconfigHelpText contained187 \ matchgroup=kconfigConfigOption188 \ start='\%(help\|---help---\)\ze\s*\n\z(\s\+\)'189 \ skip='^$'190 \ end='^\z1\@!'191 \ nextgroup=@kconfigConfigOptions192 \ skipwhite skipnl193 194 " XXX: Undocumented195 syn keyword kconfigDefBool def_bool196 \ contained197 \ nextgroup=@kconfigDefBoolSymbol198 \ skipwhite199 200 syn cluster kconfigDefBoolSymbol contains=kconfigDefBoolCSymbol,201 \ kconfigDefBoolNCSymbol202 203 syn match kconfigDefBoolCSymbol '"[^"\\]*\%(\\.[^"\\]*\)*"'204 \ contained205 \ nextgroup=kconfigConfigOptionIf,206 \ @kconfigConfigOptions207 \ skipwhite skipnl208 209 syn match kconfigDefBoolCSymbol "'[^'\\]*\%(\\.[^'\\]*\)*'"210 \ contained211 \ nextgroup=kconfigConfigOptionIf,212 \ @kconfigConfigOptions213 \ skipwhite skipnl214 215 syn match kconfigDefBoolNCSymbol '\<\k\+\>'216 \ contained217 \ nextgroup=kconfigConfigOptionIf,218 \ @kconfigConfigOptions219 \ skipwhite skipnl220 221 " XXX: This is actually only a valid option for “choice”, but treating it222 " specially would require a lot of extra groups.223 syn keyword kconfigOptional optional224 \ contained225 \ nextgroup=@kconfigConfigOptions226 \ skipwhite skipnl227 228 syn keyword kconfigConfigOptionIf if229 \ contained230 \ nextgroup=@kconfigConfigOptionIfExpr231 \ skipwhite232 233 syn cluster kconfigConfigOptionIfExpr contains=@kconfigConfOptIfExprSym,234 \ kconfigConfOptIfExprNeg,235 \ kconfigConfOptIfExprGroup236 237 syn cluster kconfigConfOptIfExprSym contains=kconfigConfOptIfExprCSym,238 \ kconfigConfOptIfExprNCSym239 240 syn match kconfigConfOptIfExprCSym '"[^"\\]*\%(\\.[^"\\]*\)*"'241 \ contained242 \ nextgroup=@kconfigConfigOptions,243 \ kconfigConfOptIfExprAnd,244 \ kconfigConfOptIfExprOr,245 \ kconfigConfOptIfExprEq,246 \ kconfigConfOptIfExprNEq247 \ skipwhite skipnl248 249 syn match kconfigConfOptIfExprCSym "'[^'\\]*\%(\\.[^'\\]*\)*'"250 \ contained251 \ nextgroup=@kconfigConfigOptions,252 \ kconfigConfOptIfExprAnd,253 \ kconfigConfOptIfExprOr,254 \ kconfigConfOptIfExprEq,255 \ kconfigConfOptIfExprNEq256 \ skipwhite skipnl257 258 syn match kconfigConfOptIfExprNCSym '\<\k\+\>'259 \ contained260 \ nextgroup=@kconfigConfigOptions,261 \ kconfigConfOptIfExprAnd,262 \ kconfigConfOptIfExprOr,263 \ kconfigConfOptIfExprEq,264 \ kconfigConfOptIfExprNEq265 \ skipwhite skipnl266 267 syn cluster kconfigConfOptIfExprSym2 contains=kconfigConfOptIfExprCSym2,268 \ kconfigConfOptIfExprNCSym2269 270 syn match kconfigConfOptIfExprEq '='271 \ contained272 \ nextgroup=@kconfigConfOptIfExprSym2273 \ skipwhite274 275 syn match kconfigConfOptIfExprNEq '!='276 \ contained277 \ nextgroup=@kconfigConfOptIfExprSym2278 \ skipwhite279 280 syn match kconfigConfOptIfExprCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"281 \ contained282 \ nextgroup=@kconfigConfigOptions,283 \ kconfigConfOptIfExprAnd,284 \ kconfigConfOptIfExprOr285 \ skipwhite skipnl286 287 syn match kconfigConfOptIfExprNCSym2 '\<\k\+\>'288 \ contained289 \ nextgroup=@kconfigConfigOptions,290 \ kconfigConfOptIfExprAnd,291 \ kconfigConfOptIfExprOr292 \ skipwhite skipnl293 294 syn match kconfigConfOptIfExprNeg '!'295 \ contained296 \ nextgroup=@kconfigConfigOptionIfExpr297 \ skipwhite298 299 syn match kconfigConfOptIfExprAnd '&&'300 \ contained301 \ nextgroup=@kconfigConfigOptionIfExpr302 \ skipwhite303 304 syn match kconfigConfOptIfExprOr '||'305 \ contained306 \ nextgroup=@kconfigConfigOptionIfExpr307 \ skipwhite308 309 syn match kconfigConfOptIfExprGroup '('310 \ contained311 \ nextgroup=@kconfigConfigOptionIfGExp312 \ skipwhite313 314 " TODO: hm, this kind of recursion doesn't work right. We need another set of315 " expressions that have kconfigConfigOPtionIfGExp as nextgroup and a matcher316 " for '(' that sets it all off.317 syn cluster kconfigConfigOptionIfGExp contains=@kconfigConfOptIfGExpSym,318 \ kconfigConfOptIfGExpNeg,319 \ kconfigConfOptIfExprGroup320 321 syn cluster kconfigConfOptIfGExpSym contains=kconfigConfOptIfGExpCSym,322 \ kconfigConfOptIfGExpNCSym323 324 syn match kconfigConfOptIfGExpCSym '"[^"\\]*\%(\\.[^"\\]*\)*"'325 \ contained326 \ nextgroup=@kconfigConfigIf,327 \ kconfigConfOptIfGExpAnd,328 \ kconfigConfOptIfGExpOr,329 \ kconfigConfOptIfGExpEq,330 \ kconfigConfOptIfGExpNEq331 \ skipwhite skipnl332 333 syn match kconfigConfOptIfGExpCSym "'[^'\\]*\%(\\.[^'\\]*\)*'"334 \ contained335 \ nextgroup=@kconfigConfigIf,336 \ kconfigConfOptIfGExpAnd,337 \ kconfigConfOptIfGExpOr,338 \ kconfigConfOptIfGExpEq,339 \ kconfigConfOptIfGExpNEq340 \ skipwhite skipnl341 342 syn match kconfigConfOptIfGExpNCSym '\<\k\+\>'343 \ contained344 \ nextgroup=kconfigConfOptIfExprGrpE,345 \ kconfigConfOptIfGExpAnd,346 \ kconfigConfOptIfGExpOr,347 \ kconfigConfOptIfGExpEq,348 \ kconfigConfOptIfGExpNEq349 \ skipwhite skipnl350 351 syn cluster kconfigConfOptIfGExpSym2 contains=kconfigConfOptIfGExpCSym2,352 \ kconfigConfOptIfGExpNCSym2353 354 syn match kconfigConfOptIfGExpEq '='355 \ contained356 \ nextgroup=@kconfigConfOptIfGExpSym2357 \ skipwhite358 359 syn match kconfigConfOptIfGExpNEq '!='360 \ contained361 \ nextgroup=@kconfigConfOptIfGExpSym2362 \ skipwhite363 364 syn match kconfigConfOptIfGExpCSym2 '"[^"\\]*\%(\\.[^"\\]*\)*"'365 \ contained366 \ nextgroup=kconfigConfOptIfExprGrpE,367 \ kconfigConfOptIfGExpAnd,368 \ kconfigConfOptIfGExpOr369 \ skipwhite skipnl370 371 syn match kconfigConfOptIfGExpCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"372 \ contained373 \ nextgroup=kconfigConfOptIfExprGrpE,374 \ kconfigConfOptIfGExpAnd,375 \ kconfigConfOptIfGExpOr376 \ skipwhite skipnl377 378 syn match kconfigConfOptIfGExpNCSym2 '\<\k\+\>'379 \ contained380 \ nextgroup=kconfigConfOptIfExprGrpE,381 \ kconfigConfOptIfGExpAnd,382 \ kconfigConfOptIfGExpOr383 \ skipwhite skipnl384 385 syn match kconfigConfOptIfGExpNeg '!'386 \ contained387 \ nextgroup=@kconfigConfigOptionIfGExp388 \ skipwhite389 390 syn match kconfigConfOptIfGExpAnd '&&'391 \ contained392 \ nextgroup=@kconfigConfigOptionIfGExp393 \ skipwhite394 395 syn match kconfigConfOptIfGExpOr '||'396 \ contained397 \ nextgroup=@kconfigConfigOptionIfGExp398 \ skipwhite399 400 syn match kconfigConfOptIfExprGrpE ')'401 \ contained402 \ nextgroup=@kconfigConfigOptions,403 \ kconfigConfOptIfExprAnd,404 \ kconfigConfOptIfExprOr405 \ skipwhite skipnl406 407 408 syn cluster kconfigConfigOptionExpr contains=@kconfigConfOptExprSym,409 \ kconfigConfOptExprNeg,410 \ kconfigConfOptExprGroup411 412 syn cluster kconfigConfOptExprSym contains=kconfigConfOptExprCSym,413 \ kconfigConfOptExprNCSym414 415 syn match kconfigConfOptExprCSym '"[^"\\]*\%(\\.[^"\\]*\)*"'416 \ contained417 \ nextgroup=kconfigConfigOptionIf,418 \ kconfigConfOptExprAnd,419 \ kconfigConfOptExprOr,420 \ kconfigConfOptExprEq,421 \ kconfigConfOptExprNEq,422 \ @kconfigConfigOptions423 \ skipwhite skipnl424 425 syn match kconfigConfOptExprCSym "'[^'\\]*\%(\\.[^'\\]*\)*'"426 \ contained427 \ nextgroup=kconfigConfigOptionIf,428 \ kconfigConfOptExprAnd,429 \ kconfigConfOptExprOr,430 \ kconfigConfOptExprEq,431 \ kconfigConfOptExprNEq,432 \ @kconfigConfigOptions433 \ skipwhite skipnl434 435 syn match kconfigConfOptExprNCSym '\<\k\+\>'436 \ contained437 \ nextgroup=kconfigConfigOptionIf,438 \ kconfigConfOptExprAnd,439 \ kconfigConfOptExprOr,440 \ kconfigConfOptExprEq,441 \ kconfigConfOptExprNEq,442 \ @kconfigConfigOptions443 \ skipwhite skipnl444 445 syn cluster kconfigConfOptExprSym2 contains=kconfigConfOptExprCSym2,446 \ kconfigConfOptExprNCSym2447 448 syn match kconfigConfOptExprEq '='449 \ contained450 \ nextgroup=@kconfigConfOptExprSym2451 \ skipwhite452 453 syn match kconfigConfOptExprNEq '!='454 \ contained455 \ nextgroup=@kconfigConfOptExprSym2456 \ skipwhite457 458 syn match kconfigConfOptExprCSym2 '"[^"\\]*\%(\\.[^"\\]*\)*"'459 \ contained460 \ nextgroup=kconfigConfigOptionIf,461 \ kconfigConfOptExprAnd,462 \ kconfigConfOptExprOr,463 \ @kconfigConfigOptions464 \ skipwhite skipnl465 466 syn match kconfigConfOptExprCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"467 \ contained468 \ nextgroup=kconfigConfigOptionIf,469 \ kconfigConfOptExprAnd,470 \ kconfigConfOptExprOr,471 \ @kconfigConfigOptions472 \ skipwhite skipnl473 474 syn match kconfigConfOptExprNCSym2 '\<\k\+\>'475 \ contained476 \ nextgroup=kconfigConfigOptionIf,477 \ kconfigConfOptExprAnd,478 \ kconfigConfOptExprOr,479 \ @kconfigConfigOptions480 \ skipwhite skipnl481 482 syn match kconfigConfOptExprNeg '!'483 \ contained484 \ nextgroup=@kconfigConfigOptionExpr485 \ skipwhite486 487 syn match kconfigConfOptExprAnd '&&'488 \ contained489 \ nextgroup=@kconfigConfigOptionExpr490 \ skipwhite491 492 syn match kconfigConfOptExprOr '||'493 \ contained494 \ nextgroup=@kconfigConfigOptionExpr495 \ skipwhite496 497 syn match kconfigConfOptExprGroup '('498 \ contained499 \ nextgroup=@kconfigConfigOptionGExp500 \ skipwhite501 502 syn cluster kconfigConfigOptionGExp contains=@kconfigConfOptGExpSym,503 \ kconfigConfOptGExpNeg,504 \ kconfigConfOptGExpGroup505 506 syn cluster kconfigConfOptGExpSym contains=kconfigConfOptGExpCSym,507 \ kconfigConfOptGExpNCSym508 509 syn match kconfigConfOptGExpCSym '"[^"\\]*\%(\\.[^"\\]*\)*"'510 \ contained511 \ nextgroup=kconfigConfOptExprGrpE,512 \ kconfigConfOptGExpAnd,513 \ kconfigConfOptGExpOr,514 \ kconfigConfOptGExpEq,515 \ kconfigConfOptGExpNEq516 \ skipwhite skipnl517 518 syn match kconfigConfOptGExpCSym "'[^'\\]*\%(\\.[^'\\]*\)*'"519 \ contained520 \ nextgroup=kconfigConfOptExprGrpE,521 \ kconfigConfOptGExpAnd,522 \ kconfigConfOptGExpOr,523 \ kconfigConfOptGExpEq,524 \ kconfigConfOptGExpNEq525 \ skipwhite skipnl526 527 syn match kconfigConfOptGExpNCSym '\<\k\+\>'528 \ contained529 \ nextgroup=kconfigConfOptExprGrpE,530 \ kconfigConfOptGExpAnd,531 \ kconfigConfOptGExpOr,532 \ kconfigConfOptGExpEq,533 \ kconfigConfOptGExpNEq534 \ skipwhite skipnl535 536 syn cluster kconfigConfOptGExpSym2 contains=kconfigConfOptGExpCSym2,537 \ kconfigConfOptGExpNCSym2538 539 syn match kconfigConfOptGExpEq '='540 \ contained541 \ nextgroup=@kconfigConfOptGExpSym2542 \ skipwhite543 544 syn match kconfigConfOptGExpNEq '!='545 \ contained546 \ nextgroup=@kconfigConfOptGExpSym2547 \ skipwhite548 549 syn match kconfigConfOptGExpCSym2 '"[^"\\]*\%(\\.[^"\\]*\)*"'550 \ contained551 \ nextgroup=kconfigConfOptExprGrpE,552 \ kconfigConfOptGExpAnd,553 \ kconfigConfOptGExpOr554 \ skipwhite skipnl555 556 syn match kconfigConfOptGExpCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"557 \ contained558 \ nextgroup=kconfigConfOptExprGrpE,559 \ kconfigConfOptGExpAnd,560 \ kconfigConfOptGExpOr561 \ skipwhite skipnl562 563 syn match kconfigConfOptGExpNCSym2 '\<\k\+\>'564 \ contained565 \ nextgroup=kconfigConfOptExprGrpE,566 \ kconfigConfOptGExpAnd,567 \ kconfigConfOptGExpOr568 \ skipwhite skipnl569 570 syn match kconfigConfOptGExpNeg '!'571 \ contained572 \ nextgroup=@kconfigConfigOptionGExp573 \ skipwhite574 575 syn match kconfigConfOptGExpAnd '&&'576 \ contained577 \ nextgroup=@kconfigConfigOptionGExp578 \ skipwhite579 580 syn match kconfigConfOptGExpOr '||'581 \ contained582 \ nextgroup=@kconfigConfigOptionGExp583 \ skipwhite584 585 syn match kconfigConfOptExprGrpE ')'586 \ contained587 \ nextgroup=kconfigConfigOptionIf,588 \ kconfigConfOptExprAnd,589 \ kconfigConfOptExprOr590 \ skipwhite skipnl591 592 hi def link kconfigTodo Todo593 hi def link kconfigComment Comment594 hi def link kconfigKeyword Keyword595 hi def link kconfigPreProc PreProc596 hi def link kconfigConditional Conditional597 hi def link kconfigPrompt String598 hi def link kconfigKeywordPrompt kconfigPrompt599 hi def link kconfigPath String600 hi def link kconfigSymbol String601 hi def link kconfigConstantSymbol Constant602 hi def link kconfigConfigOption Type603 hi def link kconfigTypeDefinition kconfigConfigOption604 hi def link kconfigTypeDefPrompt kconfigPrompt605 hi def link kconfigInputPrompt kconfigConfigOption606 hi def link kconfigPromptPrompt kconfigPrompt607 hi def link kconfigDefaultValue kconfigConfigOption608 hi def link kconfigDependencies kconfigConfigOption609 hi def link kconfigReverseDependencies kconfigConfigOption610 hi def link kconfigRevDepCSymbol kconfigConstantSymbol611 hi def link kconfigRevDepNCSymbol kconfigSymbol612 hi def link kconfigNumericalRanges kconfigConfigOption613 hi def link kconfigRangeCSymbol kconfigConstantSymbol614 hi def link kconfigRangeNCSymbol kconfigSymbol615 hi def link kconfigRangeCSymbol2 kconfigConstantSymbol616 hi def link kconfigRangeNCSymbol2 kconfigSymbol617 hi def link kconfigHelpText Normal618 hi def link kconfigDefBool kconfigConfigOption619 hi def link kconfigDefBoolCSymbol kconfigConstantSymbol620 hi def link kconfigDefBoolNCSymbol kconfigSymbol621 hi def link kconfigOptional kconfigConfigOption622 hi def link kconfigConfigOptionIf Conditional623 hi def link kconfigConfOptIfExprCSym kconfigConstantSymbol624 hi def link kconfigConfOptIfExprNCSym kconfigSymbol625 hi def link kconfigOperator Operator626 hi def link kconfigConfOptIfExprEq kconfigOperator627 hi def link kconfigConfOptIfExprNEq kconfigOperator628 hi def link kconfigConfOptIfExprCSym2 kconfigConstantSymbol629 hi def link kconfigConfOptIfExprNCSym2 kconfigSymbol630 hi def link kconfigConfOptIfExprNeg kconfigOperator631 hi def link kconfigConfOptIfExprAnd kconfigOperator632 hi def link kconfigConfOptIfExprOr kconfigOperator633 hi def link kconfigDelimiter Delimiter634 hi def link kconfigConfOptIfExprGroup kconfigDelimiter635 hi def link kconfigConfOptIfGExpCSym kconfigConstantSymbol636 hi def link kconfigConfOptIfGExpNCSym kconfigSymbol637 hi def link kconfigConfOptIfGExpEq kconfigOperator638 hi def link kconfigConfOptIfGExpNEq kconfigOperator639 hi def link kconfigConfOptIfGExpCSym2 kconfigConstantSymbol640 hi def link kconfigConfOptIfGExpNCSym2 kconfigSymbol641 hi def link kconfigConfOptIfGExpNeg kconfigOperator642 hi def link kconfigConfOptIfGExpAnd kconfigOperator643 hi def link kconfigConfOptIfGExpOr kconfigOperator644 hi def link kconfigConfOptIfExprGrpE kconfigDelimiter645 hi def link kconfigConfOptExprCSym kconfigConstantSymbol646 hi def link kconfigConfOptExprNCSym kconfigSymbol647 hi def link kconfigConfOptExprEq kconfigOperator648 hi def link kconfigConfOptExprNEq kconfigOperator649 hi def link kconfigConfOptExprCSym2 kconfigConstantSymbol650 hi def link kconfigConfOptExprNCSym2 kconfigSymbol651 hi def link kconfigConfOptExprNeg kconfigOperator652 hi def link kconfigConfOptExprAnd kconfigOperator653 hi def link kconfigConfOptExprOr kconfigOperator654 hi def link kconfigConfOptExprGroup kconfigDelimiter655 hi def link kconfigConfOptGExpCSym kconfigConstantSymbol656 hi def link kconfigConfOptGExpNCSym kconfigSymbol657 hi def link kconfigConfOptGExpEq kconfigOperator658 hi def link kconfigConfOptGExpNEq kconfigOperator659 hi def link kconfigConfOptGExpCSym2 kconfigConstantSymbol660 hi def link kconfigConfOptGExpNCSym2 kconfigSymbol661 hi def link kconfigConfOptGExpNeg kconfigOperator662 hi def link kconfigConfOptGExpAnd kconfigOperator663 hi def link kconfigConfOptGExpOr kconfigOperator664 hi def link kconfigConfOptExprGrpE kconfigConfOptIfExprGroup665 666else667 668 syn keyword kconfigTodo contained TODO FIXME XXX NOTE669 670 syn match kconfigComment display '#.*$' contains=kconfigTodo671 672 syn keyword kconfigKeyword config menuconfig comment mainmenu673 674 syn keyword kconfigConditional menu endmenu choice endchoice if endif675 676 syn keyword kconfigPreProc source677 \ nextgroup=kconfigPath678 \ skipwhite679 680 syn keyword kconfigTriState y m n681 682 syn match kconfigSpecialChar contained '\\.'683 syn match kconfigSpecialChar '\\$'684 685 syn region kconfigPath matchgroup=kconfigPath686 \ start=+"+ skip=+\\\\\|\\\"+ end=+"+687 \ contains=kconfigSpecialChar688 689 syn region kconfigPath matchgroup=kconfigPath690 \ start=+'+ skip=+\\\\\|\\\'+ end=+'+691 \ contains=kconfigSpecialChar692 693 syn match kconfigPath '\S\+'694 \ contained695 696 syn region kconfigString matchgroup=kconfigString697 \ start=+"+ skip=+\\\\\|\\\"+ end=+"+698 \ contains=kconfigSpecialChar699 700 syn region kconfigString matchgroup=kconfigString701 \ start=+'+ skip=+\\\\\|\\\'+ end=+'+702 \ contains=kconfigSpecialChar703 704 syn keyword kconfigType bool boolean tristate string hex int705 706 syn keyword kconfigOption prompt default requires select range707 \ optional708 syn match kconfigOption 'depends\%( on\)\='709 710 syn keyword kconfigMacro def_bool def_tristate711 712 syn region kconfigHelpText713 \ matchgroup=kconfigOption714 \ start='\%(help\|---help---\)\ze\s*\n\z(\s\+\)'715 \ skip='^$'716 \ end='^\z1\@!'717 718 hi def link kconfigTodo Todo719 hi def link kconfigComment Comment720 hi def link kconfigKeyword Keyword721 hi def link kconfigConditional Conditional722 hi def link kconfigPreProc PreProc723 hi def link kconfigTriState Boolean724 hi def link kconfigSpecialChar SpecialChar725 hi def link kconfigPath String726 hi def link kconfigString String727 hi def link kconfigType Type728 hi def link kconfigOption Identifier729 hi def link kconfigHelpText Normal730 hi def link kconfigmacro Macro731 732endif733 734let b:current_syntax = "kconfig"735 736let &cpo = s:cpo_save737unlet s:cpo_save738 