@@ -64,9 +64,7 @@ GlobalCompilationDatabase::getFallbackCommand(PathRef File) const {
6464 if (FileExtension.empty () || FileExtension == " .h" )
6565 Argv.push_back (" -xobjective-c++-header" );
6666 Argv.push_back (std::string (File));
67- tooling::CompileCommand Cmd (FallbackWorkingDirectory
68- ? *FallbackWorkingDirectory
69- : llvm::sys::path::parent_path (File),
67+ tooling::CompileCommand Cmd (llvm::sys::path::parent_path (File),
7068 llvm::sys::path::filename (File), std::move (Argv),
7169 /* Output=*/ " " );
7270 Cmd.Heuristic = " clangd fallback" ;
@@ -351,8 +349,7 @@ bool DirectoryBasedGlobalCompilationDatabase::DirectoryCache::load(
351349
352350DirectoryBasedGlobalCompilationDatabase::
353351 DirectoryBasedGlobalCompilationDatabase (const Options &Opts)
354- : GlobalCompilationDatabase(Opts.FallbackWorkingDirectory), Opts(Opts),
355- Broadcaster(std::make_unique<BroadcastThread>(*this )) {
352+ : Opts(Opts), Broadcaster(std::make_unique<BroadcastThread>(*this )) {
356353 if (!this ->Opts .ContextProvider )
357354 this ->Opts .ContextProvider = [](llvm::StringRef) {
358355 return Context::current ().clone ();
@@ -463,21 +460,6 @@ DirectoryBasedGlobalCompilationDatabase::lookupCDB(
463460 return Result;
464461}
465462
466- void DirectoryBasedGlobalCompilationDatabase::Options::
467- applyFallbackWorkingDirectory (
468- std::optional<std::string> FallbackWorkingDirectory) {
469- if (FallbackWorkingDirectory)
470- this ->FallbackWorkingDirectory = *FallbackWorkingDirectory;
471- else {
472- // Clangd is running in strong workspace mode but the client didn't
473- // specify a workspace path in the `initialize` request.
474- // Fallback to current working directory.
475- SmallString<256 > CWD;
476- llvm::sys::fs::current_path (CWD);
477- this ->FallbackWorkingDirectory = std::string (CWD);
478- }
479- }
480-
481463// The broadcast thread announces files with new compile commands to the world.
482464// Primarily this is used to enqueue them for background indexing.
483465//
@@ -777,10 +759,9 @@ DirectoryBasedGlobalCompilationDatabase::getProjectModules(PathRef File) const {
777759
778760OverlayCDB::OverlayCDB (const GlobalCompilationDatabase *Base,
779761 std::vector<std::string> FallbackFlags,
780- CommandMangler Mangler,
781- std::optional<std::string> FallbackWorkingDirectory)
782- : DelegatingCDB(Base, FallbackWorkingDirectory),
783- Mangler(std::move(Mangler)), FallbackFlags(std::move(FallbackFlags)) {}
762+ CommandMangler Mangler)
763+ : DelegatingCDB(Base), Mangler(std::move(Mangler)),
764+ FallbackFlags(std::move(FallbackFlags)) {}
784765
785766std::optional<tooling::CompileCommand>
786767OverlayCDB::getCompileCommand (PathRef File) const {
@@ -863,20 +844,16 @@ OverlayCDB::getProjectModules(PathRef File) const {
863844 return MDB;
864845}
865846
866- DelegatingCDB::DelegatingCDB (
867- const GlobalCompilationDatabase *Base,
868- std::optional<std::string> FallbackWorkingDirectory)
869- : GlobalCompilationDatabase(FallbackWorkingDirectory), Base(Base) {
847+ DelegatingCDB::DelegatingCDB (const GlobalCompilationDatabase *Base)
848+ : Base(Base) {
870849 if (Base)
871850 BaseChanged = Base->watch ([this ](const std::vector<std::string> Changes) {
872851 OnCommandChanged.broadcast (Changes);
873852 });
874853}
875854
876- DelegatingCDB::DelegatingCDB (
877- std::unique_ptr<GlobalCompilationDatabase> Base,
878- std::optional<std::string> FallbackWorkingDirectory)
879- : DelegatingCDB(Base.get(), FallbackWorkingDirectory) {
855+ DelegatingCDB::DelegatingCDB (std::unique_ptr<GlobalCompilationDatabase> Base)
856+ : DelegatingCDB(Base.get()) {
880857 BaseOwner = std::move (Base);
881858}
882859
0 commit comments