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