================
@@ -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
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits