C/C++ の特定シンボルをハイライト by lctags on emacs
IDE には、カーソル位置の変数と、その変数を参照している箇所を ハイライト表示する機能があります。
この機能を利用することで、 関数に何か不具合が起きた時や、関数に処理を追加する時などに、 とある変数がどこでアクセスされているかが追い易くなります。
lctags でも、このハイライト機能を提供しています。
lctags で提供しているハイライト機能と、 IDE で良くあるハイライト機能の差分には以下があります。
- カーソルを動かしてもハイライトが残る
- 複数同時に異なる変数をハイライト可能
- ハイライトする色を指定可能
- 新しく編集した箇所もハイライト可能
- 単なる変数だけでなく、メンバもハイライト可能
デモ
文書よりも実際に動画を見た方が伝わり易い思うので、 以下のリンク先を確認ください。
使用方法
前提として lctags にソースファイルを登録していることが必要です。
ハイライト表示
ハイライト表示させたいシンボル上にカーソルを移動し、 次のいずれかを実行すると、mini buffer でハイライト色の入力を求められるので、 色を指定するか、そのまま Enter するとハイライトされます。 なお、色指定時に C-i すると指定可能な色が確認できます。
- M-x lctags-highlight-at
- C-c l h h
なお、デフォルト色は実行するごとに変わります。
ハイライト終了
ハイライト表示を終了させたい場合は、次のいずれかを実行します。
- M-x lctags-highlight-clear
- C-c l h c
終了すると、デフォルト色は元に戻ります。
ハイライト更新
ハイライト表示させている状態でコードを編集した場合、 編集した部分にハイライトさせるべきシンボルがあっても リアルタイムにはハイライトされません。
ハイライトさせるには、次のいずれかを実行します。
- M-x lctags-highlight-rescan
- C-c l h r
カスタマイズ
ハイライトのデフォルト色をカスタマイズする場合は、 以下のように設定してください。
(setq lctags-search-token-color-list '("OrangeRed4" "OrangeRed3" "dark green" "dark magenta" "dark blue" "yellow4" "DeepSkyBlue4" "gray34"))
リストの要素はいくつでも指定することが可能です。 指定した順に、ハイライトのデフォルト色になります。
指定可能な色は M-x list-colors-display で確認してください。