公開技術情報

[English] [Japanese]

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 で確認してください。