//===---------- TransformerClangTidyCheck.h - clang-tidy ------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_TRANSFORMER_CLANG_TIDY_CHECK_H #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_TRANSFORMER_CLANG_TIDY_CHECK_H #include "../ClangTidyCheck.h" #include "IncludeInserter.h" #include "IncludeSorter.h" #include "clang/ASTMatchers/ASTMatchFinder.h" #include "clang/Tooling/Transformer/Transformer.h" #include <optional> namespace clang::tidy::utils { /// A base class for defining a ClangTidy check based on a `RewriteRule`. // // For example, given a rule `MyCheckAsRewriteRule`, one can define a tidy check // as follows: // // class MyCheck : public TransformerClangTidyCheck { // public: // MyCheck(StringRef Name, ClangTidyContext *Context) // : TransformerClangTidyCheck(MyCheckAsRewriteRule, Name, Context) {} // }; // // `TransformerClangTidyCheck` recognizes this clang-tidy option: // // * IncludeStyle. A string specifying which file naming convention is used by // the source code, 'llvm' or 'google'. Default is 'llvm'. The naming // convention influences how canonical headers are distinguished from other // includes. class TransformerClangTidyCheck : public ClangTidyCheck { … }; } // namespace clang::tidy::utils #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_TRANSFORMER_CLANG_TIDY_CHECK_H