[Lldb-commits] [lldb] [lldb-dap] Support vscode launch URLs (PR #125843)
Adrian Vogelsgesang via lldb-commits
lldb-commits at lists.llvm.org
Wed Mar 12 05:22:29 PDT 2025
================
@@ -0,0 +1,37 @@
+import * as vscode from "vscode";
+
+export class LaunchUriHandler implements vscode.UriHandler {
+ async handleUri(uri: vscode.Uri) {
+ try {
+ const params = new URLSearchParams(uri.query);
+ if (uri.path == '/launch/config') {
+ const configJson = params.get("config");
+ if (configJson === null) {
+ throw new Error("Missing `config` URI parameter");
+ }
+ // Build the debug config
+ let debugConfig: vscode.DebugConfiguration = {
+ type: 'lldb-dap',
+ request: 'launch',
+ name: '',
+ };
+ Object.assign(debugConfig, JSON.parse(configJson));
----------------
vogelsgesang wrote:
> I meant the type validation in the c++ land, we do some basic checks on the types but we don't really report errors if something fails, for example:
Agree, we should probably verify the launch configurations in C++ more closely. I think we should take a similar approach to #130090 also for our launch config. That would be a different PR, though.
> We could do a basic sanity check on the typescript side of things to see if the URL parameters look like they're correct.
I think we should keep the TypeScript layer as thin as possible. Implementing the validation in C++ has the benefit that it is reusable across clients (not only VS-Code). Furthermore, testing the C++ code is much easier. We have no test infrastructure in place for our TypeScript code
https://github.com/llvm/llvm-project/pull/125843
More information about the lldb-commits
mailing list