2012-06-20 41 views
2

我使用Scintilla組件與DScintilla包裝,並在任何詞法分析器中獲得關鍵字突出顯示的錯誤。帕斯卡,例如:如何正確設置閃爍關鍵字突出顯示?

with DScintilla do 
begin 
    SetLexer(SCLEX_PASCAL); 
    StyleSetFore(SCE_PAS_WORD, clGreen); 
    StyleSetFore(SCE_PAS_OPERATOR, clRed);; 
    StyleSetFore(SCE_PAS_IDENTIFIER, clBlue); 
    SetText('begin a+b; end'); 
end 

此代碼正確地突出標識符和操作符,但關鍵字與標識符具有相同的顏色。似乎SciLexer無法比較這個庫內的字符串。

如何正確設置閃爍關鍵字突出顯示?

+1

不,SCE_PAS_WORD表示關鍵字。對於haskell,定義了一個常量SCE_HA_KEYWORD,但也不起作用 – user1374768

回答

1

關鍵字必須手動添加。

SetKeyWords(0,'begin end'); 
+1

雖然這有所幫助,但它會失去詞法分析器本身的含義,請參閱到['pascal.properties'](http://scintilla.cvs.sourceforge.net/viewvc/scintilla/scite/src/pascal.properties?view=markup),關鍵字已經在那裏指定(但不要知道是否包含在詞法分析器中)。 – TLama

相關問題