Sylera
検索文字列コンボボックス内の半角で区切られた文字列の中の一つをハイライトするAHKスクリプト
ぷりんきぴあさんの10/14の日記のAHKスクリプトをちょっと弄っただけなんですけど。普通にハイライトするとコンボボックス内の半角スペースで区切られた文字列が全部強調されるんですが、特定の文字列だけをハイライトしたい時がたまにあるものでして。通常通りにハイライトさせることもできます。使う人によっては便利かも。このスクリプトと合わせてツールバーに組み込むといい感じです(スクリーンショット)。
#NoTrayIconControlGetText, s_words, Edit3, ahk_class RLWindow
If s_words =
{
MsgBox, 検索文字列コンボボックスに文字列がありません。
return
}
;全角スペースがあったら半角スペースに直す
IfInString,s_words,
{
StringReplace,s_words,s_words, ,%A_Space%,ALL
ControlSetText, Edit3,%s_words%,ahk_class RLWindow
}
StringSplit, s_word_array, s_words, %A_Space%
;一個しかない場合、すぐにハイライト
If s_word_array0 = 1
{
Send,^h ;CmdSearchTextComboboxHilight = Ctrl+Hの場合
return
}
;ポップアップメニュー作成
Menu, s_words_list, Add, %s_words%, p_highlight ;通常通りのハイライト
Loop, %s_word_array0%
{
item := s_word_array%a_index%
Menu, s_words_list, Add, %item%, p_highlight
}
Menu, s_words_list, Show
return;ハイライト
p_highlight:
WinActivate, ahk_class RLWindow
ControlSetText, Edit3, %A_ThisMenuItem%,ahk_class RLWindow
Send,^h ;CmdSearchTextComboboxHilight = Ctrl+Hの場合
ControlSetText, Edit3,%s_words%,ahk_class RLWindow
return
とりあえず、自分の思ったとおりに動作しました。
Send,^h ;CmdSearchTextComboboxHilight = Ctrl+Hの場合
のところはCmdSearchTextComboboxHilightのショートカットキーを設定してください。
SyleraFindPop
元の文字列を5件保存するようにした
「元に戻す」ができるようになったので、ツールバーに組み込んでみることにしました。上のスクリプトの
ControlSetText, Edit3,%s_words%,ahk_class RLWindow
の部分は最初削ってたんですけど(ハイライトしたやつをすぐにGoogle検索することもあるし)、SyleraFindPop使えばいいかなぁということで残しときました。ん、削っておいて後でSyleraFindPopって元に戻すという手もあるか。とうか今回のバージョンアップで簡易検索履歴っぽくなりましたね。
GRE for Sylera(1.8系)
に変更してみた。マウスジェスチャが効かなくなるとかいう情報もあったけど自分の環境では普通に動作してる模様。