利用者:黄身
Ginnieから移行中。何か変な所があったらその癖が抜けてないせいです……
覚え書き
- 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になる
- include/StateBackup.js
表示行頭がActive/Anchorになる様な範囲の場合、Restoreするとそれぞれ直前の表示行末に移動する。
mePosLogicalをmePosViewに変えるといい。
KILI.js
グローバルに用意しているのはこの「KILI」オブジェクトと次の項に挙げたいくつかのみ。
(これ以外のファイルでも)引数のコメントで「*」が付いてるものは既定値。
- よく出てくる変数名
- $d:対象となる文書のDocument。
- $s:対象となる文書のSelection。
- SB:StateBackup。
$d
ほぼ全てのメソッドは最後の引数に「$d」を取る。これが指定されていない場合はアクティブな文書を対象とする。
オブジェクト
- Point
座標を表すオブジェクト。今のところx,yが含まれているだけ。
KILIオブジェクトに含まれないもの
あまりにもよく使ってるので特別にグローバルに用意。よほどの事がない限りこれ以上増やさない。
- GEO
Editorを取得。
- eIndex:<number> エディタのインデックス。不正な値の場合はアクティブ。
- return:<Document>
- GDO
Documentを取得。
- dIndex:<number> 文書のインデックス。不正な値の場合はアクティブ。
- eIndex:<number> エディタのインデックス。不正な値の場合はアクティブ。
- return:<Document>
- GSO
Selectionを取得。
- $d:<Document|number>
- Document 対象のDocument。
- number 文書のインデックス。*undefined:アクティブ。
- eIndex:<number> @$dで#numberを指定した場合、エディタのインデックス。
- return:<Selection>
- O
OutputBar.Writeln()へのショートカット。
null、undefinedは念のため文字列として出力。
- data:<Object> 出力データ。
- nobreak:<boolean> 改行しない。
- clear:<boolean> 出力前にウィンドウをクリアする。
- focus:<boolean> 出力ウィンドウにフォーカスを移す。
- Seiko.run
関数を指定回数実行して時間計測。
- func:<Function> 計測する関数。
- count:<number> 実行回数。
- return:<number> 経過時間。
KILI.selex
Selection拡張。KILI.editと違い、文書は編集されない。
- getBottomPos
選択範囲の文末側の位置を取得。
- getDirection
テキスト選択方向を取得。
- return:<number> 0:無選択、1:順方向、-1:逆方向。
- getLineEndPos
全ての論理行末の位置を取得。
- return:<Array>
- getLineHeadPos
全ての論理行頭の位置を取得。
- return:<Array>
- getRange
選択範囲を取得する。
- posType:<number> 形式。*0:文頭からの位置、1:論理行、2:物理行。
- topToBottom:<number> true:常に文頭側を開始位置とする、*false:選択方向に従う。
- return:<Object{start,end}>
- start,end:<number|KILI.Point> 開始位置、終了位置。
- getTopPos
選択範囲の文頭側の位置を取得。
- getViewEndPos
全ての表示行末の位置を取得。
- getViewHeadPos
全ての表示行頭の位置を取得。
- getWrapPos
全ての折り返し位置を取得。
- asLogical:<boolean> 論理行・桁で返す。
- return:<Array> @asLogicalがtrueならば各要素は{x,y}。
- aatLogicalEnd
論理行末かどうか。
- x:<number> 表示行桁もしくは文頭からの位置。*:現在位置。
- y:<number> 表示行。*:@xを文頭からの位置とみなす。
- return:<boolean>
- atLogicalHead
論理行頭かどうか。
- x:<number> 表示行桁もしくは文頭からの位置。*:現在位置。
- y:<number> 表示行。*:@xを文頭からの位置とみなす。
- return:<boolean>
- logicalToPos
論理行・桁を文頭からの位置に変換。
- x:<KILI.Point||number>
- KILI.Point 論理行。
- number 論理行桁。
- y:<number> @xがnumberのとき、論理行。
- logicalToView
論理行・桁を表示行・桁に変換。
- x:<KILI.Point||number>
- KILI.Point 論理行。
- number 論理行桁。
- y:<number> @xがnumberのとき、論理行。
- posToLogical
文頭からの位置を論理行・桁に変換。
- pos:<number> 文頭からの位置。
- return:<KILI.Point>
- posToView
文頭からの位置を表示行・桁に変換。
- pos:<number> 文頭からの位置。
- return:<KILI.Point>
- reverse
選択範囲を反転する。
- searchTextLines
文字列を含む論理行を取得。
- seg:<String||RegExp> 指定しない場合は選択部分。
- noText:<boolean> 文字列を含まない行を取得。
- return:<Array>
- searchTextPos
文字列を文書全体から探して位置を取得。
- seg:<String||RegExp> 指定しない場合は選択部分。
- return:<Array>
- selectIfEmpty
選択されていなければ選択する。
- range:<number> 選択範囲。*0:全体、1:論理行、2:表示行。
- selectLines
複数の行を選択。。
- from:<number> 開始行。
- num:<number> 選択行数。0:選択しない、負:文頭方向へ選択。
- selectBreak:<boolean> true:選択終了位置の改行も選択する、*false:改行前まで。
- asView:<boolean> 物理行で処理する。
- setRange
範囲選択する。
- start,end:<number|KILI.Point> 開始位置、終了位置。
- number 文頭からの位置
- Object *論理行での位置。@asViewがtrueなら表示行。
- asView:<boolean> @start,@endを表示行で指定する。
- viewToLogical
表示行・桁を論理行・桁に変換。
- x:<KILI.Point||number>
- KILI.Point 表示行。
- number 表示行桁。
- y:<number> @xがnumberのとき、表示行。
- return:<KILI.Point>
- viewToPos
表示行・桁を文書先頭からの位置に変換。
- x:<KILI.Point||number>
- KILI.Point 表示行。
- number 表示行桁。
- y:<number> @xがnumberのとき、表示行。
- return:<number>
KILI.edit
Selection拡張。KILI.selexと違い、文書は編集される。
- breakAll
文字列を全て改行にする。
- seg:<String> 指定しない場合は選択部分。
- return:<boolean> 置換したかどうか。
- deleteAll
文字列を全て削除。
- seg:<String> 指定しない場合は選択部分。
- return:<boolean> 削除したかどうか。
- deleteAllNoTextLines
文字列を含まない行を全て削除。
- seg:<String> 指定しない場合は選択部分。
- return:<boolean> 削除したかどうか。
- deleteAllTextLines
文字列を含む行を全て削除。
- seg:<String> 指定しない場合は選択部分。
- return:<boolean> 削除したかどうか。
- deleteLine
行削除。
- line:<number> 削除行。
- asView:<boolean> true:表示行、*false:論理行。
- return:<boolean> 削除したかどうか。
- deleteLines
行を全て削除。
- lines:<Array> 行番号。
- asView:<boolean> true:表示行、*false:論理行。
- return:<boolean> 削除したかどうか。
- duplicate
論理行二重化。 無選択時は現在の論理行、複数行選択時は範囲内の論理行、行内選択時は選択部分を二重化。
- sort
テキストソート。 選択範囲の論理行が対象。無選択の場合は全体。行内選択の場合長さ順は無効。
- sortType:<number> ソートの種類。*0:逆順、1:昇順、2:降順、3:長さ昇順、4:長さ降順。
KILI.docex
Document拡張。Editorの領分と思われるものも含む。
あまり仕様が固まってないので激変の可能性あり。
- clone
文書のクローンを作成。
- destination:<Editor> 文書作成先のEditor。*:アクティブ。
- return:<Document> 作成した文書。
- listupAll
全てのDocumentを取得。
- asObject:<boolean> 結果を{editorIndex:{documentIndex:Document}}の形式で返す。
- return:<Array||Object>
- newFile
テキストとスタイルを指定して新規作成。
- text:<String>
- encoding:<Document.Encoding> *:自動選択。
- mode:<Document.Mode> *:Text
- readOnly:<Document.ReadOnly> *:false
- overwrite:<Selection.OverwriteMode> *:false
- destination:<Editor> 文書作成先のEditor。*:アクティブ。
- return:<Document> 作成した文書。
KILI.code.js
文字・コードポイントの相互変換とその表現を扱う。Unicodeのみが対象。
- decode
コードポイントの配列を文字列に変換。
- code:<Array> 文字コードの配列。
- return:<String>
- decodeAll
文字列中のコード表現を文字列にする。
対応する形式
| U+hhhh | Unicode形式 |
| \uhhhh | 正規表現 |
| \x{hhhh} | 鬼車などの正規表現 |
| &#dddd | 実体参照(十進法) |
| &#xhhhh | 実体参照(十六進法) |
- seg:<String>
- return:<String>
- decodeSurrogate
サロゲートペアをコードポイントに変換。
- higher,lower:<number> 上位・下位サロゲート。
- return:<number>
- encode
文字列をコードポイントの配列に変換。
- seg:<String>
- surrogate:<boolean> サロゲートペアで出力する。
- alignmentString:<number> 指定した桁数の文字列で出力する。
- return:<Array>
- encodeSurrogate
コードポイントをサロゲートペアで表現。
コードポイントが0x10000未満の場合そのまま返す。
- code:<number>
- return:<Array[high,low]|number>
- fromCharCode
0x10000以上にも対応したfromCharCode。
引数・戻り値はfromCharCodeと同じ。
- args:<number>
- return:<string>
- fromEntity
文字列中の数値実体参照(&#dddd,&#xhhhh)を文字に変換。
- seg:<String>
- radix:<boolean> true:十進数のみ、false:十六進数のみ、*:両方。
- return:<String>
- fromOnig
文字列中の鬼車のコード表現(\x{hhhh})を文字に変換。
- seg:<String>
- return:<String>
- fromRegex
文字列中の正規表現のコード表現(\uhhhh)を文字に変換。
- seg:<String>
- return:<String>
- fromUnicode
文字列中のUnicodeのコード表現(U+hhhh)を文字に変換。
- seg:<String>
- return:<String>
- toEntity
文字列を数値実体参照(&#dddd,&#xhhhh)に変換。
- seg:<String>
- surrogate:<boolean> サロゲートペアで出力する。
- alignmentString:<number> 指定した桁数の文字列で出力する。
- radix:<boolean> true:十進数表記、*false:十六進数表記。
- return:<String>
- toOnig
文字列を鬼車のコード表現(\x{hhhh})に変換。
- seg:<String>
- surrogate:<boolean> サロゲートペアで出力する。
- alignmentString:<number> 指定した桁数の文字列で出力する。
- return:<String>
- toRegex
文字列を正規表現のコード表現(\uhhhh)に変換。
- seg:<String>
- surrogate:<boolean> サロゲートペアで出力する。
- alignmentString:<number> 指定した桁数の文字列で出力する。
- return:<String>
- toUnicode
文字列をUnicodeのコード表現(U+hhhh)に変換。
- seg:<String>
- surrogate:<boolelan> サロゲートペアで出力する。
- alignmentString:<number> 指定した桁数の文字列で出力する。
- return:<String>
組み込みオブジェクト拡張
名前の衝突に注意。特にStringExはincludeライブラリのStringExと衝突しています。
ArrayEx.js
組み込みArray拡張。
- clone
配列を値渡し。
- return:<Array>
- compact
空文字列、null、undefinedを削除する。
- return:<Array>
- del
一致した要素を削除。
- args:<*> 削除する要素。
- return:<Array>
- indexOf
配列から文字列を検索。
- str:<string> 検索文字列。
- from:<number> 検索開始インデックス。
- return:<number> 配列インデックス。見つからなければ-1。
- insert
要素を挿入する。
- pos:<number> 挿入位置。
- item:<Object> 挿入要素。
- return:<Array>
- last
配列の最後の要素を返す。
- return:<*>
- mine
指定条件にマッチする要素を集める。
- func:<Function(element)> 条件を判定する関数。
- element:<*> 配列の各要素。
- return:<boolean>
- returnElement:<boolean> true:要素自体を返す。false:インデックスを返す。
- return:<Array>
e.g.
[1,2,3,4,5].mine(function(e){return e%2;}); //[0,2,4]
[1,2,3,4,5].mine(function(e){return e%2;},true); //[1,3,5]
- pickup。
指定したインデックスの要素を取り出した配列を返す。
- args:<number> 取り出す要素のインデックス。
- return:<Array>
e.g.
[{a:1,b:2},{a:3,c:4},{a:5,d:6}].siblings("a"); //[1,3,5];
- siblings
オブジェクトの配列の各要素から同名のプロパティを取得。
- name:<string> プロパティ名。
- return:<Array>
e.g.
[{a:1,b:2},{a:3,c:4},{a:5,d:6}].siblings("a"); //[1,3,5];
- undup
配列から重複を削除。
- return:<Array>
NumberEx.js
Numberオブジェクト拡張
- constrain
数値を範囲内に収める。
- min,max:<number> 最小値、最大値。
- return:<number>
- inRange
n以上m以下。
- r1,r2:<number> 範囲。大小の順は不問。
- return:<boolean>
- padding
桁揃え。
文字列としての長さが@digitより長い場合、切り捨ては行わない。
- digit:<number> 全体の桁数。*4。
- pad:<string> 埋め文字。*0。
- return:<string>
- toHexString
十六進数表記で返す。
- return:<string>
StringEx.js
Stringオブジェクト拡張
- crlf
改行をCRLFにする。
- return:<string>
- cut
指定の長さで分割。
- args[0]:<number> 最初の分割長。argsが1つだけの場合、負:分割しない、0:(0,false)と同じ、正:その長さで全体を分割する。
- args[1-]:<number|boolean>
- number 2番目以降の分割長。0:空要素となる。負:その分遡る。
- boolean ここで処理を中断する。true:残りを出力しない、*false:残りを1つの要素として出力する。
- return:<Array>
e.g.
"abcdefgh".cut(2); //[ab,cd,ef,gh]
"abcdefgh".cut(1,2,3,true); //[a,bc,def]
"abcdefgh".cut(1,-2,3,-1); //[a,abc,cdefgh]
- dQuot
「"」で囲む
- return:<string>
- enclose
指定の文字列で囲む。
- pre:<string> 囲み開き文字。
- post:<string> 囲み閉じ文字。*:@preと同じ。
- return:<string>
- enclosed
文字列で囲まれている。
- pre:<string> 囲み開き文字。
- post:<string> 囲み閉じ文字。*:@preと同じ。
- ignoreCase:<boolean> 大文字小文字を無視する。
- return:<boolean>
- endsWith
末尾にマッチする。
- seg:<string> マッチ文字列。
- ignoreCase:<boolean> 大文字小文字を無視する。
- return:<boolean>
- insert
文字列を挿入する。
- seg:<string> 挿入する文字列。
- pos:<number> 挿入位置。
- return:<string>
- repeat
文字列を繰り返す。
- count:<number> 繰り返し回数。
- return:<string>
- sQuot
「'」で囲む。
- return:<string>
- startsWith
先頭にマッチする。
- seg:<string> マッチ文字列。
- ignoreCase:<boolean> 大文字小文字を無視する。
- return:<boolean>
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
メニューを作成。
- menu:<Array> メニュー定義の配列。
- returnPopupMenu:<boolean> true:PopupMenuを返す、*false:自身を返す。
- return:<PopupMenu||PPM>
- getCommand
IDの項目のコマンドを返す。
- id:<number> ID。
- return:<*> 未定義の場合はテキストを返す。
- getIdFromPosition
メニューの位置からIDを取得。
- pos:<string> 位置。0起点で、上位の階層とは「-」で繋ぐ。
- return:<number||undefined>
e.g.(冒頭の続き)
p.getText(p.getIdFromPosition("2-1")); //"b-c"
- getResult
前回の実行結果を返す。
- return:<Object{id,result}> trackを参照。
- getText
IDの項目のテキストを返す。
- id:<number> ID。
- modify
メニューの一部を変更する。
- id:<number> アイテムのID。
- @item:<command> 置き換えるメニューの定義。
e.g.(冒頭の続き)
p.modify(p.getIdFromPosition("2-1"),menu[0]);
- track
メニューを表示、コマンドを実行。
コマンドが関数・配列でない場合はその値を返す。関数・配列を返したい場合は関数内でreturnする。
- pos:<number> *0:カーソル位置に表示、1:キャレット位置に表示。
- returnId:<boolean> コマンド未定義の場合の返り値。true:ID、*false:メニューのテキスト。
- return:<Object{id,result}>
- id:<number> ID。キャンセルした場合は0。
- result:<*> 関数の返り値、コマンドの内容、もしくは@returnIdに従う。