" Vim syntax file " " Copyright (C) 2004 Chris Larson " This file is licensed under the MIT license, see COPYING.MIT in " this source distribution for the terms. " " 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 match bbContinue "\\$" syn region bbString matchgroup=bbQuote start=/"/ skip=/\\$/ excludenl end=/"/ contained keepend contains=bbTodo,bbContinue syn region bbString matchgroup=bbQuote start=/'/ skip=/\\$/ excludenl end=/'/ contained keepend contains=bbTodo,bbContinue " 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 variable metadata flags syn match bbVarFlagDef "^\([a-zA-Z0-9\-_]\+\)\(\[[a-zA-Z0-9\-_]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(=\)\@=" keepend excludenl contained contains=bbIdentifier nextgroup=bbVarEq "syn match bbVarFlagFlag "\[\([a-zA-Z0-9\-_]\+\)\]\s*\(=\)\@=" contains=bbIdentifier nextgroup=bbVarEq " Functions! syn match bbFunction "\h\w*" display contained " 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\)\@