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

Re: Fixing cweb.vim

Expand Messages
  • Ilya
    ... It does return region names for me.
    Message 1 of 8 , Sep 1, 2006
      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.
    • Benji Fisher
      ... 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())
      Message 2 of 8 , 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
      Your message has been successfully submitted and would be delivered to recipients shortly.