summaryrefslogtreecommitdiffstats
path: root/runtime/indent
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-12-08 15:07:48 +0100
committerBram Moolenaar <Bram@vim.org>2019-12-08 15:07:48 +0100
commit32b364fcc09749f35adb441b81291e1e5946dbc2 (patch)
treee717aad205074784a033915d460dda2920071285 /runtime/indent
parente2a3f36bf22bfa00343c6a7aaef5337a9dfc0993 (diff)
Runtime file updates.
Diffstat (limited to 'runtime/indent')
-rw-r--r--runtime/indent/matlab.vim6
-rw-r--r--runtime/indent/testdir/matlab.in9
-rw-r--r--runtime/indent/testdir/matlab.ok9
-rw-r--r--runtime/indent/testdir/runtest.vim1
4 files changed, 22 insertions, 3 deletions
diff --git a/runtime/indent/matlab.vim b/runtime/indent/matlab.vim
index d2818a18ea..6390445c60 100644
--- a/runtime/indent/matlab.vim
+++ b/runtime/indent/matlab.vim
@@ -29,7 +29,7 @@ if exists("*GetMatlabIndent") | finish | endif
let s:keepcpo = &cpo
set cpo&vim
-let s:end = '\<end\>\%([^(]*)\)\@!' " Array indexing heuristic
+let s:end = '\<end\>\%([^({]*[)}]\)\@!' " Array indexing heuristic
let s:open_pat = 'for\|if\|parfor\|spmd\|switch\|try\|while\|classdef\|properties\|methods\|events\|enumeration'
let s:dedent_pat = '\C^\s*\zs\<\%(end\|else\|elseif\|catch\|\(case\|otherwise\|function\)\)\>'
let s:start_pat = '\C\<\%(function\|' . s:open_pat . '\)\>'
@@ -38,7 +38,7 @@ let s:zflag = has('patch-7.4.984') ? 'z' : ''
" Returns whether a comment or string envelops the specified column.
function! s:IsCommentOrString(lnum, col)
- return synIDattr(synID(a:lnum, a:col, 1), "name") =~# 'matlabComment\|matlabMultilineComment\|matlabString'
+ return synIDattr(synID(a:lnum, a:col, 1), "name") =~# 'matlabComment\|matlabMultilineComment\|matlabCellComment\|matlabString'
endfunction
" Returns whether the specified line continues on the next line.
@@ -105,7 +105,7 @@ function! GetMatlabIndent()
else
" Count how many blocks the previous line opens/closes
" Line continuations/brackets indent once per statement
- let result = indent(prevlnum) + shiftwidth() * (open - close
+ let result = (prevlnum > 0) * indent(prevlnum) + shiftwidth() * (open - close
\ + (b:MATLAB_bracketlevel ? -!curbracketlevel : !!curbracketlevel)
\ + (curbracketlevel <= 0) * (above_lc - b:MATLAB_waslc))
endif
diff --git a/runtime/indent/testdir/matlab.in b/runtime/indent/testdir/matlab.in
index 5bba1a56dd..b997ec8d57 100644
--- a/runtime/indent/testdir/matlab.in
+++ b/runtime/indent/testdir/matlab.in
@@ -37,6 +37,7 @@ end
% START_INDENT
if true
A(1:end - 1)
+C{1:end - 1}
disp foo
end
% END_INDENT
@@ -50,6 +51,14 @@ disp bar
% END_INDENT
% START_INDENT
+if true
+% end
+%% end
+disp foo
+end
+% END_INDENT
+
+% START_INDENT
% INDENT_EXE let b:MATLAB_function_indent = 0
function foo
disp foo
diff --git a/runtime/indent/testdir/matlab.ok b/runtime/indent/testdir/matlab.ok
index b1112263b2..df4e7b2e33 100644
--- a/runtime/indent/testdir/matlab.ok
+++ b/runtime/indent/testdir/matlab.ok
@@ -37,6 +37,7 @@ end
% START_INDENT
if true
A(1:end - 1)
+ C{1:end - 1}
disp foo
end
% END_INDENT
@@ -50,6 +51,14 @@ disp bar
% END_INDENT
% START_INDENT
+if true
+ % end
+ %% end
+ disp foo
+end
+% END_INDENT
+
+% START_INDENT
% INDENT_EXE let b:MATLAB_function_indent = 0
function foo
disp foo
diff --git a/runtime/indent/testdir/runtest.vim b/runtime/indent/testdir/runtest.vim
index 9502c42f3e..b234a1ad94 100644
--- a/runtime/indent/testdir/runtest.vim
+++ b/runtime/indent/testdir/runtest.vim
@@ -116,6 +116,7 @@ for fname in glob('testdir/*.in', 1, 1)
echoerr 'Test ' . fname . ' FAILED!'
else
exe 'write ' . root . '.out'
+ echo "Test " . fname . " OK\n"
endif
quit! " close the indented file