Sunday, March 29, 2015

Re: which match-highlighting is in effect (if any) at a point in a file?

2015-03-30 7:55 GMT+03:00 LCD 47 <lcd047@gmail.com>:
> On 28 March 2015, Charles E Campbell <drchip@campbellfamily.biz> wrote:
>> Hello!
>>
>> In using :match, :2match, :3match, or matchadd(), one may specify
>> special highlighting. Any easy way for a vimscript to know which,
>> if any, highlighting match is active? Such highlighting overrides
>> the usual syntax highlighting, and I'd like to know what's going on
>> at the current cursor position.
>
> getmatches() returns the list of patterns set by matchadd() and
> friends, but as far as I know there is no easy way to tell whether a
> given pattern affects a given line or not.

I neither know the easy way, but I have the hard one:

https://sourceforge.net/p/formatvim/code/ci/ff11b92e967b66c7ad21ce0c4d0c939618c2b97f/tree/autoload/format.vim#l1288

This is a function which determines where highlighting of each match
starts and ends, and also when match highlights past the end of line.
The returned `splcolumns` value (first in the pair) is a dictionary of
dictionaries of lists where keys in top dictionary are line numbers
with matches and keys in second level dictionary are columns at which
matches start or end. List shows where matches start and end.

>
> /lcd
>
> --
> --
> 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/d/optout.

--
--
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/d/optout.

No comments: