Hi all,

I've searched high and low for answers to my question, but I'm probably using 
the wrong term/concept so please bear with me in what follows!

As a spare-time experiment, I've pulled together a proof-of-concept Go based 
host/driver for Vim8 channel-based plugins (the channel implementation works 
really well BTW):

https://github.com/myitcv/govim

I'm using that as the basis for a channel-based plugin to support Go 
development in Vim:

https://github.com/myitcv/govim/tree/master/cmd/govim

Part of my experiment involves looking into whether using Go's standard library 
parser and AST (https://godoc.org/go) in combination with matchaddpos is a more 
efficient/effective way of syntax highlighting *.go files (particularly large 
ones).

I have a proof of concept of this working, but what I'm now looking to do is 
make the approach more efficient.

I'm using the TextChanged and TextChangedI events to trigger a re-parse; no 
problems there. 

But I'm struggling to find the right combination of events/whatever to fire 
when the visible part (viewport?) of a buffer changes. For example, as a result 
of a page down, normal mode G jumping to the end of the buffer, gg to go to the 
top, etc. I want to use such an event to call matchaddpos to highlight the 
now-visible part of the buffer (which keeps the number of calls to matchaddpos 
down).

My searching thus far hasn't turned up much. Am I simply using the wrong search 
terms?

Any help/pointers much appreciated; please ask if you anything above needs to 
be clarified.

Thanks,


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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to