Thursday, September 26, 2013

Re: Improve context syntax file

Nikolay Pavlov <zyx.vim@gmail.com> a écrit:
> On Sep 26, 2013 2:12 PM, "Marco" <lists@homerow.info> wrote:
> >
> > On 2013–09–26 Paul Isambert wrote:
> >
> > > > But I can't add it permanently. The underscore is only part of a
> > > > word in between the following blocks.
> > > >
> > > > \unprotect … \protect %% or
> > > > \starttexcode … \stoptexcode
> > >
> > > Since there is little chance that an underscore will immediately follow
> a
> > > control sequence anyway, I don't think defining it for the entire
> syntax file
> > > will cause any problem.
> >
> > I tried this. But iskeyword does not change the syntax highlighting.
> > It only seems to have an effect on the "*" and similar commands. So
> > changing iskeyword is probably not what I'm after.
>
> It also affects \k atom. If changing &iskeyword does not affect syntax
> highlighting then it means this atom is not used.

Anyway it's not a good idea since I had forgotten about math mode indeed.

> > > However, you can do something along the following lines:
> > >
> > > sy match ControlSequence '\\[a-zA-Z]\+'
> > > sy match SpecialControlSequence '\\[a-zA-Z_]\+' contained
> > > sy region SpecialCode matchgroup=ControlSequence start='\\unprotect'
> end='\\protect' contains=SpecialControlSequence
> >
> > I tried this, but it removes all syntax highlighting. Frankly, I
> > have no idea of how the syntax highlighting works. I have to read up
> > the basics to understand how this exactly works. The issue seems
> > more complicated than anticipated. But thanks for the snippet, it's
> > something to start with.
>
> You also need to make all other syntax groups be containedin=SpecialCode.
> Or add contains=... to SpecialCode definition for all groups you need to be
> highlighted.
>
> Note that there is no need in defining two separate syntax groups. You can
> make two rules for ControlSequence where one will be contained and other
> will not.

You also need, above all, to define highlight groups (that was
implicit in my code, I thought you knew about that), e.g.:

hi link ControlSequence Statement

But indeed you should learn a little bit more about highlighting (I've
always found modifying existing syntax files quite painful and easier
to start from scratch). Otherwise you may perhaps ask someone like
Aditya Mahajan, who is both an advanced ConTeXt user (he writes in
TUGboat) and, as far as I know, a Vim user.

Best,
Paul

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments: