On 2016-08-31 10:00 PM, Thomas Martitz wrote:
Am 01.09.2016 um 05:42 schrieb Lex Trotman:
On 31 August 2016 at 11:27, Matthew Brush mbrush@codebrainz.ca wrote:
With the `LexClang.so` dynamic lexer I made, dynamic lexers seemed not to fit well (too isolated, too many assumptions that it's a simple dumb lexer and not a semantic-based on, etc) . All I really wanted was a way to disable Scintilla's lexer (ie. switch it to `SCLEX_CONTAINER`) without changing the filetype in Geany, and without doing it behind Geany's back from the plugin.
Agree with Matthew.
The point of not using the standard Scintilla lexer is to be able to add semantic information made available for the language support library in the FT-Plugin.
The major example of this is fixing the current situation where any name that is a type in any scope is coloured as a type in every other scope, even if the type is not visible there.
That means that the lexer is intimately tied into the FT-Plugin so it likely won't run without the FT-Plugin anyway, so actually including it in the plugin and accessing it via the container lexers interface looks better than having a separate DLL that won't run by itself anyway and then has to be sure its loaded at the right time.
Can this support color schemes and custom keywords (although the latter is probably not very important).
I don't know what SCLEX_CONTAINER is.
It's the built-in (application-provided) lexing support in Scintilla. It means "Tell me when, and I'll highlight the source for you". It only requires a GTK+ signal from Scintilla rather than having to implement a concrete C++ class of ILexer and conforming to some interface in a separate DLL, to perform roughly the same task.
http://www.scintilla.org/ScintillaDoc.html#SCN_STYLENEEDED
Cheers, Matthew Brush