Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
dts.vim64 linesDownload Raw Back to indent
1" Vim indent file2" Language:		Device Tree3" Maintainer:		Roland Hieber, Pengutronix <rhi@pengutronix.de>4"5if exists("b:did_indent")6    finish7endif8let b:did_indent = 19 10setlocal autoindent11setlocal nosmartindent12setlocal indentkeys=o,O,0},0<>>,!<Ctrl-F>13setlocal indentexpr=GetDTSIndent()14setlocal nolisp15 16let b:undo_indent = 'setl autoindent< smartindent< indentkeys< indentexpr< lisp<'17 18function GetDTSIndent()19    let sw        = shiftwidth()20    let lnum      = v:lnum21    let line      = getline(lnum)22    let prevline  = getline(prevnonblank(lnum-1))23    let prevind   = indent(prevnonblank(lnum-1))24 25    if prevnonblank(lnum-1) < 126        return 027    endif28 29    " Don't indent header and preprocessor directives30    if line =~ '^\s*\(/dts-\|#\(include\|define\|undef\|warn\(ing\)\?\|error\|if\(n\?def\)\?\|else\|elif\|endif\)\)'31        return 032 33    " Don't indent /node and &label blocks34    elseif line =~ '^\s*[/&].\+{\s*$'35        return 036 37    " Indent to matching bracket or remove one shiftwidth if line begins with } or >38    elseif line =~ '^\s*[}>]'39        " set cursor to closing bracket on current line40        let col = matchend(line, '^\s*[>}]')41        call cursor(lnum, col)42        43        " determine bracket type, {} or <>44        let pair = strpart('{}<>', stridx('}>', line[col-1]) * 2, 2)45 46        " find matching bracket pair47        let pairline = searchpair(pair[0], '', pair[1], 'bW')48 49        if pairline > 0 50            return indent(pairline)51        else52            return prevind - sw53        endif54 55    " else, add one level of indent if line ends in { or < or = or ,56    elseif prevline =~ '[{<=,]$'57        return prevind + sw58 59    else60        return prevind61    endif62 63endfunction64 
codekingpro/portable-devtools · Team Ai