LLVM/clang-apply-replacements
表示
< LLVM
はじめに
[編集]clang-apply-replacementsは、Clangツールチェインの一部として提供されるコマンドラインツールであり、Clangツール(clang-tidy など)によって生成されたソースコードの修正提案を適用するために使用されます。本ハンドブックでは、clang-apply-replacements(1)の基本的な使い方から応用例までを解説します。
Clang-Apply-Replacementsの概要
[編集]Clang-Apply-Replacementsとは
[編集]clang-apply-replacementsは、Clangのリファクタリングツールや静的解析ツールが生成する修正情報を適用するツールです。- 修正情報はYAML形式のリプレースメントファイルとして保存され、
clang-tidyなどのツールが生成します。 - 手動でコードを変更する必要がなく、大規模なコードベースに対する一括修正が可能です。
Clang-Apply-Replacementsのインストール
[編集]FreeBSDでのインストール
[編集]FreeBSDのベースシステムにはclang-apply-replacementsは含まれていないので、パッケージをインストールします。
doas pkg install llvm
macOSでのインストール
[編集]$ brew install llvm
Linuxでのインストール (例: Debian系)
[編集]$ sudo apt install clang-tools
基本的な使い方
[編集]修正提案の適用
[編集]clang-tidyなどを使用して修正提案を生成する:$ clang-tidy -fix -export-fixes=fixes.yaml source.cpp
clang-apply-replacementsを使用して修正を適用する:$ clang-apply-replacements .
.はカレントディレクトリ内の修正ファイルを適用することを意味します。
修正の適用対象を指定
[編集]特定のディレクトリ内の修正を適用したい場合:
$ clang-apply-replacements path/to/project
デバッグ出力の有効化
[編集]適用される修正を確認するため、詳細な出力を有効にすることができます。
$ clang-apply-replacements -debug .
主要オプション
[編集]主要オプション オプション 説明 -overwrite元のファイルを直接書き換える -style=fileclang-formatのスタイル設定を適用-debugデバッグ出力を有効化 -remove-change-desc-files適用後にリプレースメントファイルを削除
応用例
[編集]大規模なコードベースへの適用
[編集]複数のファイルに対して一括修正を適用するには、プロジェクトディレクトリを指定します。
$ clang-apply-replacements my_project/
CI/CDでの自動適用
[編集]CI/CDパイプラインでclang-tidyと組み合わせてコード品質を維持できます。
$ clang-tidy -fix -export-fixes=fixes.yaml my_project/**/*.cpp $ clang-apply-replacements my_project/
まとめ
[編集]本ハンドブックでは、clang-apply-replacementsの基本的な使い方、主要オプション、応用例について解説しました。clang-tidy などのClangツールと組み合わせることで、コードの品質向上やリファクタリングの効率化を実現できます。