[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 viewEOL
    EOL(End Of Line)の表示設定(False:不可視 True:可視)。
  • long viewWS
    ホワイトスペースの表示設定(0:不可視 1:可視)。
  • long eOLMode
    改行文字列の設定(0:CRLF 1:CR 2:LF)。
  • long tabWidth
    tab幅
  • long indent
    インデント幅
  • boolean useTabs
    tabの使用有無。直接的には、tabキーを押下した際に入力される文字タイプ(True:tab文字 False:ホワイトスペース)。
  • boolean indentationGuides
    インデントブロック範囲を表す垂直線の描画有無(0:描画なし 1:描画あり)。
  • long firstVisibleLine
    画面先頭行に描画される行番号。1行目は0となるので注意。折り返しは1行として数えられる。
  • long lineCount
    テキストの全行数(読み取りのみ)。
  • long textLength
    テキストの全サイズ(読み取りのみ)。バイト換算のため、マルチバイト文字列が含まれる場合は文字数と一致しない。
  • long targetStart
    The start of the target region; see replaceTarget.
  • long targetEnd
    The end of the target region; see replaceTarget.
  • long linesOnScreen
    画面の最大描画ライン数。つまり見たままのライン数。よって自動折り返しにより2行となる場合は2行としてカウントされる。

sicmozのメソッド

 scimozには上記属性の他に、各種多様なメソッドが実装されている。
 それらについては別のエントリとするつもり。

著者 : Tarek Ziade
アスキー・メディアワークス
発売日 : 2010-05-28
Related Posts

Comments are closed.