Vim - добавить одну строчку над сгибом к складыванию - PullRequest
2 голосов
/ 14 февраля 2020

Когда я кодирую в vim, я использую set foldmethod=syntax, который сворачивает мой код. Тогда это выглядит примерно так:

enter image description here

Как я могу добавить линию над { к сгибу? Чтобы это выглядело примерно так:

enter image description here

Итак, идея в том, что он (всегда) берет линию над сгибом в сгиб. Как я могу это сделать?

1 Ответ

1 голос
/ 15 февраля 2020

Для этого требуется пользовательский fold expression (h fold-expr) независимо от:

  1. foldtext <- вы хотите сложить еще одну строку </li>
  2. foldignore <- Вы все еще хотите сбросить <code>{ и } независимо от отступа

В вашем вимре c:

" Callback: Fold level <- next line indent
function! FoldMethod(lnum)
    let l:indent = max([indent(a:lnum+1), indent(a:lnum)])
    return l:indent / &shiftwidth
endfunction

set foldmethod=expr
set foldexpr=FoldMethod(v:lnum)
...