在Scintilla.NET中更改语法高亮颜色

5
我已经花了一个小时左右尝试使用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个回答

5

看起来我犯的错误是没有将<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>

那帮了我大忙!谢谢。 - CloudyMarble

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接