改变Scintilla.NET的语法颜色

本文关键字:语法 颜色 NET Scintilla 改变 | 更新日期: 2023-09-27 17:55:07

我一直在摆弄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();

改变Scintilla.NET的语法颜色

我犯的错误似乎不是在<Styles>标签内包装我的<Style> 's。这样做之后,它似乎起作用了。发完问题后才发现这是一件很尴尬的事。

工作:

<?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>