Eric Arnold wrote:
  > 
  >>>> On 5/5/06, Suresh Govindachar wrote:
  >>>>>
  >>>>> I would like to color a file as follows:
  >>>>>
  >>>>> Everything is "normal" except for lines whose
  >>>>> foldlevel is different from the foldlevel of both
  >>>>> the line above and the line below.  For such lines,
  >>>>> the color should be Color_N where N is
  >>>>> (foldlevel/2)%7 (wherein Color_0 could be red,
  >>>>> Color_1 could be blue etc.).
  >>>>>
  > 
  > I don't understand.  This would mark only folds of a single line
  
  Yes
  
  [...]
   
  > I'm also wondering if you meant to change the color only every
  > other fold level (i.e. color is (foldlevel/2)%7 (7 is the number
  > of colors available?).
  
  No, color (not every other) but every fold of single line, but 
  use same color twice.
  
  > As to folding readonly files, it would be possible to create a
  > syntax based on the line numbers of the folded lines (i.e. with
  > \%l )
  
  [...]
  
  Thanks for pointing out \%l -- it enabled me to avoid markers.
  Here's what I came up with (written in multiple lines to make 
  it easy to read):
  
     %g/./let i = line('.') | 
       if(    (foldlevel(i) != foldlevel(i-1)) 
           && (foldlevel(i) != foldlevel(i+1)))| 
                   exec 'syn match level'.foldlevel(i)/2 . 
                        ' /\%'.i.'l.*/ contains=marker,todoo'|
       endif|nohls

  with example of highlight for levelN on dark background being:

      hi def level1 ctermfg=3 cterm=bold gui=bold guifg=lightblue term=reverse

  --Suresh

Reply via email to