Você não pode alterar o realce da dobra, pois há apenas um grupo de realce para todas as dobras ( :help hl-Folded
). O que você pode fazer é indicar a "todos os comentários" - natureza de uma dobra através de um fold-foldtext
; Por exemplo, você pode preceder COMMENTED:
. Então ficaria assim:
+-- 3 lines: # some stuff here
COMMENTED: +-- 3 lines: # comment
command 2
command 3
A segunda parte de uma solução é determinar se todas as linhas dentro de uma dobra são realmente comentários. Isso pode ser feito consultando o destaque da sintaxe (via synID()
), que seria ser universal, mas também pesado e potencialmente lento. Se tudo o que você gosta são linhas totalmente comentadas com um prefixo de comentário, você pode obter isso de 'comments'
para o tipo de arquivo atual e corresponde manualmente a ele. (Meu plug-in ingo-library tem um function para isso.) Se tudo o que importa é um prefixo de comentário genérico simples como #
( como usado em scripts de shell, Perl, etc.), uma simples correspondência de padrões será feita assim:
function! CommentIndicator()
for l:lnum in range(v:foldstart, v:foldend)
if getline(l:lnum) !~# '^\s*#'
" This fold is not fully commented.
return ''
endif
endfor
return 'COMMENTED: '
endfunction
let &foldtext = 'CommentIndicator() . foldtext()'