0

I have defined a function in vim to properly indent folds. Ie so they look like this:

Unfolded

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

folded with default function

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

folded with my new function

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

The only problem is the the highlighting is still like this:

folded with my new function (highlighting shown with tag)

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

I would like the highlighting to start at the ++ and not at the beginning of the line. I have looked in the vim manual but could not find anything like that. One so-so solution I found was to make the background black.

highlight Folded ctermbg=black ctermfg=white cterm=bold

But this make folds less visible.

I have tried several variations of:

syn keyword Folded lines
syn region Folded ...

But I don't think that this is the way that folds are selected. Can anyone offer a suggestion?

By the way this is my function to indent the folds:

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()

By the way thanks to njd for helping me get this function setup.

2

1 Answer 1

1

It appears this is impossible. See:

https://stackoverflow.com/questions/2425522/vim-custom-folding-function-done-custom-highlighting-required/2431335#2431335

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .