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

提供: MeryWiki
ナビゲーションに移動 検索に移動
黄身 (トーク | 投稿記録)
編集の要約なし
黄身 (トーク | 投稿記録)
編集の要約なし
45行目: 45行目:
Countが0の時は1と同じ。負の場合、逆方向に移動。
Countが0の時は1と同じ。負の場合、逆方向に移動。


=リンク=
=マクロファイル=
*[[ファイル:kili.zip]]:([https://www.dropbox.com/sh/p7i0otfrsmxefr4/AABKKoUhhf4Qfcxf5UNoyWZLa?dl=0 DropBox])
*[[ファイル: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])
*[[ファイル:SSnippet.zip]]:([https://www.dropbox.com/s/kqp4dm7zy8cejz6/SSnippet.js?dl=0 DropBox])
*Commentize.js:([https://www.dropbox.com/s/e3yua0wnyjnjj0q/Commentize.js?dl=0 Dropbox])
*SmartBreak.js:([https://www.dropbox.com/s/iipa5w4ilzq28vk/SmartBreak.js?dl=0 Dropbox])


=KILI.js=
=KILI.js=
53行目: 55行目:
(これ以外のファイルでも)引数のコメントで「*」が付いてるものは既定値。
(これ以外のファイルでも)引数のコメントで「*」が付いてるものは既定値。
;よく出てくる変数名
;よく出てくる変数名
*$d:対象となる文書のDocument。
*$d:対象となる文書のDocument。ほぼ全てのメソッドが最後の引数として取る。これが指定されていない場合はアクティブな文書を対象とする。
*$s:対象となる文書のSelection。
*$s:対象となる文書のSelection。
*SB:StateBackup。
==$d==
ほぼ全てのメソッドは最後の引数に「$d」を取る。これが指定されていない場合はアクティブな文書を対象とする。
==オブジェクト==
==オブジェクト==
;Point
;Point
73行目: 72行目:
;Seiko
;Seiko
:時間を計測する。
:時間を計測する。
==KILI.selex==
==KILI.selex==
Selection拡張。KILI.editと違い、文書は編集されない。
Selection拡張。KILI.editと違い、文書は編集されない。
;atEOF
;位置を判定するもの
:文末かどうか。
atEOF atLogicalHead atLogicalEnd atViewHead atViewEnd
;atLogicalEnd
;位置を取得するもの
:論理行末かどうか。
getLogicalHeadPos getLogicalEndPos getRange getTopPos getBottomPos getViewHeadPos getViewEndPos getWrapPos searchTextLines searchTextPos
;atLogicalHead
;文字列を取得するもの
:論理行頭かどうか。
getLeft getRight
;atViewEnd
;位置を変換するもの
:表示行末かどうか。
logicalToPos logicalToView posToLogical posToView viewToLogical viewToPos
;atViewHead
;選択するもの
:表示行頭かどうか。
reverse selectIfEmpty selectLines setRange
;getBottomPos
;選択状態を判定するもの
:選択範囲の文頭側の位置を取得。
getDirection inline multiline wholeLine wholeLines
;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==
==KILI.edit==
Selection拡張。KILI.selexと違い、文書は編集される。
Selection拡張。KILI.selexと違い、文書は編集される。
;breakAll
breakAll deleteAll deleteLine deleteLines deleteAllTextLines deleteAllNoTextLines duplicate sort
:文字列を全て改行にする。
;deleteAll
:文字列を全て削除。
;deleteAllNoTextLines
:文字列を含まない行を全て削除。
;deleteAllTextLines
:文字列を含む行を全て削除。
;deleteLine
:行削除。
;deleteLines
:行を全て削除。
;duplicate
:論理行二重化。
;sort
:テキストソート。
 
==KILI.docex==
==KILI.docex==
Document拡張。Editorの領分と思われるものも含む。<br />
Document拡張。Editorの領分と思われるものも含む。<br />
あまり仕様が固まってないので激変の可能性あり。
あまり仕様が固まってないので激変の可能性あり。
;clone
clone listupAll newFile getINI
:文書のクローンを作成。
;listupAll
:全てのDocumentを取得。
;newFile
:テキストとスタイルを指定して新規作成。


=KILI.code.js=
=KILI.code.js=
文字・コードポイントの相互変換とその表現を扱う。Unicodeのみが対象。
文字・コードポイントの相互変換とその表現を扱う。Unicodeのみが対象。
;decode
decode encode decodeAll decodeSurrogate encodeSurrogate fromCharCode fromEntity toEntity fromOnig toOnig fromRegex toRegex fromUnicode toUnicode
:コードポイントの配列を文字列に変換。
;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)に変換。


=組み込みオブジェクト拡張=
=組み込みオブジェクト拡張=
名前の衝突に注意。特にStringExはincludeライブラリのStringExと衝突しています。
名前の衝突に注意。特にStringExはincludeライブラリのStringExと衝突しています。
==ArrayEx.js==
==ArrayEx.js==
組み込みArray拡張。
clone compact del indexOf insert last mine pickup siblings undup
;clone
:配列を値渡し。
;compact
:空文字列、null、undefinedを削除する。
;del
:一致した要素を削除。
;indexOf
:配列から文字列を検索。
;insert
:要素を挿入する。
;last
:配列の最後の要素を返す。
;mine
:指定条件にマッチする要素を集める。
e.g.
<source lang="javascript" style="word-wrap:break-word;">
[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]
</source>
;pickup
:指定したインデックスの要素を取り出した配列を返す。
e.g.
<source lang="javascript" style="word-wrap:break-word;">
[{a:1,b:2},{a:3,c:4},{a:5,d:6}].siblings("a"); //[1,3,5];
</source>
;siblings
:オブジェクトの配列の各要素から同名のプロパティを取得。
e.g.
<source lang="javascript" style="word-wrap:break-word;">
[{a:1,b:2},{a:3,c:4},{a:5,d:6}].siblings("a"); //[1,3,5];
</source>
;undup
:配列から重複を削除。
 
==NumberEx.js==
==NumberEx.js==
Numberオブジェクト拡張
constrain inRange padding toHexString
;constrain
:数値を範囲内に収める。
;inRange
:n以上m以下。
;padding
:桁揃え。
;toHexString
:十六進数表記で返す。
 
==StringEx.js==
==StringEx.js==
Stringオブジェクト拡張
crlf cut dQuot sQuot enclose enclosed insert repeat startsWith endsWith escape unescape escapeRegExp unescapeRegExp
;crlf
:改行をCRLFにする。
;cut
:指定の長さで分割。
e.g.
<source lang="javascript" style="word-wrap:break-word;">
"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]
</source>
;dQuot
:「"」で囲む。
;enclose
:指定の文字列で囲む。
;enclosed
:文字列で囲まれている。
;endsWith
:末尾にマッチする。
;insert
:文字列を挿入する。
;repeat
:文字列を繰り返す。
;sQuot
:「'」で囲む。
;startsWith
:先頭にマッチする。


=SimplePM.js=
=SimplePM.js=
300行目: 128行目:
p.track();
p.track();
</source>
</source>
==メソッド==
;create
;create
:メニューを作成。
:メニューを作成。
311行目: 138行目:
p.getText(p.getIdFromPosition("2-1")); //"b-c"
p.getText(p.getIdFromPosition("2-1")); //"b-c"
</source>
</source>
;getPopup
:PopupMenuを取得。
;getResult
;getResult
:前回の実行結果を返す。
:前回の実行結果を返す。
;getText
;getText
:IDの項目のテキストを返す。
:IDの項目のテキストを返す。
;modify
:メニューの一部を変更する。
e.g.(冒頭の続き)
<source lang="javascript" style="word-wrap:break-word;">
p.modify(p.getIdFromPosition("2-1"),menu[0]);
</source>
;track
;track
:メニューを表示、コマンドを実行。
:メニューを表示、コマンドを実行。
=WidePM.js=
'''作成中'''
実行コマンドを指定できるPopupMenu。<br />
;SimplePMとの違い
*IDが指定できる。
*チェック状態、有効・無効を変更できる。
*チェックボックスやラジオボタンとして使える。
*項目を差し替えられる。
*直接コマンドを実行できる。


=SSnippet.js=
=SSnippet.js=
328行目: 161行目:
;SSnippet
;SSnippet
:本体。補完候補の登録もここから出来る。
:本体。補完候補の登録もここから出来る。
==メソッド==
;SSnippet.file
;SSnippet.file
:定義ファイルのパス。
:定義ファイルのパス。
335行目: 167行目:
;SSnippet.regist
;SSnippet.regist
:選択文字列を登録。
:選択文字列を登録。
=Commentize.js=
コメント化もしくはコメント解除する。
=SmartBreak.js=
ちょっと賢く改行する。
*開き括弧の直後で改行した場合にブロック(次行インデント+閉じ括弧)を作成する。
*行コメント内の場合、次行も行コメントにする。
;オプション
*必要ない処理は抑制できる。
*インデント(元々の、新たな)を無視する。
*キャレットより右のテキストの配置を設定できる。

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

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になる
Selection.CharLeft,CharRight,LineUp,LineDown

Countが0の時は1と同じ。負の場合、逆方向に移動。

マクロファイル

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

ちょっと賢く改行する。

  • 開き括弧の直後で改行した場合にブロック(次行インデント+閉じ括弧)を作成する。
  • 行コメント内の場合、次行も行コメントにする。
オプション
  • 必要ない処理は抑制できる。
  • インデント(元々の、新たな)を無視する。
  • キャレットより右のテキストの配置を設定できる。
スポンサーリンク