Files
neovim/runtime/indent/dts.vim
zeertzjq ab20681c52 vim-patch:62d8f3d: runtime: Revert several "mark invalid contact addresses" commits (#37192)
This reverts commits:
- 6b652a785033fd4164e049492a7327c1ed7c3e5f
- 2f689d5abde0ccddca9e20d8c93a0299bd054e32
- a025a46d4169587145fb54f04af349cd05cb6122

Several email addresses that are known to be valid caused bounces
due to an issue with my email setup. The previous commits incorrectly
marked these addresses as invalid. So revert the whole thing again.

62d8f3dab5

N/A patch:
vim-patch:2f689d5: runtime: mark more invalid email addresses

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-02 06:53:44 +08:00

64 lines
1.7 KiB
VimL

" Vim indent file
" Language: Device Tree
" Maintainer: Roland Hieber, Pengutronix <rhi@pengutronix.de>
"
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal autoindent
setlocal nosmartindent
setlocal indentkeys=o,O,0},0<>>,!<Ctrl-F>
setlocal indentexpr=GetDTSIndent()
setlocal nolisp
let b:undo_indent = 'setl autoindent< smartindent< indentkeys< indentexpr< lisp<'
function GetDTSIndent()
let sw = shiftwidth()
let lnum = v:lnum
let line = getline(lnum)
let prevline = getline(prevnonblank(lnum-1))
let prevind = indent(prevnonblank(lnum-1))
if prevnonblank(lnum-1) < 1
return 0
endif
" Don't indent header and preprocessor directives
if line =~ '^\s*\(/dts-\|#\(include\|define\|undef\|warn\(ing\)\?\|error\|if\(n\?def\)\?\|else\|elif\|endif\)\)'
return 0
" Don't indent /node and &label blocks
elseif line =~ '^\s*[/&].\+{\s*$'
return 0
" Indent to matching bracket or remove one shiftwidth if line begins with } or >
elseif line =~ '^\s*[}>]'
" set cursor to closing bracket on current line
let col = matchend(line, '^\s*[>}]')
call cursor(lnum, col)
" determine bracket type, {} or <>
let pair = strpart('{}<>', stridx('}>', line[col-1]) * 2, 2)
" find matching bracket pair
let pairline = searchpair(pair[0], '', pair[1], 'bW')
if pairline > 0
return indent(pairline)
else
return prevind - sw
endif
" else, add one level of indent if line ends in { or < or = or ,
elseif prevline =~ '[{<=,]$'
return prevind + sw
else
return prevind
endif
endfunction