公開技術情報

[English] [Japanese]

C/C++ ソースコードをリファクタリング by lctags on emacs (リネーム編)

lctags は、変数名、引数名のリネームをサポートします。

多くの場合は、emacs が提供している文字列置換でも問題なくリネームできますが、 リネーム対象と同じ名前のメンバが存在しているような場合、 単純な文字列置換では意図しないものまでリネームしてしまうことがあります。

lctags では、構文解析した情報を基にリネームを行なうため、確実にリネームできます。

デモ

https://www.youtube.com/watch?v=HovGT2yTUPA

lctags で引数をリネームしているデモ動画です。 この動画では、引数と同名のメンバ名が存在していますが、 メンバ名は変わらずに指定の変数だけがリネームされています。

使用方法

リネームしたい変数の位置にカーソルを合せ、次のいずれかを実行します。

  • M-x lctags-rename-at
  • C-c l r r

mini-buffer に変数名が表示されるので、これを編集し RET します。

指定された変数名に置換されます。

このとき、置換された変数はハイライト表示されます。

制限

lctags は、リネーム対象を引数と変数に制限しています。 そのため、メンバーや関数等のリネームはできません。