[QScintilla] Trying to set different color for different set of keywords in QsciLexerCPP
Jonas O.
ezjonas at gmail.com
Sun Nov 14 15:13:11 GMT 2010
It seems QScintilla uses scintilla 1.78, current version is 2.2, I
feel it's going hard to get to get help.
On Fri, Nov 12, 2010 at 22:42, Jonas O. <ezjonas at gmail.com> wrote:
> In LexCPP.cpp I added:
> In colourisecppdoc():
> WordList &keywords5 = *keywordlists[4];
> WordList &keywords6 = *keywordlists[5];
> WordList &keywords7 = *keywordlists[6];
> WordList &keywords8 = *keywordlists[7];
> WordList &keywords9 = *keywordlists[8];
> WordList &keywords10 = *keywordlists[9];
>
> Then in the switch:
>
> else
> if (keywords4.InList(s))
> {
> sc.ChangeState(SCE_C_GLOBALCLASS);
> }
>
> // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> // added from here
> // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>
> else
> if (keywords5.InList(s))
> {
> sc.ChangeState(SCE_C_BASETYPE);
> }
> else
> if (keywords6.InList(s))
> {
> sc.ChangeState(SCE_C_INSTRUCTION);
> }
> else
> if (keywords7.InList(s))
> {
> sc.ChangeState(SCE_C_MODIFIER);
> }
> else
> if (keywords8.InList(s))
> {
> sc.ChangeState(SCE_C_CLASSRELATED);
> }
> else
> if (keywords9.InList(s))
> {
> sc.ChangeState(SCE_C_MISC);
> }
> else
> if (keywords10.InList(s))
> {
> sc.ChangeState(SCE_C_OPERTEXT);
> }
> // add end
>
> sc.SetState(SCE_C_DEFAULT);
>
> I also added all SCE_C_* in SciLexer.h, from 20 to 25.
>
> Now it just crashes, segfault apparently.
>
> On Tue, Nov 9, 2010 at 12:45, Jonas O. <ezjonas at gmail.com> wrote:
>> Yes I already looked, but there are a lot of if/else in a long switch,
>> and that's hard to read (or at least to me), I'm not used to inlined
>> curly brackets... (like "if(true) {" or "} else if {")
>>
>> I'll try to tweak the code and recompile, but I feel like I'm gonna
>> break everything...
>>
>> On Mon, Nov 8, 2010 at 23:32, Phil Thompson <phil at riverbankcomputing.com> wrote:
>>> On Mon, 8 Nov 2010 23:24:16 +0100, "Jonas O." <ezjonas at gmail.com> wrote:
>>>> Any clue to what I should modify (I don't intend to keep to myself
>>>> anyway...) ?
>>>
>>> Have you actually looked? It's easy enough to follow how the lexer uses
>>> keywords - search for "keywords" in LexCPP.cpp.
>>>
>>> Phil
>>>
>>
>
More information about the QScintilla
mailing list