bitbake/contrib: Sync with bitbake upstream

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Richard Purdie 2011-01-01 23:52:50 +00:00
parent 043adbfa09
commit e8c48e668c
3 changed files with 199 additions and 99 deletions

View File

@ -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

View File

@ -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

View File

@ -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
finish if exists("b:current_syntax")
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 syn match bbDelimiter "[(){}=]" contained
endif syn match bbArrayBrackets "[\[\]]" contained
" Other
syn match bbComment "^#.*$" display contains=bbTodo
syn keyword bbTodo TODO FIXME XXX contained
syn match bbDelimiter "[(){}=]" contained
syn match bbQuote /['"]/ contained
syn match bbArrayBrackets "[\[\]]" contained
" BitBake strings " BitBake strings
syn match bbContinue "\\$"
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,bbVarDeref,@Spell
syn match bbContinue "\\$" " Vars definition
syn region bbString matchgroup=bbQuote start=/"/ skip=/\\$/ excludenl end=/"/ contained keepend contains=bbTodo,bbContinue,bbVarInlinePy,bbVarDeref syn keyword bbExportFlag export contained nextgroup=bbIdentifier skipwhite
syn region bbString matchgroup=bbQuote start=/'/ skip=/\\$/ excludenl end=/'/ contained keepend contains=bbTodo,bbContinue,bbVarInlinePy,bbVarDeref 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 match bbVarPyValue "${@[a-zA-Z0-9\-_\.\(\)]\+}" contained
" BitBake variable metadata " 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*\(=\)\@=" keepend excludenl contained contains=bbIdentifier nextgroup=bbVarEq
syn match bbVarBraces "[\${}]" " Includes and requires
syn region bbVarDeref matchgroup=bbVarBraces start="${" end="}" contained syn keyword bbInclude inherit include require contained
" syn region bbVarDeref start="${" end="}" contained syn match bbIncludeRest ".*$" contained contains=bbString,bbVarDeref
" syn region bbVarInlinePy start="${@" end="}" contained contains=@python syn match bbIncludeLine "^\(inherit\|include\|require\)\s\+" contains=bbInclude nextgroup=bbIncludeRest
syn region bbVarInlinePy matchgroup=bbVarBraces start="${@" end="}" contained contains=@python
syn keyword bbExportFlag export contained nextgroup=bbIdentifier skipwhite " Add taks and similar
" syn match bbVarDeref "${[a-zA-Z0-9\-_\.]\+}" contained syn keyword bbStatement addtask addhandler after before EXPORT_FUNCTIONS contained
syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.]\+\(_[${}a-zA/-Z0-9\-_\.]\+\)\?\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbVarDeref nextgroup=bbVarEq syn match bbStatementRest ".*$" skipwhite contained contains=bbStatement
syn match bbStatementLine "^\(addtask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest
syn match bbIdentifier "[a-zA-Z0-9\-_\./]\+" display contained " OE Important Functions
"syn keyword bbVarEq = display contained nextgroup=bbVarValue syn keyword bbOEFunctions do_fetch do_unpack do_patch do_configure do_compile do_stage do_install do_package contained
syn match bbVarEq "\(:=\|+=\|=+\|\.=\|=\.\|?=\|=\)" contained 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 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
" Generic Functions
syn match bbFunction "\h[0-9A-Za-z_-]*" display contained contains=bbOEFunctions
" 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 hi def link bbUnmatched Error
syn keyword bbStatement include inherit require addtask addhandler EXPORT_FUNCTIONS display contained hi def link bbInclude Include
syn match bbStatementLine "^\(include\|inherit\|require\|addtask\|addhandler\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest hi def link bbTodo Todo
syn match bbStatementRest ".*$" contained contains=bbString,bbVarDeref hi def link bbComment Comment
hi def link bbQuote String
" Highlight hi def link bbString String
" hi def link bbDelimiter Keyword
hi def link bbArrayBrackets Statement hi def link bbArrayBrackets Statement
hi def link bbUnmatched Error hi def link bbContinue Special
hi def link bbContinue Special hi def link bbExportFlag Type
hi def link bbDef Statement hi def link bbIdentifier Identifier
hi def link bbPythonFlag Type hi def link bbVarDeref PreProc
hi def link bbExportFlag Type hi def link bbVarDef Identifier
hi def link bbFakerootFlag Type hi def link bbVarValue String
hi def link bbStatement Statement hi def link bbShFakeRootFlag Type
hi def link bbString String hi def link bbFunction Function
hi def link bbTodo Todo hi def link bbPyFlag Type
hi def link bbComment Comment hi def link bbPyDef Statement
hi def link bbOperator Operator hi def link bbStatement Statement
hi def link bbError Error hi def link bbStatementRest Identifier
hi def link bbFunction Function hi def link bbOEFunctions Special
hi def link bbDelimiter Delimiter hi def link bbVarPyValue PreProc
hi def link bbIdentifier Identifier
hi def link bbVarEq Operator
hi def link bbQuote String
hi def link bbVarValue String
" hi def link bbVarInlinePy PreProc
hi def link bbVarDeref PreProc
hi def link bbVarBraces PreProc
let b:current_syntax = "bb" let b:current_syntax = "bb"