В настоящее время я пытаюсь улучшить поведение сворачивания файлов Matlab в Vim. У меня есть файл синтаксиса, и сворачивание ведет себя так, как я хочу, с одним исключением. Скажем, у меня есть следующий код:
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"
, чтобы сказать, что я хочу сбросить до конца матча, но я все еще получаю первый результат.
Я должен что-то упустить, потому что в документации указано, что метод смещения должен работать. Есть идеи?