John Salerno wrote:
Well, I peaked at the (scary) lexer file and found these lines of interest:
WordList &keywords = *keywordlists[0];
WordList &keywords2 = *keywordlists[1];
static const char * const pythonWordListDesc[] = {
"Keywords",
"Highlighted identifiers",
0
};
They look like they are begging to be added to, but I know I'll just
end up breaking everything. What I *didn't* see, though, was how these
keywords lists are tied to style numbers, so even if I could add a
third or fourth group, I'm not adept enough with C++ to read how they
are being treated.
You are almost there... ;)
Note the "Highlighted identifiers" in the static array, and connect
this to the "Highlighted identifiers" comment in the .properties
file... the latter certainly suggests that "Highlighted identifiers"
are going to use style# 14.
If you now examine the lone place in the code where the keywords2 list
is *used*, you will see both that these get assigned the style
SCE_P_WORD2 (which SciLexer.h says is 14)... AND both appearances of
keywords2 (plus what you can deduce about how the number of keyword
lists gets communicated to a lexer container) should show you how to
add a keywords3 list.
But it does require a mod to the C++ code of the Python lexer, and
then you need to look into actually building a new version of
Scintilla incorporating this updated lexer, and... by this point,
wouldn't you be happy with just defining a single additional set of
keywords to be syntax colored and listing them in a
keywords2.$(file.patterns.py) entry? :)
On 8/21/06, Robert Roessler <[EMAIL PROTECTED]> wrote:
John Salerno wrote:
> Hi again. I did what you said last time about adding a new group
> called keyword2, and that's fine, but I guess my question this time
> was something along the lines of, can I add a keyword3 group and then
> how would I know which style number is associated with it?
>
> I asked about the lexer again, but I have no knowledge of C++, so I
> don't want to mess anything up.
OK. No, you would not be able to add a "keyword3" group - "keyword2"
works because the [Python] lexer's code is written to use it if present.
Look in the .properties file(s) - they are by convention commented
enough to show the correspondence between syntactic constructs and
style numbers.
Note that while the Scintilla *client* (SciTE in this case) loads the
styling information from the .properties file, it is only the lexer
itself that *sets* those style bytes in the buffer.
> On 8/21/06, Robert Roessler <[EMAIL PROTECTED]> wrote:
>> John Salerno wrote:
>> > Is it possible to open and edit a lexer file like a normal text
file,
>> > for example? I'm still looking for a fairly simple way to add extra
>> > keyword groups to for Python.
>>
>> I gave a fairly lengthy reply to this last week... and told you how to
>> do this.
Robert Roessler
[EMAIL PROTECTED]
http://www.rftp.com
_______________________________________________
Scite-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scite-interest