「
利用者:黄身
」を編集中
2015年5月30日 (土) 16:15時点における
黄身
(
トーク
|
投稿記録
)
による版
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
ナビゲーションに移動
検索に移動
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
Ginnieから移行中。何か変な所があったらその癖が抜けてないせいです……<br /> 思いつくままに作ってるので、役に立つかどうかは二の次三の次。 =覚え書き= ;コマンドラインオプションからマクロ実行 Window.PromptとWindow.Confirmは実行できない。 ;Window.Redraw 次のスクリプトを実行するとMeryが上手く終了できない(プロセスが残ってて、次回起動できない)。 <source lang="javascript" style="word-wrap:break-word;"> Redraw=false; Editor.NewFile(); Editor.ActiveDocument.Close(); </source> これは次の様にすれば解決できる。 <source lang="javascript" style="word-wrap:break-word;"> Redraw=false; Editor.NewFile(); //ここでもいい。 Editor.ActiveDocument.Close(); //ここに他の処理が入っても構わない。 Redraw=true; </source> ;Document.GetLine デフォルトでは表示行を取得。meGetLineLogicalが未定義なので0を指定する。 ;最初の数 *行:1 (Document.GetLine) *文頭からの位置:0 (Selection.GetActivePos) *桁:1 (Selection.GetActivePointX) *Editor,Document:0 (Editors.Item.Documents.Item) ;Window.Document Document.NewFile後も更新されない。 <source lang="javascript" style="word-wrap:break-word;"> Editor.ActiveDocument.NewFile(); Alert(Document.Text); </source> ;Editor.FindInFiles *ディレクトリ名は最後を"\\"か"\\*"にする。 *アクティブな文書が結果表示で乗っ取られる。 ;PopupMenu.Track *引数無しだとエラー。0でキャレット位置に表示。mePosMouseは1。 *キャンセルした場合の返り値は0。 *返り値を変数に入れるなりOutputするなりしないとメニューは表示されない。 *領域外をクリックしてキャンセルした場合、続けてTrackしていても実行されない。Escでだとされる。 <source lang="javascript" style="word-wrap:break-word;"> var p=CreatePopupMenu(); p.Add("1"); var x=p.Track(0); //ここでキャンセル if(x==0){ x=p.Track(0); } </source> ;Selection.Replace 検索文字列が0x000aから始まるとき、meFindReplaceRegExpを指定しないと、meReplaceAllがおかしい。 <source lang="javascript" style="word-wrap:break-word;"> Selection.Replace("\n","",meReplaceAll); //最初の1つだけ処理される Selection.Replace(";\n","",meReplaceAll); //全て処理される Selection.Replace("\n;","",meReplaceAll); //最初の1つだけ処理される </source> ;Document.Text 代入する場合、設定上の改行コードがCRLFでも、改行記号は文字列中の改行によって変わる。 <source lang="javascript" style="word-wrap:break-word;"> $d.Text=$d.Text //改行記号はLFになる </source> ;Selection.CharLeft,CharRight,LineUp,LineDown Countが0の時は1と同じ。負の場合、逆方向に移動。 ;Selection.Find 正規表現の時meFindReplaceOnlyWordは無効。 =イベント発生順= ;一文字入力 #OnCaretMoved #OnChanged #OnChar ;削除/Undo/Redo #OnCaretMoved #OnChanged ;選択範囲が変わった #OnSelChanged #OnCaretMoved ;変更されている状態からファイル保存 #OnFileSaving #OnFileSaved ;変更されていない状態から上書き保存 #OnChar ;名前を付けて保存 #OnFileSaving #OnFileSaved #OnModeChanged ;貼り付け/切り取り #OnCaretMoved #OnChanged #OnChanged ;文書を閉じた #OnDocumentClose #OnDocumentSelectChanged ;新規作成 #OnModeChanged #OnDocumentSelectChanged ;折り返しを変更 #OnCaretMoved #OnChanged ;行ジャンプ #OnCaretMoved ;検索 #OnSelChanged #OnCaretMoved ;置換 #OnCaretMoved #OnSelChanged #OnChanged ;色の反転を #OnModeChanged #OnChanged ;行番号/ルーラ/記号の表示を変更 #OnChanged ;フォントを変更 #OnCaretMoved #OnChanged ;マクロ->編集 なし ;分割 #OnChanged ;分割を解除 なし =マクロファイル= DropBoxの方が最新版だが、破壊的な変更の可能性あり(特にKILI.js)。 {| class="wikitable" !マクロ !colspan="2"|ダウンロード !中身 |- |[[#KILI.js|KILI]] |[[:File:kili.zip|kili.zip]] |[https://www.dropbox.com/sh/p7i0otfrsmxefr4/AABKKoUhhf4Qfcxf5UNoyWZLa?dl=0 DropBox] |KILI.js KILI.code.js ArrayEx.js StringEx.js NumberEx.js SimplePM.js WidePM.js(DropBoxのみ) SequencialPM.js(DropBoxのみ) FunctionEx.js(削除) |- |[[#SSnippet.js|SSnippet.js]] |[[:ファイル:SSnippet.zip|SSnippet.zip]] |[https://www.dropbox.com/s/kqp4dm7zy8cejz6/SSnippet.js?dl=0 DropBox] | |- |[[#Commentize.js|Commentize.js]] |[[:ファイル:Commentize.zip|Commentize.zip]] |[https://www.dropbox.com/s/e3yua0wnyjnjj0q/Commentize.js?dl=0 Dropbox] | |- |[[#SmartBreak.js|SmartBreak.js]] |[[:ファイル:SmartBreak.zip|SmartBreak.zip]] |[https://www.dropbox.com/s/iipa5w4ilzq28vk/SmartBreak.js?dl=0 Dropbox] | |- |[[#SwitchEvent.js|SwitchEvent.js]] | |[https://www.dropbox.com/s/r7u6hc73g6w77xs/SwitchEvent.js?dl=0 Dropbox] |- |[[#Events.js|Events.js]] | |[https://www.dropbox.com/s/lgpp2mdwpma30lt/Event.js?dl=0 Dropbox] | |- |[[#LoopyBookmark.js|LoopyBookmark.js]] |[[:ファイル:LoopyBookmark.zip|LoopyBookmark.zip]] |[https://www.dropbox.com/s/t6ogt8yjskloh4u/LoopyBookmark.js?dl=0 Dropbox] | |} =KILI.js= グローバルに用意しているのはこの「KILI」オブジェクトと次の項に挙げたいくつかのみ。<br /> (これ以外のファイルでも)引数のコメントで「*」が付いてるものは既定値。 ;よく出てくる変数名 *$d:対象となる文書のDocument。ほぼ全てのメソッドが最後の引数として取る。これが指定されていない場合はアクティブな文書を対象とする。 *$s:対象となる文書のSelection。 ==オブジェクト== ;Point :座標を表すオブジェクト。今のところx,yが含まれているだけ。 ==KILIオブジェクトに含まれないもの== あまりにもよく使ってるので特別にグローバルに用意。よほどの事がない限りこれ以上増やさない。 ;GDO :Documentを取得。 ;GEO :Editorを取得。 ;GSO :Selectionを取得。 ;O :OutputBar.Writeln()へのショートカット。 ;Seiko :時間を計測する。 有りそうで無い変数。 *meGetLineLogical *mePosCaret ==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 excludeBreak ;選択状態を判定するもの getDirection inline multiline wholeLine wholeLines ;検索するもの count ==KILI.edit== Selection拡張。KILI.selexと違い、文書は編集される。<br /> breakAll deleteAll deleteLine deleteLines deleteAllTextLines duplicate sort ==KILI.docex== Document拡張。Editorの領分と思われるものも含む。<br /> あまり仕様が固まってないので激変の可能性あり。<br /> clone listupAll newFile getINI =KILI.code.js= 文字・コードポイントの相互変換とその表現を扱う。Unicodeのみが対象。<br /> 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 heading tailing<br /> onigFind =SimplePM.js= テキストと実行コマンドのみからなる単純なPopupMenu。 ;メニューの定義 *text:<string> メニューのテキスト。 *command:<Function||Array> **Function:メニュー選択時に実行する関数。 **Array:サブメニュー。空の配列の場合、区切りとなる。 e.g. <source lang="javascript" style="word-wrap:break-word;"> 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(); </source> ;create :メニューを作成。 ;getCommand :IDの項目のコマンドを返す。 ;getId :メニューの位置からIDを取得。 e.g.(冒頭の続き) <source lang="javascript" style="word-wrap:break-word;"> p.getText(p.getId("2-1")); //"b-c" </source> ;getParentId :親メニューのIDを取得 ;getPopup :PopupMenuを取得。 ;getResult :前回の実行結果を返す。 ;getText :IDの項目のテキストを返す。 ;track :メニューを表示、コマンドを実行。 =WidePM.js= いろいろできるPopupMenu。<br /> ;SimplePMとの違い *IDが指定できる。 *チェック状態、有効・無効を変更できる。 *チェックボックスやラジオボタンとして使える。 *項目を差し替えられる。 *直接コマンドを実行できる。 SimplePMと共通のメソッドは省略。 ;getCheckbox :チェックボックスとなっている項目とチェック状態を取得する ;getChecked :チェックされている項目のIDを取得する ;getRadioGroup :IDの項目の属するラジオボタングループを取得する ;modify :メニューの一部を変更する ;check :項目のチェックを切り換える ;available :項目の有効・無効を切り換える ;isChecked :IDの項目がチェックされているかどうかを取得する ;isAvailable :IDの項目が有効かどうかを取得する ;isCheckBox :IDの項目がチェックボックスかどうかを取得する ;isRadioButton :IDの項目がラジオボタンかどうかを取得する ;execute :コマンドを実行する =SequencialPM.js= '''作成中?'''<br /> コマンドの返り値に応じて次のPopupMenuの表示するPopupMenu。 =SSnippet.js= キャレット直前の文字列をキーとして補完する。 ;SSnippet :本体。補完候補の登録もここから出来る。 ;SSnippet.file :定義ファイルのパス。 ;SSnippet.listup :補完リストを作成。 ;SSnippet.regist :選択文字列を登録。 =Commentize.js= コメント化もしくはコメント解除する。 =SmartBreak.js= ちょっと賢く改行する。 *開き括弧の直後で改行した場合にブロック(次行インデント+閉じ括弧)を作成する。 *行コメント内の場合、次行も行コメントにする。 ;オプション *編集モードの指定。 *追加しないものを選択できる(行コメント、ブロック、行コメント中のブロック、元々のインデント、ブロック内のインデント)。 *キャレットより右のテキストの配置を設定できる(そのまま、次行に追加、最後、削除)。 =SwitchEvent.js= イベントマクロファイルを切り替える。 =Events.js= イベント用に作成した関数群。適当なイベント ;TextCount :文字数などをステータスバーに表示する(OnCaretMoved,OnChanged,OnChar,OnSelChangedなど) ;SuppressModify :ディスク上に存在しないファイルを常に保存済みとみなす(OnModifiedなど) ;SaveBackup :保存もしくはバックアップする(OnKillFocusなど) ;AutoFile :ディスク上に存在しないファイルを自動保存 ;SaveActiveTab :直前のアクティブタブを保存・取得 =LoopyBookmark.js= 最後のブックマークまで来たら最初のブックマークへ移動する。
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
利用者ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク