Mercurial > vim
view runtime/indent/dts.vim @ 34207:5aee5855ccfe v9.1.0052
patch 9.1.0052: Patch 9.1.0041 causes regressions for users
Commit: https://github.com/vim/vim/commit/fa8c9715587a24562dd755c44dc13aef43d7d875
Author: Christian Brabandt <cb@256bit.org>
Date: Thu Jan 25 20:50:49 2024 +0100
patch 9.1.0052: Patch 9.1.0041 causes regressions for users
Problem: Patch 9.1.0041 causes regressions for users
(Gleb Fotengauer-Malinovskiy)
Solution: Revert 9.1.0041 and restore old behaviour
Revert "patch 9.1.0041: xxd -i may generate incorrect C statements"
This reverts commit 7062be13129985fe297b9a8e59c57b8f0db61b8f.
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 25 Jan 2024 21:00:05 +0100 |
parents | 695b50472e85 |
children |
line wrap: on
line source
" 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