From 80cf7d4a91301aadae4ea1d9c41efb3bb75ff9ad Mon Sep 17 00:00:00 2001 From: Chris Laplante via bitbake-devel Date: Thu, 17 Oct 2019 12:36:49 -0400 Subject: [PATCH] bitbake: contrib/vim: More Python indenting; move indent file to correct directory Signed-off-by: Chris Laplante Signed-off-by: Richard Purdie --- .../contrib/vim/{ => indent}/bitbake.vim | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) rename bitbake/bitbake/contrib/vim/{ => indent}/bitbake.vim (91%) diff --git a/bitbake/bitbake/contrib/vim/bitbake.vim b/bitbake/bitbake/contrib/vim/indent/bitbake.vim similarity index 91% rename from bitbake/bitbake/contrib/vim/bitbake.vim rename to bitbake/bitbake/contrib/vim/indent/bitbake.vim index ff86c19fac..1c35cb3c32 100644 --- a/bitbake/bitbake/contrib/vim/bitbake.vim +++ b/bitbake/bitbake/contrib/vim/indent/bitbake.vim @@ -79,6 +79,8 @@ function GetPythonIndent(lnum) \ . " =~ '\\(Comment\\|Todo\\|String\\)$'", \ searchpair_stopline, searchpair_timeout) if parlnum > 0 + " We may have found the opening brace of a BitBake Python task, e.g. 'python do_task {' + " If so, ignore it here - it will be handled later. if s:is_python_func_def(parlnum) let parlnum = 0 let plindent = indent(plnum) @@ -105,6 +107,13 @@ function GetPythonIndent(lnum) \ searchpair_stopline, searchpair_timeout) if p > 0 if s:is_python_func_def(p) + " Handle the user actually trying to close a BitBake Python task + let line = getline(a:lnum) + if line =~ '^\s*}' + return -2 + endif + + " Otherwise ignore the brace let p = 0 else if p == plnum @@ -231,15 +240,27 @@ let b:did_indent = 1 function BitbakeIndent(lnum) + if !has('syntax_items') + return -1 + endif + let stack = synstack(a:lnum, col(".")) if len(stack) == 0 return -1 endif let name = synIDattr(stack[0], "name") + "echo name if index(["bbPyDefRegion", "bbPyFuncRegion"], name) != -1 let ret = GetPythonIndent(a:lnum) + " Should always be indented by at least one shiftwidth; but allow + " return of -1 (defer to autoindent) or -2 (force indent to 0) + if ret == 0 + return shiftwidth() + elseif ret == -2 + return 0 + endif return ret endif