Mercurial > vim
view runtime/indent/dts.vim @ 34217:0f125612fd33 v9.1.0057
patch 9.1.0057: MS-Windows: Key event test still fails
Commit: https://github.com/vim/vim/commit/6a02eb073e1c801a5a92837d4b2d44b6a80afddd
Author: Christian Brabandt <cb@256bit.org>
Date: Thu Jan 25 22:28:37 2024 +0100
patch 9.1.0057: MS-Windows: Key event test still fails
Problem: MS-Windows: Key event test still fails
Solution: Skip testing CTRL-C, since it causes an Interrupt
which causes a test failure (after 9.1.0053)
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 25 Jan 2024 22:45:02 +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