サクラエディタのマクロの機能で実現可能なのですが、標準の機能として実装して欲しいです。
ダブルクリックして選択範囲と同じ単語をハイライト - Macro/投稿/116 - SakuraEditorWiki
このマクロの不満点としては、検索履歴にどんどん残っていくのが不満なのです。
設定で
残すか``残さないかを決めることが出来たら嬉しいのです。


比較として Notepad++ を挙げましたが、こちらはハイライトした単語だけが
検索文字列として配置されるだけで検索履歴には残りませんでした。
あとマクロで実現していますが、
全角スペースや半角スペースやTabスペース等がわかると嬉しいので、
空白文字はハイライトされて欲しいことも明言しておきます。
@arigayas さん、Issue立てありがとうございます。
1点
全角スペースや半角スペースやTabスペース等がわかると嬉しいので、
こちらについては、各々タイプ別設定のカラーで、TAB記号、半角空白、日本語空白で色付けすると、判別可能ですが、こちらで代替えできますでしょうか?
長文のドキュメントを編集する時(1)に
通常時は空白文字の色と背景色が普通が良くて(2)

スクリーンショットの説明:_半角スペース2個、Tabスペース、abc abc def ghi jkl、半角スペース1個・・・_
ダブルクリックで(TAB記号、)半角空白、日本語空白がハイライトされると
空白文字で字下げが統一されているのかどうか一目でわかったり、
余計な空白文字があるのかどうかわかるので代替えはちょっと考えにくいです・・・。

*1:例えばニコニコ大百科など多人数で編集するサイト
*2:色のセンスが無くてゴチャゴチャしてしまうのでなるべく使用される色数は少ない方が読みやすいですし。
@arigayas さん
ありがとうございます。前向きに検討させていただきます。
だんだんと「欲しい機能」をあげていただけるようになってきたように感じています。
とても嬉しい限りです。
実装できるメンバーもレビューできるメンバーも限られているので
実現に向けてすぐに動けないのが 「まだまだだね」なところです。
Macro/投稿/116 - SakuraEditorWiki
このマクロの不満点としては、検索履歴にどんどん残っていくのが不満なのです。
ちょっとだけ中身見ました。
っていうかこれ、.macファイルですね・・・(PPA機能廃止すると使えなくなるじゃん :cry:
検索履歴に残らないようにする方法がありそうだったので
ちょっとだけ追ってみましたところ、壊れてるみたいでした。
C++側修正しないと履歴には残る感じです。
検索機能には近々手を入れますんで一緒に対応しようと思います。
もうしばらくお待ちください。
以下、調査で発覚したバグの内容説明です。
マニュアルに従って、履歴に登録しない版javascriptマクロを書くとこんな感じになります。
コードなのでリンク効いてないですが、サクラエディタにコピペすれば(ry
// 現在位置の単語選択
// https://sakura-editor.github.io/help/HLP000045.html
SelectWord();
// 検索マークの切替
// https://sakura-editor.github.io/help/HLP000136.html
//SearchClearMark(); // ←元マクロはこれになってた
// 現在の選択状態を取得
// https://sakura-editor.github.io/help/HLP000268.html#IsTextSelected
if (IsTextSelected() == 1) {
// 選択中文字列を取得
// https://sakura-editor.github.io/help/HLP000268.html#GetSelectedString
var word = GetSelectedString();
// 次を検索(オプション:単語単位+履歴に登録しない)
// https://sakura-editor.github.io/help/HLP000061.html
SearchNext(word, 0x01 | 0x800);
}
これを動かしてみたところ、検索履歴にシッカリ登録されてしまいました。
マクロからの「検索」機能には、「検索履歴に登録しない」オプションがあるはずですが、
どうも動作していないっぽいです。
原因としては、ここのパラメータの取り方が間違ってそうです。
また、以下のコードにより検索ワードは履歴に登録される仕様に変わった模様です。
う~む。
前向きに検討していただきありがとうございます!!
恐らく次の2.4.0がリリースされたら機能追加要望が増えると思います。
使い回しのやっつけですがこういうことではないのですか?
// 【FindNextSelected.js】
// Visual Studio の[編集.次を検索選択範囲(Ctrl+F3)]もどき
var SearchFlag = {
WORD_ONLY:1, CASE_SENSITIVE:2, USE_REGEX:4, SHOW_NOTFOUNDMSG:8,
AUTOCLOSE_DIALOG:16, RETRY_FROMTOP:32, RETRY_FROMBOTTOM:32
};
function QuoteRegexMeta(str)
{
return str.replace(/[\\[\](){}*+?.^$]/g, "\\$&");
}
function main()
{
var mysetting = SearchFlag.WORD_ONLY | SearchFlag.USE_REGEX |
SearchFlag.AUTOCLOSE_DIALOG | SearchFlag.RETRY_FROMTOP;
if (! Editor.IsTextSelected()) {
Editor.SelectWord();
// return;
}
var searchstr = (mysetting & SearchFlag.USE_REGEX ? QuoteRegexMeta : String)(Editor.GetSelectedString());
Editor.Left();
Editor.SearchNext(searchstr, mysetting|0x800);
// Editor.CurLineCenter();
}
main();
検索履歴と、検索文字列入力欄の初期値は区別する必要があるみたいです。
@ds14050 さん
検索履歴に残らないけど検索文字列入力欄にダブルクリックして選択した文字列が入るマクロを
作成していただき誠にありがとうございます!!
Most helpful comment
使い回しのやっつけですがこういうことではないのですか?
検索履歴と、検索文字列入力欄の初期値は区別する必要があるみたいです。