From e726e79727de2af472d52f1d60f22be8d8387343 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 7 Jul 2018 11:30:53 +1200 Subject: Committing final state of Vim Perl indent I'm not sure I actually want to use this anymore; will remove it for now in the next commit. --- vim/indent/perl.vim | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/vim/indent/perl.vim b/vim/indent/perl.vim index 71e2c440..01c1259b 100644 --- a/vim/indent/perl.vim +++ b/vim/indent/perl.vim @@ -79,27 +79,31 @@ function! GetPerlIndent() \ ? shiftwidth() \ : &shiftwidth + " Base indent with any fractional indent removed + let l:pb = l:pi - l:pi % l:sw + " Just follow comment indent if l:pl =~# '^\s*#' return l:pi - " Entering closing brace + " Move out with closing brace elseif l:cl =~# '^\s*[])}]' - return l:pi >= l:sw - \ ? l:pi - l:sw - l:pi % l:sw - \ : 0 + return l:pb >= l:sw ? l:pb - l:sw : 0 - " After opening brace + " Move in after opening brace elseif l:pl =~# '[{([]\s*$' - return l:pi + l:sw + return l:pb + l:sw + + " Preserve base indent after a semicolon or a hash element assignment + elseif l:pl =~# '[;,]\s*$' + \ || l:pl =~# '^\s=>.*,\s*$' + \ || l:pl =~# '^\s*sub\>.*{.*}\s+$' + return l:pb - " After a semicolon, comma, or closing brace - elseif l:pl =~# '[;,}]\s*$' - return l:pi - l:pi % l:sw + " Line-continuation: indent half a 'shiftwidth' + else + return l:pb + l:sw / 2 - " Continued line; add half 'shiftwidth' - elseif l:sw >= 2 - return l:pi - l:pi % l:sw + l:sw / 2 endif endfunction -- cgit v1.2.3