Loading ...
Sorry, an error occurred while loading the content.

44735Re: Fixing cweb.vim

Expand Messages
  • Benji Fisher
    Sep 2, 2006
      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
    • Show all 8 messages in this topic