Vim: função de dobra personalizada feita, realce personalizado requerido

0

Eu defini uma função no vim para recuar corretamente as dobras. Ou seja, eles se parecem com isso:

Desdobrado

this is text 
also text
    indented text
    indented text
not indented text

dobrado com a função padrão

this is text 
also text
+-- 2 lines: indented text ----------------------------
not indented text

dobrado com minha nova função

this is text 
also text
    ++- 2 lines: indented text ----------------------------
not indented text

O único problema é que o destaque ainda é assim:

dobrado com minha nova função (destaque mostrado com tag)

this is text 
also text
<hi>    ++- 2 lines: indented text ----------------------------</hi>
not indented text

Gostaria que o destaque fosse iniciado no ++ e não no início da linha. Eu olhei no manual do vim mas não consegui encontrar nada parecido. Uma solução que eu encontrei foi tornar o fundo preto.

highlight Folded ctermbg=black ctermfg=white cterm=bold

Mas isso torna as dobras menos visíveis.

Eu tentei várias variações de:

syn keyword Folded lines
syn region Folded ...

Mas não acho que seja assim que as dobras são selecionadas. Alguém pode oferecer uma sugestão?

A propósito, esta é minha função para recuar as dobras:

set foldmethod=indent

function! MyFoldText()
        let lines = 1 + v:foldend - v:foldstart
        let ind = indent(v:foldstart)

        let spaces = ''
        let i = 0
        while i < ind
                let i = i+1
                let spaces = spaces . ' '
        endwhile

        let linestxt = 'lines'
        if lines == 1
                linestxt = 'line'
        endif

        return spaces . '+' . v:folddashes . ' '. lines . ' ' . linestxt . ': ' . getline(v:foldstaendfunction
endfunction


au BufWinEnter,BufRead,BufNewFile * set foldtext=MyFoldText()

A propósito, graças a njd por me ajudar a obter essa configuração de função.

    
por sixtyfootersdude 10.03.2010 / 17:26

1 resposta

1

Parece que isso é impossível. Veja:

link

    
por 18.03.2010 / 13:50