llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-lldb

Author: None (royitaqi)

<details>
<summary>Changes</summary>

This allows other debugger extensions to leverage the `lldb-dap` extension's 
settings and logic (e.g. "Server Mode").

Other debugger extensions can invoke these commands to resolve configuration, 
create adapter descriptor, and get the `lldb-dap` process for state tracking, 
additional interaction, and telemetry.


---
Full diff: https://github.com/llvm/llvm-project/pull/151827.diff


3 Files Affected:

- (modified) lldb/tools/lldb-dap/src-ts/debug-adapter-factory.ts (+10) 
- (modified) lldb/tools/lldb-dap/src-ts/debug-configuration-provider.ts (+23-1) 
- (modified) lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts (+7) 


``````````diff
diff --git a/lldb/tools/lldb-dap/src-ts/debug-adapter-factory.ts 
b/lldb/tools/lldb-dap/src-ts/debug-adapter-factory.ts
index b5db45b56d6a6..fb1c928ede5fd 100644
--- a/lldb/tools/lldb-dap/src-ts/debug-adapter-factory.ts
+++ b/lldb/tools/lldb-dap/src-ts/debug-adapter-factory.ts
@@ -198,6 +198,16 @@ export async function createDebugAdapterExecutable(
 export class LLDBDapDescriptorFactory
   implements vscode.DebugAdapterDescriptorFactory
 {
+  constructor() {
+    vscode.commands.registerCommand(
+      "lldb-dap.createDebugAdapterDescriptor",
+      (
+        session: vscode.DebugSession,
+        executable: vscode.DebugAdapterExecutable | undefined,
+      ) => this.createDebugAdapterDescriptor(session, executable),
+    );
+  }
+
   async createDebugAdapterDescriptor(
     session: vscode.DebugSession,
     executable: vscode.DebugAdapterExecutable | undefined,
diff --git a/lldb/tools/lldb-dap/src-ts/debug-configuration-provider.ts 
b/lldb/tools/lldb-dap/src-ts/debug-configuration-provider.ts
index 316ffaf47c3d2..59d3d3c99e42d 100644
--- a/lldb/tools/lldb-dap/src-ts/debug-configuration-provider.ts
+++ b/lldb/tools/lldb-dap/src-ts/debug-configuration-provider.ts
@@ -71,7 +71,29 @@ const configurations: Record<string, DefaultConfig> = {
 export class LLDBDapConfigurationProvider
   implements vscode.DebugConfigurationProvider
 {
-  constructor(private readonly server: LLDBDapServer) {}
+  constructor(private readonly server: LLDBDapServer) {
+    vscode.commands.registerCommand(
+      "lldb-dap.resolveDebugConfiguration",
+      (
+        folder: vscode.WorkspaceFolder | undefined,
+        debugConfiguration: vscode.DebugConfiguration,
+        token?: vscode.CancellationToken,
+      ) => this.resolveDebugConfiguration(folder, debugConfiguration, token),
+    );
+    vscode.commands.registerCommand(
+      "lldb-dap.resolveDebugConfigurationWithSubstitutedVariables",
+      (
+        folder: vscode.WorkspaceFolder | undefined,
+        debugConfiguration: vscode.DebugConfiguration,
+        token?: vscode.CancellationToken,
+      ) =>
+        this.resolveDebugConfigurationWithSubstitutedVariables(
+          folder,
+          debugConfiguration,
+          token,
+        ),
+    );
+  }
 
   async resolveDebugConfiguration(
     folder: vscode.WorkspaceFolder | undefined,
diff --git a/lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts 
b/lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts
index 79573ec7342b1..9ceedeb39b9ed 100644
--- a/lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts
+++ b/lldb/tools/lldb-dap/src-ts/lldb-dap-server.ts
@@ -12,6 +12,13 @@ export class LLDBDapServer implements vscode.Disposable {
   private serverProcess?: child_process.ChildProcessWithoutNullStreams;
   private serverInfo?: Promise<{ host: string; port: number }>;
 
+  constructor() {
+    vscode.commands.registerCommand(
+      "lldb-dap.getServerProcess",
+      () => this.serverProcess,
+    );
+  }
+
   /**
    * Starts the server with the provided options. The server will be restarted 
or reused as
    * necessary.

``````````

</details>


https://github.com/llvm/llvm-project/pull/151827
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to