" Vim syntax file " " Language: BitBake " Maintainer: Chris Larson " Filenames: *.bb, *.bbclass if version < 600 syntax clear elseif exists("b:current_syntax") finish endif syn case match syn match bbComment "^#.*$" display contains=bbTodo syn keyword bbTodo TODO FIXME XXX contained syn match bbDelimiter "[(){}=]" contained syn match bbQuote /['"]/ contained "syn region bbString matchgroup=bbQuote start=/"/ skip=/\\$/ excludenl end=/"/ keepend contains=bbTodo "syn region bbString matchgroup=bbQuote start=/'/ skip=/\\$/ excludenl end=/'/ keepend contains=bbTodo syn region bbString matchgroup=bbQuote start=/"/ skip=/\\$/ excludenl end=/"/ contained keepend contains=bbTodo syn region bbString matchgroup=bbQuote start=/'/ skip=/\\$/ excludenl end=/'/ contained keepend contains=bbTodo syn match bbFunction "\h\w*" display contained " First attempt: " syn keyword bbPythonFlag python contained nextgroup=bbFunction " syn region bbPythonFuncRegion start="^python\s\+\w\+\s*()\s*{" end="^}$" keepend contains=bbPythonFuncDef " syn match bbPythonFuncDef "^python\s\+\w\+\s*()\s*{" contained contains=bbPythonFlag " hi def link bbPythonFuncRegion Comment " hi def link bbPythonFlag Type " Second attempt: " syn keyword bbPythonFlag python contained nextgroup=bbFunction " syn match bbPythonFuncDef "^python\s\+\w\+\s*()\s*{" contained contains=bbPythonFlag,bbFunction,bbDelimiter " syn region bbPythonFuncRegion start="^python\s\+\w\+\s*()\s*{" end="^}$" keepend contains=bbPythonFuncDef,bbDelimiter " hi def link bbPythonFuncRegion Comment " hi def link bbPythonFlag Type " Third attempt: " syn keyword bbPythonFlag python contained nextgroup=bbFunction " syn match bbPythonFuncDef "^\(python\s\+\w\+\s*()\s*\)\({\)\@=" contains=bbPythonFlag,bbFunction,bbDelimiter nextgroup=bbPythonFuncRegion " syn region bbPythonFuncRegion matchgroup=bbDelimiter start="{" end="^}$" keepend contained " hi def link bbPythonFuncRegion Comment " hi def link bbPythonFlag Type " BitBake variable metadata syn match bbVarDef "^\([a-zA-Z0-9\-_]\+\)\s*\(=\)\@=" contains=bbIdentifier nextgroup=bbVarEq syn match bbIdentifier "[a-zA-Z0-9\-_]\+" display contained "syn keyword bbVarEq = display contained nextgroup=bbVarValue syn match bbVarEq "=" contained contains=bbOperator nextgroup=bbVarValue syn match bbVarValue ".*$" contained contains=bbString " BitBake python metadata syn include @python syntax/python.vim if exists("b:current_syntax") unlet b:current_syntax endif syn keyword bbPythonFlag python contained nextgroup=bbFunction syn match bbPythonFuncDef "^\(python\s\+\w\+\s*()\s*\)\({\)\@=" contains=bbPythonFlag,bbFunction,bbDelimiter nextgroup=bbPythonFuncRegion syn region bbPythonFuncRegion matchgroup=bbDelimiter start="{" end="^}$" keepend contained contains=@python "hi def link bbPythonFuncRegion Comment " BitBake shell metadata syn include @shell syntax/sh.vim if exists("b:current_syntax") unlet b:current_syntax endif syn match bbShellFuncDef "^\(\w\+\)\(python\)\@