Azukiの機能

全般

Azukiは編集対象のテキストデータをUnicode、厳密にはUTF-16で扱います。サロゲートペアを使って表現する文字や、結合文字シーケンスにも対応していますのでUnicode文字をすべて扱うことができます。

表示機能

Azuki は表示機能として次の機能があります。

  • プロポーショナルフォントでの表示
  • 特殊記号のグラフィカルな表示(半角空白、全角空白、タブ、CR、LF、CR+LF)
  • タブ幅の指定
  • 折り返し表示機能(ピクセル単位で折り返し幅を指定します。折り返しの基準として禁則処理に対応しています。)
  • シンタックスハイライト(詳細後述)

シンタックスハイライト

たとえばプログラミング言語やHTMLなど、編集対象が一定の文法に従って記述するものである場合にキーワードなどをハイライト表示することができます。これをシンタックスハイライト機能と呼びます。

有名なプログラミング言語については、それらの文法をハイライトするクラスを組み込みで用意してあります。それをそのまま使えばすぐにハイライト可能です(Sgry.Azuki.Highlighters名前空間)。組み込みのハイライターが用意されていない言語のハイライトを行う場合、Sgry.Azuki.Highlighter.KeywordHighlighterを使えばキーワード・正規表現による任意のハイライトが可能です。大半のニーズはこのクラスを使用することで満たせるでしょう。もしキーワード・正規表現によるハイライト指定では不十分な場合、公開インタフェースであるIHighlighterを実装したオブジェクトをユーザが独自に定義してください。ハイライト処理を完全にユーザ側で実装できるため、どんな文法であってもハイライト可能です。

編集機能

  • コピー&ペースト機能(箱形選択したデータについても Visual Studio など一部のアプリケーションと相互にコピー&ペースト可能)
  • 自動インデント機能(標準的な自動インデント、C系言語用のスマートインデント)
  • ブロックインデント機能(複数行を一括してインデントまたは逆インデントする機能)
  • 複数種類の改行コードが混在したファイルの編集
  • 結合文字シーケンスの操作(結合文字シーケンスは Windows 標準の「メモ帳」と同じ操作が可能です。 結合文字シーケンスの後ろにキャレットを置いて BackSpace を押すとシーケンス中の最後の結合文字だけ削除可能であり、 その他の操作ではシーケンス全体を一文字として扱います。)