[Komodo Edit] エディタの属性値一覧(scimoz Attributes)
ActiveState SciMoz
scimozはKomodo Editにバンドルされているエディタプラグイン(おそらくScintillaのプラグイン。MozはMozilla?)。 Komodo Editでは、マクロからscimozを利用することで、エディタに対して様々な命令を実行する事ができる。
scimozの取得
scimozはPython/JavaScriptどちらでマクロを書いても利用できる。以下はPythonでscimozオブジェクトを取得する例。
from xpcom import components
viewSvc = components.classes["@activestate.com/koViewService;1"]\
.getService(components.interfaces.koIViewService)
view = viewSvc.currentView.queryInterface(components.interfaces.koIScintillaView)
sm = view.scimoz
最後のsmがscimozオブジェクトとなる。sm.textとすればエディタ上の全文が得られる。
scimozの属性値
属性値の多くは上書く事が可能であり即時反映される。 ファイル固有のプロパティに関わるもの(ホワイトスペースの可視設定など)については、属性値を上書くと、その場でプロパティが再設定・保存される。 以下は、Version 8.5のマニュアルを元に、実際に動作を確認した結果を記載している。もしかしたら捉え違いをしているものもあるかもしれない。それと、targetStartとtargetEndについては、動作について理解できなかった点があり、マニュアルの文章をそのまま載せている。動作が判明したら修正する予定。文字列置換に関連するようだが。
- int currentPosテキスト上の絶対的カーソル位置。バイト数でカウントされるため、マルチバイト文字が含まれる場合には文字数との関係が1:1とならない。
- int anchor選択開始位置。選択状態でない場合はcurrentPosと同じ値。ちなみに、currentPosもanchorも0(カーソルがテキストの先頭)の状態にて、currentPosへ1を格納すると、テキスト先頭1文字が選択状態となる。
- string textテキスト全文。上書けばテキスト全体が差し替わる。
- string selText選択した文字列(読み取りのみ)
- long scrollWidth水平スクロール最大幅(ピクセル単位)。エディタ描画領域がこの幅よりも狭い場合に、水平スクロールバーが表示される。
- long xOffset水平スクロール位置(ピクセル単位)。Word Wrapが有効の場合は常に0となる。
- boolean viewEOLEOL(End Of Line)の表示設定(False:不可視 True:可視)。
- long viewWSホワイトスペースの表示設定(0:不可視 1:可視)。
- long eOLMode改行文字列の設定(0:CRLF 1:CR 2:LF)。
- long tabWidthtab幅
- long indentインデント幅
- boolean useTabstabの使用有無。直接的には、tabキーを押下した際に入力される文字タイプ(True:tab文字 False:ホワイトスペース)。
- boolean indentationGuidesインデントブロック範囲を表す垂直線の描画有無(0:描画なし 1:描画あり)。
- long firstVisibleLine画面先頭行に描画される行番号。1行目は0となるので注意。折り返しは1行として数えられる。
- long lineCountテキストの全行数(読み取りのみ)。
- long textLengthテキストの全サイズ(読み取りのみ)。バイト換算のため、マルチバイト文字列が含まれる場合は文字数と一致しない。
- long targetStartThe start of the target region; see replaceTarget.
- long targetEndThe end of the target region; see replaceTarget.
- long linesOnScreen画面の最大描画ライン数。つまり見たままのライン数。よって自動折り返しにより2行となる場合は2行としてカウントされる。
sicmozのメソッド
scimozには上記属性の他に、各種多様なメソッドが実装されている。 それらについては別のエントリとするつもり。