On Sat, Sep 02, 2006 at 01:36:06AM +0300, Ilya wrote: > Benji Fisher wrote: > >On Fri, Sep 01, 2006 at 09:36:55AM +0300, Ilya wrote: > > > >>David Brown wrote: > >> > >[...] > > > >>>However, tex.vim frequently will enclose large sections of the document > >>>within a region and the cweb.vim which the webCRegion is not part of. > >>> > >>>I think I can fix this by adding an appropriate containedin=... field to > >>>the definition of webCRegion. > >>> > >>>What I'm having difficulty with is figuring out what to put there. Is > >>>there a way of finding out what region a given part of the buffer is in? > >>> > >>From :help synID > >> > >> Example (echoes the name of the syntax item under the cursor): > > >> :echo synIDattr(synID(line("."), col("."), 1), "name") > >> > > > > IIUC, synIDattr() always returns a syn-match or syn-keyword group. > >It does not tell you whether you are in a syn-region. > > > >HTH --Benji Fisher > > > It does return region names for me.
So it does, but only if there is no active match nor keyword at the cursor. What I should have said is that synIDattr() (or maybe I should say synID()) reports only the "innermost" syntax item at the cursor. For example, :help r :normal 6j0 :echo synIDattr(synID(line("."), col("."), 1), "name") reports helpLesdBlank but does not mention that this syn-match (defined with "contained") is inside a helpExample syn-region. (Verify this by moving the cursor to the first non-blank on the lins.) In brief, synID() *sometimes* reports the current syn-region, and I do not think this is good enough for David Brown's purposes. HTH --Benji Fisher