127 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:     BitBake bb/bbclasses/inc
 | |
| " Author:       Chris Larson <kergoth@handhelds.org>
 | |
| "               Ricardo Salveti <rsalveti@rsalveti.net>
 | |
| " Copyright:    Copyright (C) 2004  Chris Larson <kergoth@handhelds.org>
 | |
| "               Copyright (C) 2008  Ricardo Salveti <rsalveti@rsalveti.net>
 | |
| "
 | |
| " This file is licensed under the MIT license, see COPYING.MIT in
 | |
| " this source distribution for the terms.
 | |
| "
 | |
| " Syntax highlighting for bb, bbclasses and inc files.
 | |
| "
 | |
| " It's an entirely new type, just has specific syntax in shell and python code
 | |
| 
 | |
| if v:version < 600
 | |
|     finish
 | |
| endif
 | |
| if exists("b:current_syntax")
 | |
|     finish
 | |
| endif
 | |
| 
 | |
| syn include @python syntax/python.vim
 | |
| unlet! b:current_syntax
 | |
| 
 | |
| " BitBake syntax
 | |
| 
 | |
| " Matching case
 | |
| syn case match
 | |
| 
 | |
| " Indicates the error when nothing is matched
 | |
| syn match bbUnmatched           "."
 | |
| 
 | |
| " Comments
 | |
| syn cluster bbCommentGroup      contains=bbTodo,@Spell
 | |
| syn keyword bbTodo              COMBAK FIXME TODO XXX contained
 | |
| syn match bbComment             "#.*$" contains=@bbCommentGroup
 | |
| 
 | |
| " String helpers
 | |
| syn match bbQuote               +['"]+ contained 
 | |
| syn match bbDelimiter           "[(){}=]" contained
 | |
| syn match bbArrayBrackets       "[\[\]]" contained
 | |
| 
 | |
| " BitBake strings
 | |
| syn match bbContinue            "\\$"
 | |
| syn region bbString             matchgroup=bbQuote start=+"+ skip=+\\$+ end=+"+ contained contains=bbTodo,bbContinue,bbVarDeref,bbVarPyValue,@Spell
 | |
| syn region bbString             matchgroup=bbQuote start=+'+ skip=+\\$+ end=+'+ contained contains=bbTodo,bbContinue,bbVarDeref,bbVarPyValue,@Spell
 | |
| 
 | |
| " Vars definition
 | |
| syn match bbExport            "^export" nextgroup=bbIdentifier skipwhite
 | |
| syn keyword bbExportFlag        export contained nextgroup=bbIdentifier skipwhite
 | |
| syn match bbIdentifier          "[a-zA-Z0-9\-_\.\/\+]\+" display contained
 | |
| syn match bbVarDeref            "${[a-zA-Z0-9\-_:\.\/\+]\+}" contained
 | |
| syn match bbVarEq               "\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)" contained nextgroup=bbVarValue
 | |
| syn match bbVarDef              "^\(export\s*\)\?\([a-zA-Z0-9\-_\.\/\+][${}a-zA-Z0-9\-_:\.\/\+]*\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbOverrideOperator,bbVarDeref nextgroup=bbVarEq
 | |
| syn match bbVarValue            ".*$" contained contains=bbString,bbVarDeref,bbVarPyValue
 | |
| syn region bbVarPyValue         start=+${@+ skip=+\\$+ end=+}+ contained contains=@python
 | |
| 
 | |
| " Vars 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*\(:=\|=\|.=\|=.|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq
 | |
| 
 | |
| " Includes and requires
 | |
| syn keyword bbInclude           inherit include require contained 
 | |
| syn match bbIncludeRest         ".*$" contained contains=bbString,bbVarDeref
 | |
| syn match bbIncludeLine         "^\(inherit\|include\|require\)\s\+" contains=bbInclude nextgroup=bbIncludeRest
 | |
| 
 | |
| " Add taks and similar
 | |
| syn keyword bbStatement         addtask deltask addhandler after before EXPORT_FUNCTIONS contained
 | |
| syn match bbStatementRest       ".*$" skipwhite contained contains=bbStatement
 | |
| syn match bbStatementLine       "^\(addtask\|deltask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest
 | |
| 
 | |
| " OE Important Functions
 | |
| syn keyword bbOEFunctions       do_fetch do_unpack do_patch do_configure do_compile do_stage do_install do_package contained
 | |
| 
 | |
| " Generic Functions
 | |
| syn match bbFunction            "\h[0-9A-Za-z_\-\.]*" display contained contains=bbOEFunctions
 | |
| 
 | |
| syn keyword bbOverrideOperator  append prepend remove contained
 | |
| 
 | |
| " BitBake shell metadata
 | |
| syn include @shell syntax/sh.vim
 | |
| unlet! b:current_syntax
 | |
| 
 | |
| syn keyword bbShFakeRootFlag    fakeroot contained
 | |
| syn match bbShFuncDef           "^\(fakeroot\s*\)\?\([\.0-9A-Za-z_:${}\-\.]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbOverrideOperator,bbVarDeref,bbDelimiter nextgroup=bbShFuncRegion skipwhite
 | |
| syn region bbShFuncRegion       matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@shell
 | |
| 
 | |
| " Python value inside shell functions
 | |
| syn region shDeref         start=+${@+ skip=+\\$+ excludenl end=+}+ contained contains=@python
 | |
| 
 | |
| " BitBake python metadata
 | |
| syn keyword bbPyFlag            python contained
 | |
| syn match bbPyFuncDef           "^\(fakeroot\s*\)\?\(python\)\(\s\+[0-9A-Za-z_:${}\-\.]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbPyFlag,bbFunction,bbOverrideOperator,bbVarDeref,bbDelimiter nextgroup=bbPyFuncRegion skipwhite
 | |
| syn region bbPyFuncRegion       matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@python
 | |
| 
 | |
| " BitBake 'def'd python functions
 | |
| syn keyword bbPyDef             def contained
 | |
| syn region bbPyDefRegion        start='^\(def\s\+\)\([0-9A-Za-z_-]\+\)\(\s*(.*)\s*\):\s*$' end='^\(\s\|$\)\@!' contains=@python
 | |
| 
 | |
| " Highlighting Definitions
 | |
| hi def link bbUnmatched         Error
 | |
| hi def link bbInclude           Include
 | |
| hi def link bbTodo              Todo
 | |
| hi def link bbComment           Comment
 | |
| hi def link bbQuote             String
 | |
| hi def link bbString            String
 | |
| hi def link bbDelimiter         Keyword
 | |
| hi def link bbArrayBrackets     Statement
 | |
| hi def link bbContinue          Special
 | |
| hi def link bbExport            Type
 | |
| hi def link bbExportFlag        Type
 | |
| hi def link bbIdentifier	    Identifier
 | |
| hi def link bbVarDeref          PreProc
 | |
| hi def link bbVarDef            Identifier
 | |
| hi def link bbVarValue          String
 | |
| hi def link bbShFakeRootFlag    Type
 | |
| hi def link bbFunction          Function
 | |
| hi def link bbPyFlag            Type
 | |
| hi def link bbPyDef             Statement
 | |
| hi def link bbStatement         Statement
 | |
| hi def link bbStatementRest     Identifier
 | |
| hi def link bbOEFunctions       Special
 | |
| hi def link bbVarPyValue        PreProc
 | |
| hi def link bbOverrideOperator  Operator
 | |
| 
 | |
| let b:current_syntax = "bitbake"
 |