Изменить цвет синтаксиса в Scintilla.NET

Я час или два возился со Scintilla.NET, но столкнулся с проблемой, которую, похоже, легко решить. Я не могу найти способ изменить фактический цвет подсветки ключевых слов в Scintilla.NET. Насколько мне известно, их документации крайне не хватает, и я не нашел там никакой помощи. Я также видел много вопросов здесь, которые также не помогли мне. Кажется, независимо от того, что я делаю, подсветка ключевых слов всегда темно-синяя, что крайне сложно прочитать в теме моей формы.

Пока что я собрал этот стиль XML и использую код C# для его загрузки. Я собрал XML из нескольких примеров, а код C# взят из вопроса на их сайте.

<?xml version="1.0" encoding="utf-8"?>
<ScintillaNET>

    <Language Name="65c816 asm">
        <Indentation TabWidth="4"/>
        <Lexer LineCommentPrefix=";" >
            <Keywords List="0" Inherit="False">
            adc adc and asl bcc bcs beq bit bmi bne bpl
            bra brk brl bvc bvs clc cld cli clv cmp cop
            cpx cpy dec dex dey eor inc inx iny jmp jsr
            lda ldx ldy lsr mvn mvp nop ora pea pei per
            pha phb phd phk php phx phy pla plb pld plp
            plx ply rep rol ror rti rtl rts sbc sec sed
            sei sep sta stp stx sty stz tax tay tcd tcs
            tdc trb tsb tsc tsx txa txs txy tya tyx wai
            wdm xba xce
            </Keywords>
        </Lexer>
        <Style Name="CHARACTER" ForeColor="#00AAFF"/>
        <Style Name="NUMBER" ForeColor="#00AA00"/>
    </Language>
</ScintillaNET>

И код C# выглядит следующим образом:

scintilla1.Lexing.LexerLanguageMap["65c816 asm"] = "cpp";
scintilla1.ConfigurationManager.CustomLocation = System.IO.Path.GetFullPath("65c816.xml");
scintilla1.ConfigurationManager.Language = "65c816 asm";
scintilla1.ConfigurationManager.Configure();

1 ответ

Решение

Кажется, ошибка, которую я сделал, заключалась не в том, чтобы <Style>внутри <Styles> тег. После этого это, кажется, работает. Вид неловкой вещи, которую нужно выяснить сразу после публикации вопроса.

Работает в настоящее время:

<?xml version="1.0" encoding="utf-8"?>
<ScintillaNET>

    <Language Name="65c816 asm">
        <Indentation TabWidth="4"/>
        <Lexer LineCommentPrefix=";" >
            <Keywords List="0" Inherit="False">
            adc adc and asl bcc bcs beq bit bmi bne bpl
            bra brk brl bvc bvs clc cld cli clv cmp cop
            cpx cpy dec dex dey eor inc inx iny jmp jsr
            lda ldx ldy lsr mvn mvp nop ora pea pei per
            pha phb phd phk php phx phy pla plb pld plp
            plx ply rep rol ror rti rtl rts sbc sec sed
            sei sep sta stp stx sty stz tax tay tcd tcs
            tdc trb tsb tsc tsx txa txs txy tya tyx wai
            wdm xba xce
            </Keywords>
        </Lexer>
        <Styles>
            <Style Name="CHARACTER" ForeColor="#00AAFF"/>
            <Style Name="NUMBER" ForeColor="#00AA00"/>
        </Styles>
    </Language>
</ScintillaNET>
Другие вопросы по тегам