Veja como fazer isso para C:
- Pegue o arquivo de sintaxe original (em Unix, normalmente encontrado em
/usr/share/vim
) e copie-o para (novamente, em Unix)~/.vim/syntax
. - Altere o padrão "final" na definição da região do cBlock:
syntax region cBlock start="{" end="}" transparent fold
torna-se
syntax region cBlock start="{" end="}\(\n\n\)\?" transparent fold
Aqui, o primeiro \n
corresponde ao caractere de nova linha imediatamente após a chave de fechamento, o segundo à linha vazia.
Isso não funcionará se }
for seguido por, e. um comentário: o bloco ainda será dobrado, mas a seguinte nova linha não será.
Eu não tenho um arquivo de sintaxe para o Go aqui (até onde eu sei), mas ele deve funcionar de maneira semelhante.
Nota: a maneira mais flexível seria criar um novo arquivo em ~/.vim/after/syntax
e apenas alterar a definição da região, mas não obtive êxito aqui. Apenas copiar a definição da região não funciona.