Использование плагина фолдлиста вместе с foldmethod-syntax
(или настройкой собственного foldmethod-expr
) будет работать хорошо.
На самом деле, даже без плагина я считаю, что правильная настройка фолда будеттворить чудеса.Некоторые рекомендации:
set foldmethod=syntax
или (set foldmethod=expr
и set foldexpr=...
для вашего случая) set foldclose=all
, чтобы скрыть все эти неприятные ifs set foldcolumn=2
или больше, чтобы увидеть уровень вложенности set foldtext=MyFoldText()
и сделать функцию для отображения соответствующей информации,
, например:
function! MyFoldText()
let line = getline(v:foldstart)
let line = substitute(line, 'if(\(.*\)).*', 'if: \1', 'g')
" ... etc
return line
endfunction