xref: /llvm-project/clang-tools-extra/clang-tidy/abseil/StringFindStrContainsCheck.h (revision 4718da506091a37ca4863d979bc541e359b79b10)
17cfdff7bSTom Lokovic //===--- StringFindStrContainsCheck.h - clang-tidy---------------*- C++ -*-===//
27cfdff7bSTom Lokovic //
37cfdff7bSTom Lokovic // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
47cfdff7bSTom Lokovic // See https://llvm.org/LICENSE.txt for license information.
57cfdff7bSTom Lokovic // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
67cfdff7bSTom Lokovic //
77cfdff7bSTom Lokovic //===----------------------------------------------------------------------===//
87cfdff7bSTom Lokovic 
97cfdff7bSTom Lokovic #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ABSEIL_STRINGFINDSTRCONTAINSCHECK_H
107cfdff7bSTom Lokovic #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ABSEIL_STRINGFINDSTRCONTAINSCHECK_H
117cfdff7bSTom Lokovic 
12860aefd0SNathan James #include "../ClangTidyCheck.h"
137cfdff7bSTom Lokovic #include "../utils/TransformerClangTidyCheck.h"
147cfdff7bSTom Lokovic 
15*4718da50SCarlos Galvez namespace clang::tidy::abseil {
167cfdff7bSTom Lokovic 
177cfdff7bSTom Lokovic /// Finds s.find(...) == string::npos comparisons (for various string-like
187cfdff7bSTom Lokovic /// types) and suggests replacing with absl::StrContains.
197cfdff7bSTom Lokovic ///
207cfdff7bSTom Lokovic /// For the user-facing documentation see:
216e566bc5SRichard /// http://clang.llvm.org/extra/clang-tidy/checks/abseil/string-find-str-contains.html
227cfdff7bSTom Lokovic class StringFindStrContainsCheck : public utils::TransformerClangTidyCheck {
237cfdff7bSTom Lokovic public:
247cfdff7bSTom Lokovic   StringFindStrContainsCheck(StringRef Name, ClangTidyContext *Context);
257cfdff7bSTom Lokovic   bool isLanguageVersionSupported(const LangOptions &LangOpts) const override;
267cfdff7bSTom Lokovic   void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
277cfdff7bSTom Lokovic 
287cfdff7bSTom Lokovic private:
2912cb5405SNathan James   const std::vector<StringRef> StringLikeClassesOption;
3012cb5405SNathan James   const StringRef AbseilStringsMatchHeaderOption;
317cfdff7bSTom Lokovic };
327cfdff7bSTom Lokovic 
33*4718da50SCarlos Galvez } // namespace clang::tidy::abseil
347cfdff7bSTom Lokovic 
357cfdff7bSTom Lokovic #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ABSEIL_STRINGFINDSTRCONTAINSCHECK_H
36