@elextr commented on this pull request.


In src/pluginextension.h:

> +	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);

Its not really a Lexilla issue, lexers do not have any idea about types so they cannot distinguish which instances of a name are types and which are variables and which are something else.

The problem is that ctags doesn't know either, it only parses declarations of names, not their uses. It does not parse most code to the point of tracing visibility and determining which declaration of a name is visible at the point of use, so its cannot provide information to colour different instances of a name differently.

Its not Geany capability that is "left behind", its the external tools it uses, Lexilla and ctags, neither of which is designed to do what is required to provide the capability. All LSPs are is another external tool that does provide the capability and more as well, and so Geany is being extended to make use of it, just like it makes use of ctags parsers or Lexilla lexers. Its nothing new, Geany has always depended on external tools, LSPs are just another one.


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <geany/geany/pull/3849/review/2168186184@github.com>