前段時間做個小項目需要用到一個代碼編輯器控件,但網上搜了半天,居然沒發現一個完全滿意的編輯器。現有的一些編輯器有:
FastedTextBox
優點:1. 輕量。
2. 樣式美觀。
3. DEMO完整,文檔豐富。
缺點:1. 不支持中文/中文字體顯示難看
2. 代碼折疊只能支持整行。
ICSharpCode.AvalonEdit
優點:功能強大,幾乎完美,非常接近 VS
缺點:1. 使用 WPF 開發。
2. 在 WinForm 使用不大穩定,比如不能同時開兩個窗口,圖形錯位。
3. 內存多。
QWhale.Editor
優點:1. 功能齊全。
2. DEMO完整。
缺點:1. 收費且無源碼。
2. 界面難看。
Scintilla.Net
優點:1. 功能齊全。
缺點:使用 C++ 開發,難以控制。
以上編輯器沒有一個完整支持以下特性:
1. 支持語法高亮/折疊/括號匹配/行號顯示/顯示特殊字符/智能TAB縮進。(所有編輯器都支持此功能)
2. 支持自動換行。(ICSharpCode.TextBox不支持)
3. 支持豎行選擇。(只有 ICSharpCode.AvalonEdit 支持)
4. 完美支持中文輸入法。(只有 ICSharpCode.AvalonEdit 支持)
5. 高性能。編輯 100000 行代碼 和 1 行 100000 列代碼無壓力。滾動時不發生延時。
6. 輕量、啟動速度快,依賴 DLL 少。
7. 支持書簽、錯誤波浪線、單詞拼寫、智能提示。
8. API 和 文檔豐富。
9. 支持滾動條縮略圖。
10. 兼容更多系統。