[include-fixer] Create a mode in vim integration to show multiple potential headers.
Summary:
Some changes in the patch:
* Add two commandline flags in clang-include-fixer.
* Introduce a IncludeFixerContext for the queried symbol.
* Pull out CreateReplacementsForHeader.
Reviewers: bkramer
Subscribers: klimek, cfe-commits, ioeric
Differential Revision: http://reviews.llvm.org/D20621
llvm-svn: 271258
diff --git a/clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp b/clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp
index 64ce283..3bdddf1 100644
--- a/clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp
+++ b/clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp
@@ -70,11 +70,16 @@
SymbolIndexMgr->addSymbolIndex(
llvm::make_unique<include_fixer::InMemorySymbolIndex>(Symbols));
- std::set<std::string> Headers;
- std::vector<clang::tooling::Replacement> Replacements;
- IncludeFixerActionFactory Factory(*SymbolIndexMgr, Headers, Replacements,
- "llvm");
+ IncludeFixerContext FixerContext;
+ IncludeFixerActionFactory Factory(*SymbolIndexMgr, FixerContext, "llvm");
+
runOnCode(&Factory, Code, "input.cc", ExtraArgs);
+ std::vector<clang::tooling::Replacement> Replacements;
+ if (!FixerContext.Headers.empty()) {
+ Replacements = clang::include_fixer::createInsertHeaderReplacements(
+ Code, "input.cc", FixerContext.Headers.front(),
+ FixerContext.FirstIncludeOffset);
+ }
clang::RewriterTestContext Context;
clang::FileID ID = Context.createInMemoryFile("input.cc", Code);
clang::tooling::applyAllReplacements(Replacements, Context.Rewrite);