bitbake/contrib: Sync with bitbake upstream
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
parent
043adbfa09
commit
e8c48e668c
|
@ -1,4 +1,24 @@
|
||||||
au BufNewFile,BufRead *.bb setfiletype bitbake
|
" Vim filetype detection file
|
||||||
au BufNewFile,BufRead *.bbclass setfiletype bitbake
|
" Language: BitBake
|
||||||
au BufNewFile,BufRead *.inc setfiletype bitbake
|
" Author: Ricardo Salveti <rsalveti@rsalveti.net>
|
||||||
" au BufNewFile,BufRead *.conf setfiletype bitbake
|
" Copyright: Copyright (C) 2008 Ricardo Salveti <rsalveti@rsalveti.net>
|
||||||
|
" Licence: You may redistribute this under the same terms as Vim itself
|
||||||
|
"
|
||||||
|
" This sets up the syntax highlighting for BitBake files, like .bb, .bbclass and .inc
|
||||||
|
|
||||||
|
if &compatible || version < 600
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" .bb and .bbclass
|
||||||
|
au BufNewFile,BufRead *.b{b,bclass} set filetype=bitbake
|
||||||
|
|
||||||
|
" .inc
|
||||||
|
au BufNewFile,BufRead *.inc set filetype=bitbake
|
||||||
|
|
||||||
|
" .conf
|
||||||
|
au BufNewFile,BufRead *.conf
|
||||||
|
\ if (match(expand("%:p:h"), "conf") > 0) |
|
||||||
|
\ set filetype=bitbake |
|
||||||
|
\ endif
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
" Vim plugin file
|
||||||
|
" Purpose: Create a template for new bb files
|
||||||
|
" Author: Ricardo Salveti <rsalveti@gmail.com>
|
||||||
|
" Copyright: Copyright (C) 2008 Ricardo Salveti <rsalveti@gmail.com>
|
||||||
|
"
|
||||||
|
" This file is licensed under the MIT license, see COPYING.MIT in
|
||||||
|
" this source distribution for the terms.
|
||||||
|
"
|
||||||
|
" Based on the gentoo-syntax package
|
||||||
|
"
|
||||||
|
" Will try to use git to find the user name and email
|
||||||
|
|
||||||
|
if &compatible || v:version < 600
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
fun! <SID>GetUserName()
|
||||||
|
let l:user_name = system("git-config --get user.name")
|
||||||
|
if v:shell_error
|
||||||
|
return "Unknow User"
|
||||||
|
else
|
||||||
|
return substitute(l:user_name, "\n", "", "")
|
||||||
|
endfun
|
||||||
|
|
||||||
|
fun! <SID>GetUserEmail()
|
||||||
|
let l:user_email = system("git-config --get user.email")
|
||||||
|
if v:shell_error
|
||||||
|
return "unknow@user.org"
|
||||||
|
else
|
||||||
|
return substitute(l:user_email, "\n", "", "")
|
||||||
|
endfun
|
||||||
|
|
||||||
|
fun! BBHeader()
|
||||||
|
let l:current_year = strftime("%Y")
|
||||||
|
let l:user_name = <SID>GetUserName()
|
||||||
|
let l:user_email = <SID>GetUserEmail()
|
||||||
|
0 put ='# Copyright (C) ' . l:current_year .
|
||||||
|
\ ' ' . l:user_name . ' <' . l:user_email . '>'
|
||||||
|
put ='# Released under the MIT license (see COPYING.MIT for the terms)'
|
||||||
|
$
|
||||||
|
endfun
|
||||||
|
|
||||||
|
fun! NewBBTemplate()
|
||||||
|
let l:paste = &paste
|
||||||
|
set nopaste
|
||||||
|
|
||||||
|
" Get the header
|
||||||
|
call BBHeader()
|
||||||
|
|
||||||
|
" New the bb template
|
||||||
|
put ='DESCRIPTION = \"\"'
|
||||||
|
put ='HOMEPAGE = \"\"'
|
||||||
|
put ='LICENSE = \"\"'
|
||||||
|
put ='SECTION = \"\"'
|
||||||
|
put ='DEPENDS = \"\"'
|
||||||
|
put ='PR = \"r0\"'
|
||||||
|
put =''
|
||||||
|
put ='SRC_URI = \"\"'
|
||||||
|
|
||||||
|
" Go to the first place to edit
|
||||||
|
0
|
||||||
|
/^DESCRIPTION =/
|
||||||
|
exec "normal 2f\""
|
||||||
|
|
||||||
|
if paste == 1
|
||||||
|
set paste
|
||||||
|
endif
|
||||||
|
endfun
|
||||||
|
|
||||||
|
if !exists("g:bb_create_on_empty")
|
||||||
|
let g:bb_create_on_empty = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" disable in case of vimdiff
|
||||||
|
if v:progname =~ "vimdiff"
|
||||||
|
let g:bb_create_on_empty = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
augroup NewBB
|
||||||
|
au BufNewFile *.bb
|
||||||
|
\ if g:bb_create_on_empty |
|
||||||
|
\ call NewBBTemplate() |
|
||||||
|
\ endif
|
||||||
|
augroup END
|
||||||
|
|
|
@ -1,127 +1,122 @@
|
||||||
" Vim syntax file
|
" 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>
|
||||||
"
|
"
|
||||||
" Copyright (C) 2004 Chris Larson <kergoth@handhelds.org>
|
|
||||||
" This file is licensed under the MIT license, see COPYING.MIT in
|
" This file is licensed under the MIT license, see COPYING.MIT in
|
||||||
" this source distribution for the terms.
|
" this source distribution for the terms.
|
||||||
"
|
"
|
||||||
" Language: BitBake
|
" Syntax highlighting for bb, bbclasses and inc files.
|
||||||
" Maintainer: Chris Larson <kergoth@handhelds.org>
|
"
|
||||||
" Filenames: *.bb, *.bbclass
|
" It's an entirely new type, just has specific syntax in shell and python code
|
||||||
|
|
||||||
if version < 600
|
if &compatible || v:version < 600
|
||||||
syntax clear
|
finish
|
||||||
elseif exists("b:current_syntax")
|
endif
|
||||||
|
if exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" BitBake syntax
|
||||||
|
|
||||||
|
" Matching case
|
||||||
syn case match
|
syn case match
|
||||||
|
|
||||||
" Catch incorrect syntax (only matches if nothing else does)
|
" Indicates the error when nothing is matched
|
||||||
"
|
|
||||||
syn match bbUnmatched "."
|
syn match bbUnmatched "."
|
||||||
|
|
||||||
|
" Comments
|
||||||
|
syn cluster bbCommentGroup contains=bbTodo,@Spell
|
||||||
|
syn keyword bbTodo COMBAK FIXME TODO XXX contained
|
||||||
|
syn match bbComment "#.*$" contains=@bbCommentGroup
|
||||||
|
|
||||||
syn include @python syntax/python.vim
|
" String helpers
|
||||||
if exists("b:current_syntax")
|
syn match bbQuote +['"]+ contained
|
||||||
unlet b:current_syntax
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
" Other
|
|
||||||
|
|
||||||
syn match bbComment "^#.*$" display contains=bbTodo
|
|
||||||
syn keyword bbTodo TODO FIXME XXX contained
|
|
||||||
syn match bbDelimiter "[(){}=]" contained
|
syn match bbDelimiter "[(){}=]" contained
|
||||||
syn match bbQuote /['"]/ contained
|
|
||||||
syn match bbArrayBrackets "[\[\]]" contained
|
syn match bbArrayBrackets "[\[\]]" contained
|
||||||
|
|
||||||
|
|
||||||
" BitBake strings
|
" BitBake strings
|
||||||
|
|
||||||
syn match bbContinue "\\$"
|
syn match bbContinue "\\$"
|
||||||
syn region bbString matchgroup=bbQuote start=/"/ skip=/\\$/ excludenl end=/"/ contained keepend contains=bbTodo,bbContinue,bbVarInlinePy,bbVarDeref
|
syn region bbString matchgroup=bbQuote start=+"+ skip=+\\$+ excludenl end=+"+ contained keepend contains=bbTodo,bbContinue,bbVarDeref,@Spell
|
||||||
syn region bbString matchgroup=bbQuote start=/'/ skip=/\\$/ excludenl end=/'/ contained keepend contains=bbTodo,bbContinue,bbVarInlinePy,bbVarDeref
|
syn region bbString matchgroup=bbQuote start=+'+ skip=+\\$+ excludenl end=+'+ contained keepend contains=bbTodo,bbContinue,bbVarDeref,@Spell
|
||||||
|
|
||||||
" BitBake variable metadata
|
|
||||||
|
|
||||||
syn match bbVarBraces "[\${}]"
|
|
||||||
syn region bbVarDeref matchgroup=bbVarBraces start="${" end="}" contained
|
|
||||||
" syn region bbVarDeref start="${" end="}" contained
|
|
||||||
" syn region bbVarInlinePy start="${@" end="}" contained contains=@python
|
|
||||||
syn region bbVarInlinePy matchgroup=bbVarBraces start="${@" end="}" contained contains=@python
|
|
||||||
|
|
||||||
|
" Vars definition
|
||||||
syn keyword bbExportFlag export contained nextgroup=bbIdentifier skipwhite
|
syn keyword bbExportFlag export contained nextgroup=bbIdentifier skipwhite
|
||||||
" syn match bbVarDeref "${[a-zA-Z0-9\-_\.]\+}" contained
|
syn match bbIdentifier "[a-zA-Z0-9\-_\.\/\+]\+" display contained
|
||||||
syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.]\+\(_[${}a-zA/-Z0-9\-_\.]\+\)\?\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbVarDeref nextgroup=bbVarEq
|
syn match bbVarDeref "${[a-zA-Z0-9\-_\.\/\+]\+}" contained
|
||||||
|
|
||||||
syn match bbIdentifier "[a-zA-Z0-9\-_\./]\+" display contained
|
|
||||||
"syn keyword bbVarEq = display contained nextgroup=bbVarValue
|
|
||||||
syn match bbVarEq "\(:=\|+=\|=+\|\.=\|=\.\|?=\|=\)" contained nextgroup=bbVarValue
|
syn match bbVarEq "\(:=\|+=\|=+\|\.=\|=\.\|?=\|=\)" contained nextgroup=bbVarValue
|
||||||
syn match bbVarValue ".*$" contained contains=bbString
|
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 match bbVarPyValue "${@[a-zA-Z0-9\-_\.\(\)]\+}" contained
|
||||||
|
|
||||||
" BitBake variable metadata flags
|
" Vars metadata flags
|
||||||
syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag
|
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 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
|
|
||||||
|
|
||||||
|
" 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
|
||||||
|
|
||||||
" Functions!
|
" Add taks and similar
|
||||||
syn match bbFunction "\h\w*" display contained
|
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
|
||||||
|
|
||||||
" BitBake python metadata
|
" Generic Functions
|
||||||
|
syn match bbFunction "\h[0-9A-Za-z_-]*" display contained contains=bbOEFunctions
|
||||||
syn keyword bbPythonFlag python contained nextgroup=bbFunction
|
|
||||||
syn match bbPythonFuncDef "^\(python\s\+\)\(\w\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbPythonFlag,bbFunction,bbDelimiter nextgroup=bbPythonFuncRegion skipwhite
|
|
||||||
syn region bbPythonFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" keepend contained contains=@python
|
|
||||||
"hi def link bbPythonFuncRegion Comment
|
|
||||||
|
|
||||||
|
|
||||||
" BitBake shell metadata
|
" BitBake shell metadata
|
||||||
syn include @shell syntax/sh.vim
|
syn include @shell syntax/sh.vim
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
unlet b:current_syntax
|
unlet b:current_syntax
|
||||||
endif
|
endif
|
||||||
|
syn keyword bbShFakeRootFlag fakeroot contained
|
||||||
|
syn match bbShFuncDef "^\(fakeroot\s*\)\?\([0-9A-Za-z_}${-]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbDelimiter nextgroup=bbShFuncRegion skipwhite
|
||||||
|
syn region bbShFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" keepend contained contains=@shell
|
||||||
|
|
||||||
syn keyword bbFakerootFlag fakeroot contained nextgroup=bbFunction
|
" BitBake python metadata
|
||||||
syn match bbShellFuncDef "^\(fakeroot\s*\)\?\(\w\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbFakerootFlag,bbFunction,bbDelimiter nextgroup=bbShellFuncRegion skipwhite
|
syn include @python syntax/python.vim
|
||||||
syn region bbShellFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" keepend contained contains=@shell
|
if exists("b:current_syntax")
|
||||||
"hi def link bbShellFuncRegion Comment
|
unlet b:current_syntax
|
||||||
|
endif
|
||||||
|
syn keyword bbPyFlag python contained
|
||||||
|
syn match bbPyFuncDef "^\(python\s\+\)\([0-9A-Za-z_-]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbPyFlag,bbFunction,bbDelimiter nextgroup=bbPyFuncRegion skipwhite
|
||||||
|
syn region bbPyFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" keepend contained contains=@python
|
||||||
|
|
||||||
" BitBake 'def'd python functions
|
" BitBake 'def'd python functions
|
||||||
syn keyword bbDef def contained
|
syn keyword bbPyDef def contained
|
||||||
syn region bbDefRegion start='^def\s\+\w\+\s*([^)]*)\s*:\s*$' end='^\(\s\|$\)\@!' contains=@python
|
syn region bbPyDefRegion start='^\(def\s\+\)\([0-9A-Za-z_-]\+\)\(\s*(.*)\s*\):\s*$' end='^\(\s\|$\)\@!' contains=@python
|
||||||
|
|
||||||
|
" Highlighting Definitions
|
||||||
" BitBake statements
|
|
||||||
syn keyword bbStatement include inherit require addtask addhandler EXPORT_FUNCTIONS display contained
|
|
||||||
syn match bbStatementLine "^\(include\|inherit\|require\|addtask\|addhandler\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest
|
|
||||||
syn match bbStatementRest ".*$" contained contains=bbString,bbVarDeref
|
|
||||||
|
|
||||||
" Highlight
|
|
||||||
"
|
|
||||||
hi def link bbArrayBrackets Statement
|
|
||||||
hi def link bbUnmatched Error
|
hi def link bbUnmatched Error
|
||||||
hi def link bbContinue Special
|
hi def link bbInclude Include
|
||||||
hi def link bbDef Statement
|
|
||||||
hi def link bbPythonFlag Type
|
|
||||||
hi def link bbExportFlag Type
|
|
||||||
hi def link bbFakerootFlag Type
|
|
||||||
hi def link bbStatement Statement
|
|
||||||
hi def link bbString String
|
|
||||||
hi def link bbTodo Todo
|
hi def link bbTodo Todo
|
||||||
hi def link bbComment Comment
|
hi def link bbComment Comment
|
||||||
hi def link bbOperator Operator
|
|
||||||
hi def link bbError Error
|
|
||||||
hi def link bbFunction Function
|
|
||||||
hi def link bbDelimiter Delimiter
|
|
||||||
hi def link bbIdentifier Identifier
|
|
||||||
hi def link bbVarEq Operator
|
|
||||||
hi def link bbQuote String
|
hi def link bbQuote String
|
||||||
hi def link bbVarValue String
|
hi def link bbString String
|
||||||
" hi def link bbVarInlinePy PreProc
|
hi def link bbDelimiter Keyword
|
||||||
|
hi def link bbArrayBrackets Statement
|
||||||
|
hi def link bbContinue Special
|
||||||
|
hi def link bbExportFlag Type
|
||||||
|
hi def link bbIdentifier Identifier
|
||||||
hi def link bbVarDeref PreProc
|
hi def link bbVarDeref PreProc
|
||||||
hi def link bbVarBraces 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"
|
let b:current_syntax = "bb"
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue