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に従う。
スポンサーリンク