ActiveState SciMoz
前回は、SciMozの属性値を実際に使用し一覧化した。
このエントリでは、Komodo Edit 8.5のマニュアルに記載されているSicMozのメソッドを実際に使用し、その動作についてコメントを付けて一覧化する。
属性値とこのメソッドを利用することで、ユーザがテキストに対して行える操作の全てをマクロから実施することができる。
scimozのメソッド
ここにscimozのメソッド一覧を記述する。しかしたら捉え違いをしているものもあるかもしれない。
一部のメソッドについては、動作を理解できなかったものがあり、コメント部はマニュアルのままとしている。判明次第修正する。次の5メソッド。
- replaceTarget()
- homeDisplay()
- homeDisplayExtend()
- lineEndDisplay()
- lineEndDisplayExtend()
また、注意点を最初に記載しておく。
- メソッドの多くは「ポジション」という値をを扱う。この値はファイル先頭(1行目の行頭)を0とした絶対位置を表す。
メソッドの解説で用いている「位置」は、特に注釈ない限りこの「ポジション」を意味する。 - 行番号を扱うメソッドが存在するが、そこで言う行番号とは0から開始する値で、エディタの行番号表示機能により表示される値とは異なる事に注意すること。
メソッド一覧
- void emptyUndoBuffer()
アンドゥの履歴をクリアする。 - void undo()
アンドゥを実行する。 - void cut()
選択領域内の文字列を切り取る。 - void copy()
選択領域内の文字列をコピーする。 - void paste()
カーソル位置にクリップボードの内容を挿入する。 - void clear()
選択領域内の文字列を消去する。 - long replaceTarget(in long length, in string text)
Replace the target text with the argument text. Text is counted so it can contain NULs. Returns the length of the replacement text.. - string getTextRange(in long min, in long max)
テキスト中から指定した範囲の文字列を返却する。パラメータは開始と終了位置。
、”end”の関係) - void insertText(in long pos, in string text)
指定した位置へ文字列を挿入する。カーソル位置とは無関係。 - void colourise(in long start, in long end)
指定した範囲内の文字列に対しハイライトを再設定する。 - wchar getWCharAt(in long pos)
指定した位置の文字を返却する。Unicode対応。 - void addText(in long length, in string text)
指定の文字列をカーソル位置に指定の長さで挿入する。与えた文字列長以上のサイズ、または長さ未指定の場合は全文が挿入される。長さに0を指定した場合は挿入なし。 - void selectAll()
テキストを全選択する。 - void gotoLine(in long line)
指定した行の行頭へカーソルを移動する。行番号は0から開始する(1行目は0)。 - void gotoPos(in long pos)
指定した位置へカーソルを移動する。位置の指定はテキスト先頭からのバイトサイズ。 - void deleteBack()
カーソルの左一文字を削除する。カーソルが行頭にある場合は、前の行の改行が削除される。 - void newLine()
カーソル位置で改行する。 - void redo()
リドゥを実行する。 - boolean canRedo()
リドゥが可能であるかを返却する。 - void beginUndoAction()
Undo操作(Undoスタックに積む単位)の開始を設定する。例外発生時でも必ずendUndoAction()が実行されるようコーディングする事。(後述の『Undoスタックについて』を参照) - void endUndoAction()
Undo操作(Undoスタックに積む単位)の終了を設定する。(後述の『Undoスタックについて』を参照) - long getColumn(in long pos)
指定した位置に対応する行の、行頭を0とした行中の位置を返却する。 - long getLineEndPosition(in long line)
指定した行の行末の位置を返却する。 - void setSel(in long start, in long end)
指定した開始位置から終了位置までを選択する。 - long lineFromPosition(in long pos)
指定した位置の行番号を返却する。行番号は0から開始する(1行目が0)。 - long positionFromLine(in long line)
指定した行の行頭位置を返却する。 - void lineScroll(in long columns, in long lines)
指定した列(水平方向)、指定した行(垂直方向)へウィンドウの内容をスクロールする。カーソルは移動しない。
垂直方向の場合には、正の値を指定するとファイル末尾へ、負の値ではファイル先頭へとスクロールする。
水平方向の場合には、正の値で右へとスクロールし、負の値で左へとスクロールする。但し、水平方向のスクロールはWord Wrapが有効である場合には無効である(自動折り返しのため)。 - void scrollCaret()
カーソルがウィンドウ外に外れている場合、ウィンドウ内に表示するようスクロールする。カーソルがウィンドウ内に表示されていても、ウィンドウの際(きわ)に位置する場合は、若干のスクロールが発生する事がある。 - long lineLength(in long line)
指定した行の長さを得る。改行文字も数えられる。EOF(End Of File)のみ、または存在しない行番号を指定した場合には0が返却される。 - void replaceSel(string)
選択領域を指定の文字列で置換する。選択していない場合は、カーソル位置に指定の文字列を挿入する。 - void lineDown()
カーソルを次の行へ移動する。 - void lineDownExtend()
カーソルを次の行へ移動させ、移動先までを選択する。 - void lineUp()
カーソルを前の行へ移動する。 - void lineUpExtend()
カーソルを前の行へ移動させ、移動先までを選択する。 - void charLeft()
カーソルを1文字分左へ移動する。 - void charLeftExtend()
カーソルを1文字分左へ移動させ、移動先までを選択する。 - void charRight()
カーソルを1文字分右へ移動する。 - void charRightExtend()
カーソルを1文字分右へ移動させ、移動先までを選択する。 - void wordLeft()
カーソルより左に存在する単語の先頭にカーソルを移動する。行頭に達している場合、前の行へ移動する。 - void wordLeftExtend()
カーソルの動きはwordLeft()と同じ。移動先までを選択する。 - void wordRight()
カーソルより左に存在する単語の先頭にカーソルを移動する。行頭に達している場合、前の行へ移動する。行末に達している場合、次の行へ移動する。 - void wordRightExtend()
カーソルの動きはwordRight()と同じ。移動先までを選択する。 - void home()
カーソルを行頭へ移動する。 - void homeExtend()
カーソル位置から行頭までを選択する。 - void lineEnd()
カーソルを行末へ移動する。 - void lineEndExtend()
カーソル位置から行末までを選択する。 - void documentStart()
カーソルをファイル先頭(1行目の行頭)へ移動する。 - void documentStartExtend()
カーソル位置からファイル先頭(1行目の行頭)までを選択する。 - void documentEnd()
カーソルをファイル終端(最終行の行末)へ移動する。 - void documentEndExtend()
カーソル位置からファイル終端(最終行の行末)までを選択する。 - void pageUp()
ウィンドウの内容を、約1画面分文章の先頭方向へ遷移させる。カーソル位置も遷移に合わせて移動する。 - void pageUpExtend()
カーソルの動きはpageUp()と同じ。合わせて、現在のカーソル位置から遷移に合わせて移動した先のカーソル位置までを選択する。 - void pageDown()
ウィンドウの内容を、約1画面分文章の終端方向へ遷移させる。カーソル位置も遷移に合わせて移動する。 - void pageDownExtend()
カーソルの動きはpageDown()と同じ。合わせて、現在のカーソル位置から遷移に合わせて移動した先のカーソル位置までを選択する。 - void editToggleOvertype()
「挿入」と「上書」モードの切り替え。トグル動作する。 - void vCHome()
カーソルを行のインデント位置まで移動する。インデントしていない場合は行頭へ移動する。 - void vCHomeExtend()
カーソルの動きはvCHome()と同じ。合わせて、現在のカーソル位置から移動した先のカーソル位置までを選択する。 - void zoomIn()
フォントを拡大する。 - void zoomOut()
フォントを縮小する。 - void delWordLeft()
カーソル左の単語を削除する。カーソルが単語上に存在する場合は、カーソル位置から単語先頭までを削除する。 - void delWordRight()
カーソル右の単語を削除する。カーソルが単語上に存在する場合は、カーソル位置から単語末尾までを削除する。 - void lineCopy()
カーソル行をコピーする(改行含む)。 - void lineCut()
カーソル行を切り取る(改行含む)。 - void lineDelete()
カーソル行を削除する(改行含む)。 - void lineTranspose()
カーソル行を1つ前の行と入れ替える。 - void lineDuplicate()
カーソル行を複製し、次の行との間に貼り付ける。 - void lowerCase()
選択した文字を小文字へ変換する。アルファベットが対象。マルチバイト文字のアルファベットにも機能する。 - void upperCase()
選択した文字を大文字へ変換する。アルファベットが対象。マルチバイト文字のアルファベットにも機能する。 - void lineScrollDown()
ウィンドウの内容を1行分下へスクロールする。 - void lineScrollUp()
ウィンドウの内容を1行分上へスクロールする。 - void deleteBackNotLine()
カーソル左の文字を削除する。deleteBack()と異なる点として、カーソルが行頭にある場合は何も動作しない。 - void homeDisplay()
Move cursor to Home position for the current display line (as opposed to the buffer line when word wrap is enabled). - void homeDisplayExtend()
Extend selection to the Home position for the current display line (as opposed to the buffer line when word wrap is enabled). - void lineEndDisplay()
Move cursor to end of the current display line (as opposed to the buffer line when word wrap is enabled). - void lineEndDisplayExtend()
Extend selection to the end of the current display line (as opposed to the buffer line when word wrap is enabled). - void wordPartLeft()
単語単位でカーソルを左方向へ移動させる。wordLeft()との違いは、カーソルが単語の先頭に存在する場合、左の単語の末尾へ移動する事。 - void wordPartLeftExtend()
カーソルの動きはwordPartLeft()と同じ。合わせて、現在のカーソル位置から移動した先のカーソル位置までを選択する。 - void wordPartRight()
単語単位でカーソルを右方向へ移動させる。wordRight()との違いは、カーソルが単語の先頭に存在する場合、その単語の末尾へ移動する事。 - void wordPartRightExtend()
カーソルの動きはwordPartRight()と同じ。合わせて、現在のカーソル位置から移動した先のカーソル位置までを選択する。 - void delLineLeft()
カーソル位置から行頭までを削除する。 - void delLineRight()
カーソル位置から行末までを削除する(改行は含まない)。 - void paraDown()
次のパラグラフ(文章)先頭へカーソルを移動する。 - void paraDownExtend()
カーソル位置から次のパラグラフ(文章)先頭までを選択する。 - void paraUp()
前のパラグラフ(文章)先頭へカーソルを移動する。 - void paraUpExtend()
カーソル位置から前のパラグラフ(文章)先頭までを選択する。
Undoスタックについて
Undoスタックについて以下に概略を記述する。詳しくはマニュアル記載の”The Undo Stack”を参照の事。
ScintillaはUndo履歴をスタック管理している(scimozはScintillaのプラグイン)。
マクロからテキストに対して操作を行うにあたり、その操作単位を意図的に区切りる場合はbeginUndoAction()/endUndoAction()を用いる必要がある。
またその場合、例外発生時にも必ずendUndoAction()が実行されるよう注意する事。正しく用いられない場合には、その情報が失われる可能性がある。
※ beginUndoAction()/endUndoAction()を用いずとも、各操作はスタックに積まれるが、その単位は1操作毎となる。
Comments are closed.