<p></p>
<blockquote>
<blockquote>
<p dir="auto">It would be ideal if @ were also recognized as a SWI-Prolog operator [. . .]</p>
</blockquote>
<p dir="auto">Done.</p>
</blockquote>
<p dir="auto">One more thing. SWI-Prolog <a href="https://wiki.visual-prolog.com/index.php?title=Language_Reference/Built-in_entities/Domains#string" rel="nofollow">uniquely</a> allows backticks to delimit <a href="https://www.swi-prolog.org/pldoc/man?section=string#:~:text=back-quoted%20text%20(as%20in%20%60text%60)%20is%20mapped%20to%20a%20list%20of%20character%20codes" rel="nofollow">string literals</a>:</p>
<pre class="notranslate"><code class="notranslate">?- string_chars(`abc`, Chars).
Chars = [a, b, c].
</code></pre>
<p dir="auto">I've compared and Vim treats every delimited character sequence as an atom, no matter what the delimiter is, so nothing to be jealous of. But since our lexer already gives a dedicated style to strings, the difference will be apparent:</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer" href="https://user-images.githubusercontent.com/59004801/165697784-f4c0e8da-5a4f-432b-b2ab-f3c11579a1c5.png"><img src="https://user-images.githubusercontent.com/59004801/165697784-f4c0e8da-5a4f-432b-b2ab-f3c11579a1c5.png" alt="geany-pl-sans-bkqouts-himbeere" style="max-width: 100%;"></a></p>
<p dir="auto">I suppose this means yet another lexer property, like this?</p>
<div class="highlight highlight-source-diff"><pre><span class="pl-c1">diff --git a/scintilla/lexilla/lexers/LexVisualProlog.cxx b/scintilla/lexilla/lexers/LexVisualProlog.cxx</span>
index 72a75882b..4eb5c2ec9 100644
<span class="pl-md">--- a/scintilla/lexilla/lexers/LexVisualProlog.cxx</span>
<span class="pl-mi1">+++ b/scintilla/lexilla/lexers/LexVisualProlog.cxx</span>
<span class="pl-mdr">@@ -49,8 +49,10 @@</span> using namespace Lexilla;
 // Options used for LexerVisualProlog
 struct OptionsVisualProlog {
     bool verbatimStrings;
<span class="pl-mi1"><span class="pl-mi1">+</span>    bool backQuotedStrings;</span>
     OptionsVisualProlog() {
         verbatimStrings = true;
<span class="pl-mi1"><span class="pl-mi1">+</span>        backQuotedStrings = false;</span>
     }
 };

<span class="pl-mdr">@@ -66,7 +68,8 @@</span> struct OptionSetVisualProlog : public OptionSet<OptionsVisualProlog> {
     OptionSetVisualProlog() {
         DefineProperty("lexer.visualprolog.verbatim.strings", &OptionsVisualProlog::verbatimStrings,
             "Set to 0 to disable highlighting verbatim strings using '@'.");
<span class="pl-md"><span class="pl-md">-</span></span>
<span class="pl-mi1"><span class="pl-mi1">+</span>        DefineProperty("lexer.visualprolog.backquoted.strings", &OptionsVisualProlog::backQuotedStrings,</span>
<span class="pl-mi1"><span class="pl-mi1">+</span>            "Set to 1 to enable using back quotes (``) to delimit strings.");</span>
         DefineWordListSets(visualPrologWordLists);
     }
 };
<span class="pl-mdr">@@ -447,6 +450,9 @@</span> void SCI_METHOD LexerVisualProlog::Lex(Sci_PositionU startPos, Sci_Position leng
             } else if (sc.Match('"')) {
                 closingQuote = '"';
                 sc.SetState(SCE_VISUALPROLOG_STRING);
<span class="pl-mi1"><span class="pl-mi1">+</span>            } else if (options.backQuotedStrings && sc.Match('`')) {</span>
<span class="pl-mi1"><span class="pl-mi1">+</span>                closingQuote = '`';</span>
<span class="pl-mi1"><span class="pl-mi1">+</span>                sc.SetState(SCE_VISUALPROLOG_STRING);</span>
             } else if (sc.Match('#')) {
                 sc.SetState(SCE_VISUALPROLOG_KEY_DIRECTIVE);
             } else if (isoperator(static_cast<char>(sc.ch)) || sc.Match('\\')) {
</pre></div>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/geany/geany/pull/3171#issuecomment-1111846687">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAIOWJ2UHOFQQISOZBFHXCTVHI5FLANCNFSM5TSVVLDQ">unsubscribe</a>.<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AAIOWJ6YOWIO27FTUESILQTVHI5FLA5CNFSM5TSVVLD2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOIJCW6HY.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><geany/geany/pull/3171/c1111846687</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/geany/geany/pull/3171#issuecomment-1111846687",
"url": "https://github.com/geany/geany/pull/3171#issuecomment-1111846687",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>