2013-01-21 30 views
5

我一直在使用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(); 

回答

5

看来我犯了这个错误没有被包装一<Styles>标签内我<Style>的。这样做后,似乎工作。发布问题后直接找出一种令人尴尬的事情。

工作现在:

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

,帮助我!谢谢 – CloudyMarble