Language server: prelude support. (#7417)

Support multi-file compilation, and in particular imports of files from
the prelude, in `carbon language_server`.

In order to properly interface with `CompileDriver`, also switch over to
building a proper VFS from the documents we're given.

Assisted-by: Gemini via Antigravity
This commit is contained in:
Richard Smith
2026-06-26 20:16:28 +00:00
committed by GitHub
parent f203a9c18b
commit 6181259cf1
15 changed files with 430 additions and 110 deletions
+2 -2
View File
@@ -82,13 +82,13 @@ static auto ComputeClangConfig(DriverEnv& driver_env,
// Build a library invocation of Clang in order to query its header search
// paths.
std::shared_ptr clang_invocation =
BuildClangInvocation(driver_env.consumer, driver_env.fs,
BuildClangInvocation(*driver_env.consumer, driver_env.fs,
*driver_env.installation, target_str, {});
clang_invocation->getFrontendOpts().DisableFree = false;
// Setup up a driver-style diagnostic engine for the compiler invocation and
// instance below as we won't go past that while computing the include dirs.
Diagnostics::ErrorTrackingConsumer error_tracker(driver_env.consumer);
Diagnostics::ErrorTrackingConsumer error_tracker(*driver_env.consumer);
Diagnostics::NoLocEmitter emitter(&error_tracker);
ClangDriverDiagnosticConsumer diagnostic_consumer(&emitter);
llvm::IntrusiveRefCntPtr<clang::DiagnosticsEngine> diags(