Scintilla

Scintilla（シンティラ）は文書編集機能を提供するオープンソースのライブラリであり、ソースコード編集向けの各種機能を備えている。Scintillaをベースとしたスタンドアロンのエディタとして SciTE（クロスプラットフォーム）や Notepad++（Windows）がある。

概要 
ScintillaはNeil Hodgsonが開発したソースコード編集に特化したテキストエディタに共通して必要とされる機能を提供するライブラリ（部品群）である。シンタックスハイライトで扱えるプログラミング言語は標準で80以上にのぼり、それ以外のものも字句解析器 (Lexer) と呼ばれるモジュールを用意すれば比較的容易に実現できる。開発は1999年より精力的に継続されている。

なお、SciTEはScintillaエンジンを利用した同作者の手による汎用テキストエディタアプリケーションであり、並行して開発が続けられている。

対応フレームワーク 
ScintillaはWindowsの場合Win32 API、Linux互換オペレーティングシステム (OS) の場合GTK、そしてmacOSの場合Cocoaを利用して実装されており、それらを利用するアプリケーションにて使用できる。また、Qtを選択することもできる。そのほか、後述するように有志の手による非公式ラッパーもいくつか開発・公開されている。Windows版は既定で描画にGDIが使われるが、Windows Vista (SP2 + Platform Update) 以降にてDirectWriteおよびDirect2Dを使用するオプションも用意されている。

機能 
Scintillaにはシンタックスハイライトだけでなくコードエディタの作成を容易にする様々な機能がある。表示されるテキストのフォント、色、スタイル、背景色などを構文要素ごとに変更可能で、等幅フォント以外も使える。コントロールとしては、エラーインジケータ、マージンにおける行番号表示、ブレークポイントなどを示す行マーカーなどがある。他にもや自動補完といった機能をエディタに追加できる。独自の正規表現エンジンも搭載されている。

Scintillaベースの主なエディタ 
 Anjuta
 Code::Blocks
 Geany
 Notepad++
 Notepad2
 
 SciTE
 TortoiseSVN - 差分表示ツールなどに使われている。
 TortoiseGit - TortoiseSVN同様、差分表示ツールなどに使われている。

ラッパー 
 CScintillaCtrl, CScintillaView & CScintillaDoc - MFC用ラッパー。
 QScintilla: QScintilla - a Port to Qt v4 and Qt v5 of Scintilla - Qt用ラッパー。
 ScintillaNET - Scintillaを.NET Frameworkでラップしたもの。内部の文字コードはUTF-8であり、日本語対応は少々弱い。

脚注

外部リンク 
プロジェクト公式サイト

ライブラリ (プログラミング)