1 件の投稿を表示中 (合計 3 個)
- 作成者投稿
- 2021年9月20日 9:15 am #30145omusubi参加者
こちらのエントリーに触発されて、マクロを作っています。
こちらの回答で江村さんの作られたマクロをベースにして、連続で動かせるように選択範囲の維持、元に戻しやすいように処理の履歴を束ねたりというアレンジをしています。
その中で、設定のプロパティの強調(2)の括弧/引用符の自動補完がオンになっていて、対象にしているかっこの開始かっこを選択してこのマクロで動かそうしたところ、その都度閉じかっこが補完されてしまうので増殖してしまうようになってしまいました。
このマクロの中では一時的にその補完をスキップするようにしたいと思っていますが可能でしょうか?document.Config.Highlight.AutoCompleteBracketsというプロパティを見つけたので添付のコードのように、一時的にfalseにしてみましたがうまく動きませんでした。
お忙しいところすみませんがアドバイスいただけないでしょうか?【環境】
Windows 10 Pro 21H1(19043.1202) x64
EmEditor Pro 64-bit Portable v20.1.2// ShiftRight.jsee // Alt+Rightに割り当て var text = document.selection.text; var len = text.length; var prevAutoCompleteBrackets = false var prevCombineHistory = false; // 選択範囲がひとつ、改行を含まない場合のみ動作させる if (document.selection.Count == 0 && text.indexOf("\n") == -1) { // 選択範囲が0の場合は、カーソル移動する if (len == 0) { document.selection.CharRight(false,1); } else { Redraw = false; prevAutoCompleteBrackets = document.Config.Highlight.AutoCompleteBrackets; document.Config.Highlight.AutoCompleteBrackets = false; prevCombineHistory = CombineHistory; CombineHistory = true; document.selection.Delete(1); document.selection.CharRight(false,1); document.selection.Text = text; document.selection.CharLeft(true, len); CombineHistory = prevCombineHistory; document.Config.Highlight.AutoCompleteBrackets = prevAutoCompleteBrackets; Redraw = true; } } else { status = "選択範囲が複数、または改行コードを含んでいます"; }
13行目と22行目のCharRightをCharLeftに置き換えたShiftLeft.jseeも作成してAlt+Leftに割り当てています。
2021年10月20日 5:57 am #30239Yutaka Emuraキーマスターいつもお世話になっております。
一時的に、AutoCompleteBrackets を false にするには、以下のようにしてください。
cfg = document.Config; prevAutoCompleteBrackets = cfg.Highlight.AutoCompleteBrackets; cfg.Highlight.AutoCompleteBrackets = false; cfg.Save(); // ここで必要な処理 // 以下で元に戻す cfg.Highlight.AutoCompleteBrackets = prevAutoCompleteBrackets; cfg.Save();
よろしくお願い致します。
2021年10月30日 11:11 pm #30255omusubi参加者江村さん、ご回答ありがとうございました。
設定は一旦保存する必要があったんですね。
教えていただいたコードを組み込んで、思っていた動作になりました。どうもありがとうございました。
- 作成者投稿
1 件の投稿を表示中 (合計 3 個)
- このトピックに返信するにはログインしてください。