From 06431b2b047a8f135dd4f33cabe612d8858fab18 Mon Sep 17 00:00:00 2001 From: Sam McCall Date: Fri, 9 Aug 2019 20:45:24 +0000 Subject: [PATCH] [clangd] Give absolute path to clang-tidy and include-fixer. HintPath should always be absolute, some URI schemes care. llvm-svn: 368482 --- clang-tools-extra/clangd/ClangdUnit.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/clang-tools-extra/clangd/ClangdUnit.cpp b/clang-tools-extra/clangd/ClangdUnit.cpp index 2c1d465..ced79b9 100644 --- a/clang-tools-extra/clangd/ClangdUnit.cpp +++ b/clang-tools-extra/clangd/ClangdUnit.cpp @@ -304,6 +304,7 @@ ParsedAST::build(std::unique_ptr CI, StoreDiags ASTDiags; std::string Content = Buffer->getBuffer(); + std::string Filename = Buffer->getBufferIdentifier(); // Absolute. auto Clang = prepareCompilerInstance(std::move(CI), PreamblePCH, std::move(Buffer), VFS, ASTDiags); @@ -329,7 +330,7 @@ ParsedAST::build(std::unique_ptr CI, llvm::Optional CTContext; { trace::Span Tracer("ClangTidyInit"); - dlog("ClangTidy configuration for file {0}: {1}", MainInput.getFile(), + dlog("ClangTidy configuration for file {0}: {1}", Filename, tidy::configurationAsText(Opts.ClangTidyOpts)); tidy::ClangTidyCheckFactories CTFactories; for (const auto &E : tidy::ClangTidyModuleRegistry::entries()) @@ -338,7 +339,7 @@ ParsedAST::build(std::unique_ptr CI, tidy::ClangTidyGlobalOptions(), Opts.ClangTidyOpts)); CTContext->setDiagnosticsEngine(&Clang->getDiagnostics()); CTContext->setASTContext(&Clang->getASTContext()); - CTContext->setCurrentFile(MainInput.getFile()); + CTContext->setCurrentFile(Filename); CTFactories.createChecks(CTContext.getPointer(), CTChecks); ASTDiags.setLevelAdjuster([&CTContext](DiagnosticsEngine::Level DiagLevel, const clang::Diagnostic &Info) { @@ -385,15 +386,15 @@ ParsedAST::build(std::unique_ptr CI, llvm::Optional FixIncludes; auto BuildDir = VFS->getCurrentWorkingDirectory(); if (Opts.SuggestMissingIncludes && Index && !BuildDir.getError()) { - auto Style = getFormatStyleForFile(MainInput.getFile(), Content, VFS.get()); + auto Style = getFormatStyleForFile(Filename, Content, VFS.get()); auto Inserter = std::make_shared( - MainInput.getFile(), Content, Style, BuildDir.get(), + Filename, Content, Style, BuildDir.get(), &Clang->getPreprocessor().getHeaderSearchInfo()); if (Preamble) { for (const auto &Inc : Preamble->Includes.MainFileIncludes) Inserter->addExisting(Inc); } - FixIncludes.emplace(MainInput.getFile(), Inserter, *Index, + FixIncludes.emplace(Filename, Inserter, *Index, /*IndexRequestLimit=*/5); ASTDiags.contributeFixes([&FixIncludes](DiagnosticsEngine::Level DiagLevl, const clang::Diagnostic &Info) { -- 2.7.4