1

Eclipse(特にEclipse CDT)で変数の命名規則を変更する方法はありますか?たとえば、need_fooのような名前の変数を検索して置換し、それをNeedFooに変更できますか?

アンダースコアの追加と削除はもちろん簡単ですが、大文字と小文字を変更する方法がわかりません。Perlの正規表現には大文字と小文字の修飾子が\uありますが、Eclipseにはないようです。\l

4

1 に答える 1

1

CDT には、複数の非準拠関数名を一括で名前変更する自動化された方法はありません。ただし、この種のことを指摘するように設計されたコード分析ルールがあります。オンライン ヘルプで説明されているEclipse Regex を使用します。これにより、問題ビューに「情報」レベル マーカーが表示されます。

それらが機能する方法は、各関数名に対して正規表現を照合し、一致が返されない場合にエラー/警告/情報を発生させることです。「ウィンドウ->設定->C/C++->コード分析」からアクセスできます。スクロール リストの半分ほど下にあります (Eclipse Indigo の場合)。

\u2 番目の段落に直接答えるために、Eclipse には Perl のandに相当するものはありません\l。最も近いのは (?ismd-ismd) です。これにより、大文字と小文字に基づいて一致を有効にすることができます。

コード分​​析ツールが 5 つまたは 50,000 のエラーを返すかどうかに応じて:

名前を変更する関数定義はわずか

標準のリファクタリング名前変更ツールを使用できます。関数名を右クリックし、「リファクタリング -> 名前の変更」を選択すると、その関数へのすべての参照が新しい関数名に置き換えられます (異なるスコープを尊重します)。

多くの多くのエラー

これは... あまり良くありません。組み込みのメソッドがないため、外部で行う必要があります。私がとる最初のアプローチは、これを行う既存のプラグインがあるかどうかを確認することです。

それができない場合、コード分析ツールを使用して不適合な関数名を特定し、その出力をカスタム Perl スクリプトへの入力として使用することができるでしょうか? いくつかの段階でそれを行うことができます:

void FooBar(void) {}
int main(int argc, char *argv[])
{
    FooBar();
    return 0;
}

1) コード分析を実行し、警告をコピーしてテキスト ファイルに貼り付けます。

Bad function name "FooBar" (pattern /^(?-i:([a-z]+_[A-Z])|[a-z])(?i:[a-z]*)\z/) main.c  /TestMultiThread    line 47 Code Analysis Problem

2) 上記のエラーを perl スクリプトの入力として使用して、関数定義fooBar()-->を変更しFooBar()ます (不適切な関数名、ファイル名、および行番号があることに注意してください)。

3) それをコンパイルし、コンパイラからの出力を使用してundefined reference to fooBar()参照の名前を変更します。

undefined reference to `FooBar' main.c  /TestMultiThread    line 50 C/C++ Problem

このメソッドには、コンパイルが「早期」に終了するためにコンパイラが未定義の参照の部分的なリストを提供するなど、いくつかの欠点があります。この場合、複数回実行する必要があります。

もう 1 つ確認すべきことは、リファクタリング スクリプト (リファクタリング --> スクリプトの適用) です。

全体として、Eclipse CDT のリファクタリング ツールは Java のリファクタリング ツールほど強力ではないことがわかりました (私の記憶では)。ただし、メモ帳よりは優れています (また、CDT を叩くのではなく、素晴らしい開発環境です!)

于 2012-05-20T23:57:56.027 に答える