複製鏈接
請複製以下鏈接發送給好友

Scintilla

鎖定
Scintilla是一個免費的源代碼編輯控件,它完全開放源代碼,並且提供一個license允許用户自由地將它用在開源軟件或是商業軟件中。
中文名
源代碼編輯控件
外文名
Scintilla
屬    性
開放源代碼
權    限
license
功能介紹
它是一個強大和穩定的源代碼編輯控件,我們能在普通的的文本編輯控件中能看到的功能,Scintilla都完全能夠實現,而且,它還能夠提供很多編輯和調試源代碼時有用的特殊功能。包括語法高亮顯示,錯誤指示,代碼自動完成以及代碼提示等。而且在左邊的空白處(margin),可以顯示調試代碼中非常有用的顯示斷點以及顯示當前運行行等功能。而且,自定義風格的功能比其他大部分編輯器控件都開放,它允許用户自定義不同類型下的字體,是否粗體,是否斜體,前景色和背景色,支持大量的字體。舉個例子,在設置C/C++編輯模式後,你可以定義註釋語句類型的顏色,字體,大小等等,同樣,可以自定義關鍵字類型的顏色,字體,大小……諸如此類,這樣給用户極大的配置的自由。
據Scintilla的網站上發佈的消息,在以後的開發中,Scitilla將會加強在.Net和java虛擬機中的表現,Scitilla將會更加靈活,健壯,就這一點,可以看出Scitilla項目就是一個非常有活力的項目,其開發團隊對它非常有激情。
據作者介紹,開發Scintilla的動機是來自他對PythonWin的Richedit控件的失望,在Richedit中,樣式的改變被看作是文檔的一種改變,從而會被記錄到undo的堆棧中,並且設置的文檔對象的修改標記。這對源代碼編輯是非常不合適的,改變關鍵字類型的顏色或是運算符的顏色,這不應該看作是文檔的修改,也不應該能夠通過undo/redo來返回/前進,如果是Richedit來做源代碼編輯的控件,那將有太多的東西需要自己編寫代碼實現了,選擇Scintilla,將是一個明智的選擇,省時,省力,安全,可靠。
Scintilla目前提供了Win32版本和Linux版本。在Linux中使用的是GTK+,已經在Windows95,nt4.0, Windows2000, windows XP以及RedHat Linux8和9中的GTK+1.2和2.0中測試運行正常,這是一個跨平台的控件。
Scintilla的windows版本就是一個窗體控件。它的主要編程接口是通過窗體消息來傳送的。要實現什麼功能,向控件發送一個消息就可以了,當需要從控件得到什麼信息,接受WM_NOTIFY消息即可,可以從它帶的參數中獲得大量當前控件的信息,比如是否已經修改文字了,是否正在點擊左邊的邊框等等。但是,實際上在MFC編程中,通過消息的方式來控制控件還是非常麻煩的,因為這些消息的大部分都是自定義消息,不便於記憶。所以一般的做法就是將這些消息的調用封裝成一個窗體類,這樣調用方便多了。除了能實現一般編輯控件能實現的功能外,scintilla還能實現語法高亮,代碼摺疊,書籤,自動完成,語句提示等等功能。你完全可以不用學習標準編輯控件CEDIT或者是RichEdit,scintilla提供了協調一致的API口,這些都是它的優點之處。
事實上,scintilla開發組同時也用這個控件開發了一個編輯軟件SciTE,它百分百的實現了scintilla的全部功能,如果你對scintilla非常感興趣,但又不知它到底能做到那些功能的活,下載一個SciTE,使用一下就完全明白了。同時,SciTE也是開源軟件,學習它的代碼,就是學習scintilla的使用方法。