[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には上記属性の他に、各種多様なメソッドが実装されている。 それらについては別のエントリとするつもり。