views:

191

answers:

1

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 (same as my background).

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 think that folds are selected differently and I cannot think of a way to override the default highlighting. 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.

Note: I have cross posted this on super user.

+2  A: 

See this question
It seems that we cannot control the fold highlighting since it is not part of the file but formed and laid temporarily at folds.

asdfg
+1: Thanks for the link. That is what I suspected. I am going to leave this question open for a few more days (hopefully someone has a trick). But otherwise I will accept your answer.
sixtyfootersdude