Sylera

検索文字列コンボボックス内の半角で区切られた文字列の中の一つをハイライトするAHKスクリプト


ぷりんきぴあさんの10/14の日記AHKスクリプトをちょっと弄っただけなんですけど。普通にハイライトするとコンボボックス内の半角スペースで区切られた文字列が全部強調されるんですが、特定の文字列だけをハイライトしたい時がたまにあるものでして。通常通りにハイライトさせることもできます。使う人によっては便利かも。このスクリプトと合わせてツールバーに組み込むといい感じです(スクリーンショット)。


#NoTrayIcon

ControlGetText, 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系)


に変更してみた。マウスジェスチャが効かなくなるとかいう情報もあったけど自分の環境では普通に動作してる模様。