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

Reply via email to