利用者:黄身
Ginnieから移行中。何か変な所があったらその癖が抜けてないせいです……
覚え書き
- Window.Redraw
例えば以下の場合、一見フリーズしたかの様に見えてしまう。
Redraw=false;
Document.Selection.Find("a",meFindNext);
Quit(); //してもしなくても同じ
実際には描画されてないだけなので、新規作成などをすれば解除されるが、
Redraw=true;
を追加しておく方べき。
- Document.GetLine
デフォルトでは表示行を取得。meGetLineLogicalが未定義なので0を指定する。
- 最初の数
- 行:1 (Document.GetLine)
- 文頭からの位置:0 (Selection.GetActivePos)
- 桁:1 (Selection.GetActivePointX)
- Editor,Document:0 (Editors.Item.Documents.Item)
- Window.Document
Document.NewFile後も更新されない。
Editor.ActiveDocument.NewFile();
Alert(Document.Text);
- Editor.FindInFiles
- ディレクトリ名は最後を"\\"か"\\*"にする。
- アクティブな文書が結果表示で乗っ取られる。
- PopupMenu.Track
- 引数無しだとエラー。0でキャレット位置に表示。mePosMouseは1。
- キャンセルした場合の返り値は0。
- 返り値を変数に入れるなりOutputするなりしないとメニューは表示されない。
- 領域外をクリックしてキャンセルした場合、続けてTrackしていても実行されない。Escでだとされる。
var p=CreatePopupMenu();
p.Add("1");
var x=p.Track(0); //ここでキャンセル
if(x==0){
x=p.Track(0);
}
- Selection.Replace
検索文字列が0x000aから始まるとき、meFindReplaceRegExpを指定しないと、meReplaceAllがおかしい。
Selection.Replace("\n","",meReplaceAll); //最初の1つだけ処理される
Selection.Replace(";\n","",meReplaceAll); //全て処理される
Selection.Replace("\n;","",meReplaceAll); //最初の1つだけ処理される
- Document.Text
代入する場合、設定上の改行コードがCRLFでも、改行記号は文字列中の改行によって変わる。
$d.Text=$d.Text //改行記号はLFになる
- Selection.CharLeft,CharRight,LineUp,LineDown
Countが0の時は1と同じ。負の場合、逆方向に移動。
マクロファイル
- ファイル:kili.zip:(DropBox)
- ファイル:SSnippet.zip:(DropBox)
- Commentize.js:(Dropbox)
- SmartBreak.js:(Dropbox)
KILI.js
グローバルに用意しているのはこの「KILI」オブジェクトと次の項に挙げたいくつかのみ。
(これ以外のファイルでも)引数のコメントで「*」が付いてるものは既定値。
- よく出てくる変数名
- $d:対象となる文書のDocument。ほぼ全てのメソッドが最後の引数として取る。これが指定されていない場合はアクティブな文書を対象とする。
- $s:対象となる文書のSelection。
オブジェクト
- Point
- 座標を表すオブジェクト。今のところx,yが含まれているだけ。
KILIオブジェクトに含まれないもの
あまりにもよく使ってるので特別にグローバルに用意。よほどの事がない限りこれ以上増やさない。
- GDO
- Documentを取得。
- GEO
- Editorを取得。
- GSO
- Selectionを取得。
- O
- OutputBar.Writeln()へのショートカット。
- Seiko
- 時間を計測する。
KILI.selex
Selection拡張。KILI.editと違い、文書は編集されない。
- 位置を判定するもの
atEOF atLogicalHead atLogicalEnd atViewHead atViewEnd
- 位置を取得するもの
getLogicalHeadPos getLogicalEndPos getRange getTopPos getBottomPos getViewHeadPos getViewEndPos getWrapPos searchTextLines searchTextPos
- 文字列を取得するもの
getLeft getRight
- 位置を変換するもの
logicalToPos logicalToView posToLogical posToView viewToLogical viewToPos
- 選択するもの
reverse selectIfEmpty selectLines setRange
- 選択状態を判定するもの
getDirection inline multiline wholeLine wholeLines
KILI.edit
Selection拡張。KILI.selexと違い、文書は編集される。
breakAll deleteAll deleteLine deleteLines deleteAllTextLines deleteAllNoTextLines duplicate sort
KILI.docex
Document拡張。Editorの領分と思われるものも含む。
あまり仕様が固まってないので激変の可能性あり。
clone listupAll newFile getINI
KILI.code.js
文字・コードポイントの相互変換とその表現を扱う。Unicodeのみが対象。
decode encode decodeAll decodeSurrogate encodeSurrogate fromCharCode fromEntity toEntity fromOnig toOnig fromRegex toRegex fromUnicode toUnicode
組み込みオブジェクト拡張
名前の衝突に注意。特にStringExはincludeライブラリのStringExと衝突しています。
ArrayEx.js
clone compact del indexOf insert last mine pickup siblings undup
NumberEx.js
constrain inRange padding toHexString
StringEx.js
crlf cut dQuot sQuot enclose enclosed insert repeat startsWith endsWith escape unescape escapeRegExp unescapeRegExp
SimplePM.js
テキストと実行コマンドのみからなる単純なPopupMenu。
- メニューの定義
- text:<string> メニューのテキスト。
- command:<Function||Array>
- Function:メニュー選択時に実行する関数。
- Array:サブメニュー。空の配列の場合、区切りとなる。
e.g.
var menu=[
["a",function(){Alert("a");}], //関数を実行する
[], //区切り
["b",[
["b-a",function(){return ["b","a"];}], //配列を返す
["b-c","b-c"] //文字列を返す
]]
]
var p=new SimplePM();
p.create(menu);
p.track();
- create
- メニューを作成。
- getCommand
- IDの項目のコマンドを返す。
- getIdFromPosition
- メニューの位置からIDを取得。
e.g.(冒頭の続き)
p.getText(p.getIdFromPosition("2-1")); //"b-c"
- getPopup
- PopupMenuを取得。
- getResult
- 前回の実行結果を返す。
- getText
- IDの項目のテキストを返す。
- track
- メニューを表示、コマンドを実行。
WidePM.js
作成中
実行コマンドを指定できるPopupMenu。
- SimplePMとの違い
- IDが指定できる。
- チェック状態、有効・無効を変更できる。
- チェックボックスやラジオボタンとして使える。
- 項目を差し替えられる。
- 直接コマンドを実行できる。
SSnippet.js
キャレット直前の文字列をキーとして補完する。
- SSnippet
- 本体。補完候補の登録もここから出来る。
- SSnippet.file
- 定義ファイルのパス。
- SSnippet.listup
- 補完リストを作成。
- SSnippet.regist
- 選択文字列を登録。
Commentize.js
コメント化もしくはコメント解除する。
SmartBreak.js
ちょっと賢く改行する。
- 開き括弧の直後で改行した場合にブロック(次行インデント+閉じ括弧)を作成する。
- 行コメント内の場合、次行も行コメントにする。
- オプション
- 必要ない処理は抑制できる。
- インデント(元々の、新たな)を無視する。
- キャレットより右のテキストの配置を設定できる。