「利用者:黄身」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
黄身 (トーク | 投稿記録)
編集の要約なし
黄身 (トーク | 投稿記録)
編集の要約なし
45行目: 45行目:
表示行頭がActive/Anchorになる様な範囲の場合、Restoreするとそれぞれ直前の表示行末に移動する。<br />
表示行頭がActive/Anchorになる様な範囲の場合、Restoreするとそれぞれ直前の表示行末に移動する。<br />
mePosLogicalをmePosViewに変えるといい。
mePosLogicalをmePosViewに変えるといい。
=リンク=
*[[ファイル:kili.zip]]:([https://www.dropbox.com/sh/p7i0otfrsmxefr4/AABKKoUhhf4Qfcxf5UNoyWZLa?dl=0 DropBox])
*[[ファイル:SSnippet.zip]]:([https://www.dropbox.com/s/kqp4dm7zy8cejz6/SSnippet.js?dl=0 DropBox])


=KILI.js=
=KILI.js=
[[ファイル:kili.zip]]<br />
グローバルに用意しているのはこの「KILI」オブジェクトと次の項に挙げたいくつかのみ。<br />
グローバルに用意しているのはこの「KILI」オブジェクトと次の項に挙げたいくつかのみ。<br />
(これ以外のファイルでも)引数のコメントで「*」が付いてるものは既定値。
(これ以外のファイルでも)引数のコメントで「*」が付いてるものは既定値。
280行目: 283行目:


=SimplePM.js=
=SimplePM.js=
[[ファイル:kili.zip]]<br />
テキストと実行コマンドのみからなる単純なPopupMenu。
テキストと実行コマンドのみからなる単純なPopupMenu。
;メニューの定義
;メニューの定義
326行目: 328行目:


=SSnippet.js=
=SSnippet.js=
[[ファイル:SSnippet.zip]]<br />
キャレット直前の文字列をキーとして補完する。
キャレット直前の文字列をキーとして補完する。
;SSnippet
;SSnippet

2015年4月9日 (木) 11:15時点における版

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オブジェクトに含まれないもの

あまりにもよく使ってるので特別にグローバルに用意。よほどの事がない限りこれ以上増やさない。

GDO
Documentを取得。
GEO
Editorを取得。
GSO
Selectionを取得。
O
OutputBar.Writeln()へのショートカット。
Seiko
時間を計測する。

KILI.selex

Selection拡張。KILI.editと違い、文書は編集されない。

atEOF
文末かどうか。
atLogicalEnd
論理行末かどうか。
atLogicalHead
論理行頭かどうか。
atViewEnd
表示行末かどうか。
atViewHead
表示行頭かどうか。
getBottomPos
選択範囲の文頭側の位置を取得。
getDirection
テキスト選択方向を取得。
getLeft
キャレットより左の文字列を取得。
getLogicalEndPos
全ての論理行末の位置を取得。
getLogicalHeadPos
全ての論理行頭の位置を取得。
getRange
選択範囲を取得する。
getRight
キャレットより右の文字列を取得。
getTopPos
選択範囲の文末側の位置を取得。
getViewEndPos
全ての表示行末の位置を取得。
getViewHeadPos
全ての表示行頭の位置を取得。
getWrapPos
全ての折り返し位置を取得。
inline
行内選択かどうか。
logicalToPos
論理行・桁を文頭からの位置に変換。
logicalToView
論理行・桁を表示行・桁に変換。
multiline
複数行に渡る選択かどうか。
posToLogical
文頭からの位置を論理行・桁に変換。
posToView
文頭からの位置を表示行・桁に変換。
reverse
選択範囲を反転する。
searchTextLines
文字列を含む論理行を取得。
searchTextPos
文字列を文書全体から探して位置を取得。
selectIfEmpty
選択されていなければ選択する。
selectLines
複数の行を選択。。
setRange
範囲選択する。
viewToLogical
表示行・桁を論理行・桁に変換。
viewToPos
表示行・桁を文書先頭からの位置に変換。
wholeLine
行の全体を選択しているかどうか。
wholeLines
複数行の全体を選択しているかどうか。

KILI.edit

Selection拡張。KILI.selexと違い、文書は編集される。

breakAll
文字列を全て改行にする。
deleteAll
文字列を全て削除。
deleteAllNoTextLines
文字列を含まない行を全て削除。
deleteAllTextLines
文字列を含む行を全て削除。
deleteLine
行削除。
deleteLines
行を全て削除。
duplicate
論理行二重化。
sort
テキストソート。

KILI.docex

Document拡張。Editorの領分と思われるものも含む。
あまり仕様が固まってないので激変の可能性あり。

clone
文書のクローンを作成。
listupAll
全てのDocumentを取得。
newFile
テキストとスタイルを指定して新規作成。

KILI.code.js

ファイル:kili.zip
文字・コードポイントの相互変換とその表現を扱う。Unicodeのみが対象。

decode
コードポイントの配列を文字列に変換。
decodeAll
文字列中のコード表現を文字列にする。
decodeSurrogate
サロゲートペアをコードポイントに変換。
encode
文字列をコードポイントの配列に変換。
encodeSurrogate
コードポイントをサロゲートペアで表現。
fromCharCode
0x10000以上にも対応したfromCharCode。
fromEntity
文字列中の数値実体参照(&#dddd,&#xhhhh)を文字に変換。
fromOnig
文字列中の鬼車のコード表現(\x{hhhh})を文字に変換。
fromRegex
文字列中の正規表現のコード表現(\uhhhh)を文字に変換。
fromUnicode
文字列中のUnicodeのコード表現(U+hhhh)を文字に変換。
toEntity
文字列を数値実体参照(&#dddd,&#xhhhh)に変換。
toOnig
文字列を鬼車のコード表現(\x{hhhh})に変換。
toRegex
文字列を正規表現のコード表現(\uhhhh)に変換。
toUnicode
文字列をUnicodeのコード表現(U+hhhh)に変換。

組み込みオブジェクト拡張

ファイル:kili.zip
名前の衝突に注意。特にStringExはincludeライブラリのStringExと衝突しています。

ArrayEx.js

組み込みArray拡張。

clone
配列を値渡し。
compact
空文字列、null、undefinedを削除する。
del
一致した要素を削除。
indexOf
配列から文字列を検索。
insert
要素を挿入する。
last
配列の最後の要素を返す。
mine
指定条件にマッチする要素を集める。

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
指定したインデックスの要素を取り出した配列を返す。

e.g.

[{a:1,b:2},{a:3,c:4},{a:5,d:6}].siblings("a");	//[1,3,5];
siblings
オブジェクトの配列の各要素から同名のプロパティを取得。

e.g.

[{a:1,b:2},{a:3,c:4},{a:5,d:6}].siblings("a");	//[1,3,5];
undup
配列から重複を削除。

NumberEx.js

Numberオブジェクト拡張

constrain

数値を範囲内に収める。

inRange

n以上m以下。

padding

桁揃え。

toHexString

十六進数表記で返す。

StringEx.js

Stringオブジェクト拡張

crlf
改行をCRLFにする。
cut
指定の長さで分割。

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
「"」で囲む。
enclose
指定の文字列で囲む。
enclosed
文字列で囲まれている。
endsWith
末尾にマッチする。
insert
文字列を挿入する。
repeat
文字列を繰り返す。
sQuot
「'」で囲む。
startsWith
先頭にマッチする。

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"
getResult
前回の実行結果を返す。
getText
IDの項目のテキストを返す。
modify
メニューの一部を変更する。

e.g.(冒頭の続き)

p.modify(p.getIdFromPosition("2-1"),menu[0]);
track
メニューを表示、コマンドを実行。

SSnippet.js

キャレット直前の文字列をキーとして補完する。

SSnippet
本体。補完候補の登録もここから出来る。

メソッド

SSnippet.registFromKey
選択文字列をキーとして登録。
SSnippet.regist
選択文字列を補完内容として登録。
スポンサーリンク