@kugel- commented on this pull request.


> +     gboolean (*goto_perform)(GeanyDocument *doc, gint pos, gboolean 
> definition, gpointer data);
+
+       /**
+        * Pointer to function called by Geany to check whether the plugin 
implements
+        * additional symbol (e.g. type) highlighting in Scintilla.
+        *
+        * @see @c autocomplete_provided() for more details.
+        * @note There is no function in the @c PluginExtension structure 
informing
+        * plugins to perform symbol highlighting. Plugins
+        * implementing symbol highlighting should perform it at the appropriate
+        * moments based on Scintilla and Geany events such as when the document
+        * becomes visible or when the document is modified.
+        *
+        * @since 2.1
+        **/
+       gboolean (*symbol_highlight_provided)(GeanyDocument *doc, gpointer 
data);

Hmm perhaps we should find a generic solution for the LSP support to do some 
stuff asynchronously (not necessarily now, but gradually and in the meantime we 
define the LSP API "not stable yet").

For example, for colorization, the  LSP plugin can signal readyness to Geany's 
mainloop, and when Geany handles that "ready event", it would finally call 
`symbol_highlight_perform()`. This could even be used to complete Geany's own 
highlighting as  well.

I find it highly problematic that it's up to the LSP plugins to get the places, 
from where highlighting is triggered, right. At best the author looks where 
Geany calls `document_highlight_tags()` and draw conclusions from there. 
However, he may miss calls and/or it may even change between Geany versions and 
the plugin will regress in one version or the other.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3849#discussion_r1662113659
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany/pull/3849/review/2153142...@github.com>

Reply via email to