2013-01-21 21 views
5

Dosyć interesowałem się Scintilla.NET przez godzinę lub dwie, ale natknąłem się na problem, który wydaje się być łatwy do rozwiązania. Nie mogę znaleźć sposobu na zmianę rzeczywistego koloru podświetlenia słów kluczowych w Scintilla.NET. Ich dokumentacja, o ile widziałem, jest bardzo słaba i nie znalazłem tam żadnej pomocy. Widziałem także wiele pytań, które również mi nie pomogły. Wygląda na to, że bez względu na to, co robię, najważniejsza część słów kluczowych jest zawsze ciemnoniebieska, co jest niezwykle trudne do odczytania na temat mojej formy.Zmiana koloru składni w Scintilla.NET

Do tej pory zestawiłem ten styl XML i używam kodu C# do załadowania stylu. Przygotowałem XML z kilku przykładów, a kod C# pochodzi z pytania na jego stronie internetowej.

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

I kod C# jest w następujący sposób:

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

Odpowiedz

5

Wydaje się, że błąd zrobiłem nie owijając moje <Style> „s wewnątrz <Styles> tagu. Po zrobieniu tego wydaje się działać. Rodzaj kłopotliwej rzeczy, aby dowiedzieć się bezpośrednio po opublikowaniu pytania.

robocza teraz:

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

To pomogło mi! Dzięki – CloudyMarble