「
カッコで囲う
」を編集中 (節単位)
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
== メモ == === JS コメントアウトについて === "'''<code>/* </code>'''" と "'''<code> */</code>'''" と "'''<code> * </code>'''" で複数行のブロックコメントをつくる機能は、姉妹版の「[[引用符/コメント]]」マクロにもあります。 * 【例】 字下げされた <u>'''hoge''', '''fuga''', '''piyo'''</u> の3行をコメントアウトする <span style="background:#bfdfff;"> hoge</span> <span style="background:#bfdfff;"> fuga</span> <span style="background:#bfdfff;"> piyo</span> * 「'''カッコで囲う'''(ポップアップメニューあり)」マクロの「[[#JS / XML コメントアウト|JS コメントアウト2]]」コマンド ※ つねに <span style="color:#0000c0;">行の先頭へ</span> コメントマークを挿入します。また、行内の一部分を範囲選択して実行した場合は、改行を入れて選択範囲の文字列だけをコメントアウトします。 /* * hoge * fuga * piyo */ * 「'''引用符/コメント'''」マクロの「[[引用符/コメント#挿入/削除できる引用マークやコメントマーク|JS コメントアウト2]]」コマンド ※ <span style="color:#0000c0;">字下げされたブロックの先頭位置へ</span> コメントマークを挿入します。また、行内の一部分を範囲選択して実行した場合は、選択範囲を論理行全体に拡張してコメントアウトします。 /* * hoge * fuga * piyo */ ※ どちらのマクロの「JS コメントアウト2」コマンドでも、コメントアウトされた各行の文字列の先頭位置は、半角3文字ぶん下がります。 ※ どちらのマクロもアンコメント機能がありますが、「カッコで囲う」マクロは、「引用符/コメント」マクロによって "字下げ位置に挿入されたコメントマーク" を正しく削除できません。 ---- ※ どちらのマクロも "'''<code>/* </code>'''" と "'''<code> */</code>'''" だけでコメントアウトすることもできます。 : また、"'''<syntaxhighlight lang="javascript" inline><!-- </syntaxhighlight>'''" と "'''<syntaxhighlight lang="javascript" inline> --></syntaxhighlight>'''" でのコメントアウトとアンコメントもできます。 * 「カッコで囲う」マクロは選択範囲内を、「引用符/コメント」マクロは選択範囲のある行全体をコメントアウトします。 "hijklmn" の部分を範囲選択してコメントアウトする abcdefg<u><span style="background:#bfdfff;">'''hijklmn'''</span></u>opqrstuvwxyz 「カッコで囲う」マクロの場合 abcdefg <b style="color:#408040;">/* hijklmn */</b> opqrstuvwxyz abcdefg <b style="color:#808080;"><nowiki><!-- hijklmn --></nowiki></b> opqrstuvwxyz 「引用符/コメント」マクロの場合 <b style="color:#408040;">/* abcdefghijklmnopqrstuvwxyz */</b> <b style="color:#808080;"><nowiki><!-- abcdefghijklmnopqrstuvwxyz --></nowiki></b> === マルチカーソル/複数選択範囲への対応 === <span style="color:#c00;">Mery Ver '''3.0.1''' 以降</span> のマルチカーソル(複数のキャレットを置いた状態)や複数選択範囲のそれぞれにたいして、マクロを連続的に実行します (※ Ver 3.0.0 はサポート外)。 * 「カッコで囲う (ポップアップメニュー あり/なし)」マクロは、基本的にそれぞれの選択範囲ごとに一組のカッコで囲います。 : ※ 「Wiki用マークアップ」の各コマンドは、選択範囲内の各行ごとに囲います。 : ※ 「任意の文字列/文字数」系のコマンドでは、1回だけ入力ダイアログが表示され、指定した内容ですべての選択範囲または選択範囲内の各行を処理します。 * 「引用符を追加/削除」マクロは、設定項目 <code>multiLine</code> の true/false で指定された動作ですべての選択範囲を処理します。 : ※ "引用符" で囲った文字列と囲っていない文字列をそれぞれ範囲選択して実行すると、"引用符" で囲われた選択範囲では「削除」、囲われていない選択範囲では「追加」の動作をします。 : ※ 連続実行での「追加/削除」のトグル動作可。 * 「カッコで囲う2」マクロは、それぞれの選択範囲内の各行ごとにカッコで囲います。 : ※ 同一論理行内の複数の選択範囲は、それぞれを「ひとつの行」として扱います。 * Mery Ver 3.0.x ~ での矩形選択範囲にたいしては、「選択範囲を行に分け」て、選択範囲内の各行ごとに処理を実行します。 : ※ 同一論理行内の折り返しにたいしては「選択範囲を行に分ける」処理が正常になされません。 : ※ Mery Ver 2.x での矩形選択範囲にたいしては、正常に処理できません。 <!-- === GetKeyState.exe の活用 === [[GetKeyState.exe(キー状態取得実行ファイル)|GetKeyState.exe]] を活用して、「カッコで囲う (ポップアップメニュー)」マクロなら '''カッコの前後に半角空白をつける'''、「引用符を追加/削除」マクロなら '''引用符ではなく「半角空白を追加/削除」する''' というようなカスタマイズができるとおもいます。 * GetKeyState.exe の導入の仕方や使い方、注意事項などについては「[[GetKeyState.exe(キー状態取得実行ファイル)]]」のページを参照してください。 * 以下のサンプルコード(sukemaru 自家用版まま)では Mery インストールフォルダ内の Macros フォルダに GetKeyState.exe を配置している想定です。 ;「カッコで囲う(ポップアップメニューあり)」のカスタマイズ例 ソースコード内の <syntaxhighlight lang="javascript" inline>// IDごとのテキスト変換処理</syntaxhighlight> の行の '''上''' に以下のコードを挿入すると、Ctrl キーを押しながらカッコを選択した場合にはカッコの内側に半角空白がひとつずつ追加されます。 「半角空白で囲んでからカッコで囲う」操作が1回でできますし、ソースコードの配列やメニュー項目、<code>case xx:</code> への差分の追加の必要がなくなります。 <syntaxhighlight lang="javascript"> // Ctrl キーを押しながらカッコを選択したときは、カッコの内側に半角空白を追加する var $Ctrl = function() { var gks = editor.FullName.replace( /[^\\]+$/, "Macros\\GetKeyState.exe" ); return ( new ActiveXObject( "Scripting.FileSystemObject" ).FileExists( gks ) && new ActiveXObject( "WScript.Shell" ).Run( '"' + gks + '" ctrl', 0, true ) === 1 ); } if ( r < 1030 && $Ctrl() ) { p1[r] = p1[r] + " "; // 開きカッコの後ろに半角空白を追加 p2[r] = " " + p2[r]; // 閉じカッコの前に半角空白を追加 } </syntaxhighlight> ;「引用符を追加/削除」のカスタマイズ例 ソースコード内の <syntaxhighlight lang="javascript" inline>// ---------- ▲ 設定項目 ▲ ----------</syntaxhighlight> の行の '''下''' に以下のコードを挿入すると、Ctrl キーを押しながら実行した場合には設定項目で指定した 「"引用符" の追加/削除」 ではなく「半角空白を追加/削除」になります。 <code>pre = "hoge";</code> <code>sur = "fuga";</code> の部分は1文字ずつではない任意の長さの文字列や記号、HTML タグなども指定できます(改行 <code>"\n"</code> を含む文字列は不可)。 <syntaxhighlight lang="javascript"> // Ctrl キーを押しながらマクロを実行したときは、引用符ではなく半角空白を追加/削除する var gks = editor.FullName.replace( /[^\\]+$/, "Macros\\GetKeyState.exe" ); if ( new ActiveXObject( "Scripting.FileSystemObject" ).FileExists( gks ) && new ActiveXObject( "WScript.Shell" ).Run( '"' + gks + '" ctrl', 0, true ) === 1 ) { pre = " "; // 半角空白 sur = " "; // 半角空白 } </syntaxhighlight> --> === 変更履歴 === <div style="height:30em; overflow:auto;"> * 2020-06-23 (sukemaru) :・「カッコで囲う2」を追加(実験カテゴリから移動・統合) :・Mery Ver 3.0.x ~ のマルチカーソル/複数選択範囲に対応 :・「カッコで囲う (ポップアップメニューあり)」のコードを整理しなおし、定義配列の変数名や、ポップアップメニューの ID などの変更あり * 2020-06-03 (sukemaru) :・「カッコで囲う (ポップアップメニューあり)」のカッコで囲まれた文字列が2つできてしまう不具合を修正 :・コード内の変数名などを変更(関数の戻り値を代入する変数名を <code>tmp</code> に統一) :・「引用符を追加/削除」のコードを微修正 :・<syntaxhighlight lang="javascript" inline>document</syntaxhighlight> ⇒ <syntaxhighlight lang="javascript" inline>editor.ActiveDocument</syntaxhighlight> に変更 :・「カッコで囲う.zip」を差し替え * 2019-04-07 (sukemaru) :・「引用符を追加/削除」から Quit() メソッドを削除 :・「カッコで囲う.zip」を差し替え * 2019-03-28 (sukemaru) :・「カッコで囲う (ポップアップメニューあり)」のコードを増補・改変。人柱版追加コードを統合 ::・「JS コメントアウト/アンコメント」を正規表現置換メソッドに変更 ::・「任意の 文字数/文字列 を削除」を追加 ::・「行頭/行末の空白を削除」を追加 ::・「1文字ずつ前後を削除(外)」を追加 ::・「ひとつ削除」を追加(「カッコをはずす」マクロから転用) ::・「アウトプット/アラート/コンファーム/ステータス」を追加 ::・「カッコの定義」を使わないコマンドの ID を 1030~ に変更 ::・ サブメニューを追加してネスト化 :・「引用符を追加/削除」に選択範囲の外側の”引用符”の削除機能を追加 :・「引用符を追加/削除」の終了時の動作コードを再変更 :・「カッコで囲う.zip」を差し替え * 2018-10-29 (sukemaru) :・「カッコで囲う (ポップアップメニューあり)」の節を更新(本体のソースコードに追加コードを包摂) :・「カッコで囲う (ポップアップメニューあり)」のメニュー項目に「任意の文字列2」を追加 :・「カッコで囲う (ポップアップメニューあり)」のソースコードをまとめてページ下部に移動 :・「カッコで囲う.zip」を差し替え * 2018-11-19 (sukemaru) :・「カッコで囲う (ポップアップメニューあり)」用の人柱版追加コード「行頭/行末から任意の 文字数 を削除」「行頭/行末から任意の 文字列 を削除」を追加 * 2018-10-26 (sukemaru) :・コードの体裁を修正 (※変数名を変更したので、追加コードは最新の「カッコで囲う」でないとエラーになる) :・各マクロの動作コードを変更し、実行後の文字列に変化なしになる場合に undo 履歴を残さないようにした :・追加コード「任意の文字列」の項目を追加 :・追加コードの「JS コメントアウト1」と「XML コメントアウト」のコードをまとめた :・追加コードの「JS アンコメント」で先頭/末尾のコメントマーク /* */ がある行では中間行の行頭記号を削除しないようにした :・「引用符を追加/削除」の終了後の動作コードを変更し、不自然な位置にキャレットが移動する不具合を修正した :・「カッコで囲う.zip」を差し替え * 2018-10-19 (sukemaru) :・「引用符を追加/削除」の節を追加 :・「カッコで囲う.zip」を差し替え * 2018-10-13 - 2018-10-16 (sukemaru) :・マクロのコードを微修正 :・「カッコで囲う.zip」を差し替え * 2018-10-12 (sukemaru) : 「カッコで囲う (ポップアップメニューあり)」のソースコードに "3文字ずつ前後を削除" を追加 : 組みこみ用コード「wiki用 文字列装飾」と「挿入型コメントアウト」の節を追加 : 「カッコで囲う.zip」のダウンロードリンクを追加 * 2018-08-27 (sukemaru) :・「カッコで囲う (ポップアップメニューあり)」のソースコードを修正 :・case1~8 の "<code>s.CharLeft( false, p2[r].length );</code>" を "<code>s.SetActivePos( s.GetActivePos() - p2[r].length );</code>" に変更 * 2018-08-26 (sukemaru) : 「カッコで囲う (ポップアップメニューなし)」の節を追加 * 2018-08-24 (sukemaru) : ページを新規作成 </div> ---- ◆ '''動作の不具合などお気づきの点があったら [https://www.haijin-boys.com/discussions Mery 公式フォーラム] にてお知らせ下さい。''' ◆(sukemaru) * (2020.05.22 isari) :いつも愛用させていただいております。「カッコで囲う (ポップアップメニュー)」を素のままで使うと、カッコで囲まれた文字列が2つできてしまう、という不具合があるように見受けられます。 :おそらくソースコードの211行目を、すぐ下の if(pos) のブロックに入れ込めば改善するかと思われます。 * (2020-06-03 sukemaru) : >> isari さん <br> ご報告ありがとうございます。<br> 2019-04-07 版での 217 行目にあたる行の削除と、その他の軽微な変更を施した更新版をアップロードしました。
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク