我目前正在尝试改善Vim中Matlab文件的折叠行为。我生成了一个语法文件,折叠表现我想要的一个例外。说我有以下代码:
function [out1,out2] = doSomething(arg1,arg2)
out1 = performSubRoutine(arg1);
out2 = performSubRoutine(arg2);
end
function output = performSubRoutine(input)
output = input;
end
当我进行折叠时,我得到:
+--- 4 lines: function [out1,out2] = doSomething(arg1,arg2)
+--- 3 lines: function output = performSubRoutine(input)
理想情况下,我希望折叠吞没任何尾随空格。
语法文件中的我的区域定义是:
syn region matlabClassBlock
\transparent fold
\matchgroup=matlabClass
\extend start='\<function\>'
\end='\%([%-+(\*\:(\/\[]\s*\)\@<!\<end\>\%(\s*[-+}\:\*\/()\]]\)\@!.*\($\n^\s*\)*$'re=e
\contains=ALLBUT,@matlabClassCluster,@matlabProceduralCluster
我使用了偏移量说明符"re=e"
来表示我想折叠到匹配结束,但我仍然得到第一个结果。
我必须遗漏一些东西,因为文档声明偏移方法应该有效。有什么想法吗?