@techee, I think we're finally done with keywords. 👍

Now, on to a messier issue I just detected.

In SWI-Prolog, relational operators are prefixed with @ when used as arguments; for example, in the overloaded form of the very common sort predicate.

Visual Prolog interprets the @ token as the start of a verbatim string, and Lexilla's lexer imposes that style on every Prolog document:

        if (sc.state == SCE_VISUALPROLOG_DEFAULT) {
            if (sc.Match('@') && isOpenStringVerbatim(sc.chNext, closingQuote)) {
                sc.SetState(SCE_VISUALPROLOG_STRING_VERBATIM);

geany_himbeere_swi-pl-sort-4

I guess Geany could always intercept or override the SCE_VISUALPROLOG_STRING_VERBATIM lexical class, or simply ignore it. In my view it's the lexer that needs adapting to comply better with the Prolog implementation that users will actually use. That said, I don't think this warrants an upstream patch, since the lexer is just working as advertised.


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/3171/c1110294854@github.com>