mirror of
https://github.com/neovim/neovim.git
synced 2024-12-26 06:05:06 -07:00
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"
|