2011-04-15 147 views
3

我有一個面向堆棧的編程語言,我需要用代碼高亮編寫一個非常簡單的編輯器。這樣做最好是用RichTextBox實現代碼高亮

我看過很多代碼高亮的樣本和演示,並且幾乎所有的代碼都需要刷新整個RichTextBoxOnTextChanged。這適用於較小的代碼文件,即使稍微大一點的文件,如果滾動條被正確地重新定位,但文件越大,試圖編輯時的滯後就越大。

得到是一個更好的方法。很顯然,Visual Studio完美無瑕...

那麼,我應該使用什麼方法?

(僞代碼,甚至只是一個籠統的概念的佈局十分精緻的答案)

+2

顯然,他們已經寫自己的控制,即處理一切,不使用的RichTextBox。 – zerkms 2011-04-15 13:04:11

+0

噢,這可能是一個好方法......雖然它可能對他們來說更容易些,因爲他們有'TextBox'和'RichTextBox'的來源:P – Entity 2011-04-15 13:07:17

+0

hehe是,*可能*他們有;-) – zerkms 2011-04-15 13:19:20

回答

3

我強烈建議你使用開源ICSharpCode.TextEditor。這是一個非常豐富的文本編輯器,支持可定製的語法突出顯示甚至智能感知。除了其他的功能,如線路數,錯誤的高亮顯示,錯誤提示,碼塊塌陷等的使用它的應用程序

實例是:

1

不知道你是否真的想自己寫,我用AvalonEditSharpDevelop這個編輯器做了類似的工作,效果很不錯。儘管如此,WPF卻沒有說明你使用的是哪種UI技術。您甚至可以在許可證的商業軟件中使用它。

GJ