Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 3.147.7.14
Web Server : Apache/2.4.62 (Debian)
System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.18
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /proc/3/root/usr/share/vim/vim90/autoload/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /proc/3/root/usr/share/vim/vim90/autoload/bitbake.vim
" Support for bitbake indenting, see runtime/indent/bitbake.vim

function s:is_bb_python_func_def(lnum)
    let stack = synstack(a:lnum, 1)
    if len(stack) == 0
        return 0
    endif

    return synIDattr(stack[0], "name") == "bbPyFuncDef"
endfunction

function bitbake#Indent(lnum)
    if !has('syntax_items')
        return -1
    endif

    let stack = synstack(a:lnum, 1)
    if len(stack) == 0
        return -1
    endif

    let name = synIDattr(stack[0], "name")

    " TODO: support different styles of indentation for assignments. For now,
    " we only support like this:
    " VAR = " \
    "     value1 \
    "     value2 \
    " "
    "
    " i.e. each value indented by shiftwidth(), with the final quote " completely unindented.
    if name == "bbVarValue"
        " Quote handling is tricky. kernel.bbclass has this line for instance:
        "     EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" " HOSTCPP="${BUILD_CPP}""
        " Instead of trying to handle crazy cases like that, just assume that a
        " double-quote on a line by itself (following an assignment) means the
        " user is closing the assignment, and de-dent.
        if getline(a:lnum) =~ '^\s*"$'
            return 0
        endif

        let prevstack = synstack(a:lnum - 1, 1)
        if len(prevstack) == 0
            return -1
        endif

        let prevname = synIDattr(prevstack[0], "name")

        " Only indent if there was actually a continuation character on
        " the previous line, to avoid misleading indentation.
        let prevlinelastchar = synIDattr(synID(a:lnum - 1, col([a:lnum - 1, "$"]) - 1, 1), "name")
        let prev_continued = prevlinelastchar == "bbContinue"

        " Did the previous line introduce an assignment?
        if index(["bbVarDef", "bbVarFlagDef"], prevname) != -1
            if prev_continued
                return shiftwidth()
            endif
        endif

        if !prev_continued
            return 0
        endif

        " Autoindent can take it from here
        return -1
    endif

    if index(["bbPyDefRegion", "bbPyFuncRegion"], name) != -1
        let ret = python#GetIndent(a:lnum, function('s:is_bb_python_func_def'))
        " Should normally 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

    " TODO: GetShIndent doesn't detect tasks prepended with 'fakeroot'
    " Need to submit a patch upstream to Vim to provide an extension point.
    " Unlike the Python indenter, the Sh indenter is way too large to copy and
    " modify here.
    if name == "bbShFuncRegion"
        return GetShIndent()
    endif

    " TODO:
    "   + heuristics for de-denting out of a bbPyDefRegion? e.g. when the user
    "       types an obvious BB keyword like addhandler or addtask, or starts
    "       writing a shell task. Maybe too hard to implement...

    return -1
endfunction

Anon7 - 2022
AnonSec Team