Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ダブルクリックして選択範囲と同じ単語をハイライトしてほしい #490

Open
arigayas opened this issue Sep 27, 2018 · 6 comments
Labels
document ドキュメント enhancement ■機能追加

Comments

@arigayas
Copy link

サクラエディタのマクロの機能で実現可能なのですが、標準の機能として実装して欲しいです。
ダブルクリックして選択範囲と同じ単語をハイライト - Macro/投稿/116 - SakuraEditorWiki

このマクロの不満点としては、検索履歴にどんどん残っていくのが不満なのです。
設定で

  • ダブルクリックして選択範囲と同じ単語をハイライトするか否か
  • 検索履歴に残すか``残さないか

を決めることが出来たら嬉しいのです。

サクラエディタのマクロ

sakuraeditor_doubleclick

Notepad++ダブルクリックして選択範囲

notepad doubleclick

比較として Notepad++ を挙げましたが、こちらはハイライトした単語だけが
検索文字列として配置されるだけで検索履歴には残りませんでした。

あとマクロで実現していますが、
全角スペースや半角スペースやTabスペース等がわかると嬉しいので、
空白文字はハイライトされて欲しいことも明言しておきます。

@KENCHjp
Copy link
Member

KENCHjp commented Sep 28, 2018

@arigayas さん、Issue立てありがとうございます。
1点

全角スペースや半角スペースやTabスペース等がわかると嬉しいので、

こちらについては、各々タイプ別設定のカラーで、TAB記号、半角空白、日本語空白で色付けすると、判別可能ですが、こちらで代替えできますでしょうか?

@arigayas
Copy link
Author

arigayas commented Sep 28, 2018

長文のドキュメントを編集する時(*1)に
通常時は空白文字の色と背景色が普通が良くて(*2)
image
スクリーンショットの説明:半角スペース2個、Tabスペース、abc abc def ghi jkl、半角スペース1個・・・

ダブルクリックで(TAB記号、)半角空白、日本語空白がハイライトされると
空白文字で字下げが統一されているのかどうか一目でわかったり、
余計な空白文字があるのかどうかわかるので代替えはちょっと考えにくいです・・・。
image

*1:例えばニコニコ大百科など多人数で編集するサイト
*2:色のセンスが無くてゴチャゴチャしてしまうのでなるべく使用される色数は少ない方が読みやすいですし。

@berryzplus
Copy link
Contributor

@arigayas さん
ありがとうございます。前向きに検討させていただきます。

だんだんと「欲しい機能」をあげていただけるようになってきたように感じています。
とても嬉しい限りです。

実装できるメンバーもレビューできるメンバーも限られているので
実現に向けてすぐに動けないのが 「まだまだだね」なところです。

Macro/投稿/116 - SakuraEditorWiki

このマクロの不満点としては、検索履歴にどんどん残っていくのが不満なのです。

ちょっとだけ中身見ました。
っていうかこれ、.macファイルですね・・・(PPA機能廃止すると使えなくなるじゃん 😢

検索履歴に残らないようにする方法がありそうだったので
ちょっとだけ追ってみましたところ、壊れてるみたいでした。
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);
}

これを動かしてみたところ、検索履歴にシッカリ登録されてしまいました。
マクロからの「検索」機能には、「検索履歴に登録しない」オプションがあるはずですが、
どうも動作していないっぽいです。


原因としては、ここのパラメータの取り方が間違ってそうです。

bool bAddHistory = (0 == (lFlag & 0x800));
bool bBackupFlag = (0 != (lFlag & 0x1000));

また、以下のコードにより検索ワードは履歴に登録される仕様に変わった模様です。

// 2004.05.30 Moca CEditViewの現在設定されている検索パターンを使えるように
if(bChangeCurRegexp && !m_pCommanderView->ChangeCurRegexp())return;

う~む。

@berryzplus berryzplus added enhancement ■機能追加 document ドキュメント labels Sep 28, 2018
@arigayas
Copy link
Author

前向きに検討していただきありがとうございます!!
恐らく次の2.4.0がリリースされたら機能追加要望が増えると思います。

@ds14050
Copy link
Contributor

ds14050 commented Oct 2, 2018

使い回しのやっつけですがこういうことではないのですか?

// 【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();

検索履歴と、検索文字列入力欄の初期値は区別する必要があるみたいです。

@arigayas
Copy link
Author

arigayas commented Oct 3, 2018

@ds14050 さん
検索履歴に残らないけど検索文字列入力欄にダブルクリックして選択した文字列が入るマクロを
作成していただき誠にありがとうございます!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
document ドキュメント enhancement ■機能追加
Projects
None yet
Development

No branches or pull requests

4 participants