mirror of
git://git.yoctoproject.org/poky
synced 2026-05-15 17:37:09 +00:00
commit 00ca441614695b4261d8d4f31b7ef0e3e3784282
Merge: 8cc367d bb88c0f
Author: Christopher Larson <kergoth@gmail.com>
Date: Thu Aug 22 16:42:42 2013 -0700
Merge pull request #6 from staticshock/multi-line-strings
Remove "keepend" and "excludenl" directives
commit bb88c0fd4ad2b7b9c8c4c73def2b3cb20c473ac3
Author: Anton Backer <olegov@gmail.com>
Date: Sat Jul 13 01:24:15 2013 -0400
Remove "keepend" and "excludenl" directives
It looks like these were never actually used correctly, and were doing
more harm than good. "keepend" on bbString, for instance, prevented
proper nesting of ${@python} in strings. Similarly, a balanced pair of
{ } braces inside a shell function would force the function to terminate
early if the closing brace was on its own line.
So far I've seen absolutely no negative consequences from removing
these, but a bunch of positive consequences.
Fixes #1
commit 8cc367d01f4c699be5fcc072de59e6f2f14a138b
Merge: c58628c eec6b7f
Author: Christopher Larson <kergoth@gmail.com>
Date: Thu Aug 22 09:46:46 2013 -0700
Merge pull request #4 from staticshock/function-names
Parse function names with nested vars
commit c58628ca517cd25985361fc0d27863521cc28a5d
Merge: dfb0f7c a890982
Author: Christopher Larson <kergoth@gmail.com>
Date: Thu Aug 22 09:43:40 2013 -0700
Merge pull request #5 from yoyko/master
syntax: python expansion (${@...}) inside shell functions
commit a890982b7c33a6e363b12d6cb69e22b4bbc0f317
Author: Jozef Šiška <yoyo@ksp.sk>
Date: Thu Aug 22 13:20:45 2013 +0200
syntax: python expansion (${@...}) inside shell functions
Signed-off-by: Jozef Šiška <jsiska@nuvotechnologies.com>
commit eec6b7f6f0472787929f424968f9a0d78ac4af08
Author: Anton Backer <olegov@gmail.com>
Date: Fri Jul 12 22:16:01 2013 -0400
Parse function names with nested vars
For instance, pkg_postinst_${PN}
Fixes #3
commit dfb0f7c0d51556448cba79b474b8c19b9cded9af
Author: Christopher Larson <chris_larson@mentor.com>
Date: Fri Jun 1 18:57:13 2012 -0400
syntax: add ?= flag def
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
commit 589a62a00709ca822a42327e7086008aba2d9933
Author: Christopher Larson <kergoth@gmail.com>
Date: Fri Dec 9 22:25:47 2011 -0700
ftplugin: set commentstring
Signed-off-by: Christopher Larson <kergoth@gmail.com>
commit 7ffc80b3fb4ddf68cc5a69bdc63ab03d70c44f87
Author: Chris Larson <chris_larson@mentor.com>
Date: Thu Jun 2 15:27:48 2011 -0700
Handle +=/=+ for flags
Signed-off-by: Chris Larson <chris_larson@mentor.com>
(Bitbake rev: f5f479bbe9b74622cd54c8d6ba8786661a3ae3e6)
Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
127 lines
5.6 KiB
VimL
127 lines
5.6 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 &compatible || v:version < 600
|
|
finish
|
|
endif
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
syn include @python syntax/python.vim
|
|
if exists("b:current_syntax")
|
|
unlet b:current_syntax
|
|
endif
|
|
|
|
" 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,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 addhandler after before EXPORT_FUNCTIONS contained
|
|
syn match bbStatementRest ".*$" skipwhite contained contains=bbStatement
|
|
syn match bbStatementLine "^\(addtask\|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
|
|
|
|
" BitBake shell metadata
|
|
syn include @shell syntax/sh.vim
|
|
if exists("b:current_syntax")
|
|
unlet b:current_syntax
|
|
endif
|
|
syn keyword bbShFakeRootFlag fakeroot contained
|
|
syn match bbShFuncDef "^\(fakeroot\s*\)\?\([0-9A-Za-z_${}-]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,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 "^\(python\s\+\)\([0-9A-Za-z_${}-]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbPyFlag,bbFunction,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
|
|
|
|
let b:current_syntax = "bb"
|