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