From fb4d40858cadb24567a667dda03a898505981ab3 Mon Sep 17 00:00:00 2001 From: Butch Wesley Date: Wed, 17 Aug 2022 00:27:46 -0400 Subject: [PATCH] Add "additional options" to launch debugger with (#363) --- package.json | 11 +++++++++-- src/debugger/debug_session.ts | 3 +++ src/debugger/debugger_context.ts | 1 + src/debugger/mediator.ts | 3 ++- src/debugger/server_controller.ts | 4 ++++ 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 99ee60cfd..323144038 100644 --- a/package.json +++ b/package.json @@ -288,6 +288,11 @@ "type": "string", "description": "Relative path from the godot.project file to a TSCN file. If launch_scene and launch_game_instance are true, and this file is defined, will launch the specified file instead of looking for an active TSCN file.", "default": "" + }, + "additional_options":{ + "type":"string", + "description": "Additional command line arguments.", + "default":"" } } } @@ -301,7 +306,8 @@ "port": 6007, "address": "127.0.0.1", "launch_game_instance": true, - "launch_scene": false + "launch_scene": false, + "additional_options":"" } ], "configurationSnippets": [ @@ -315,7 +321,8 @@ "port": 6007, "address": "127.0.0.1", "launch_game_instance": true, - "launch_scene": false + "launch_scene": false, + "additional_options":"" } } ] diff --git a/src/debugger/debug_session.ts b/src/debugger/debug_session.ts index 77d945f80..71dcdb633 100644 --- a/src/debugger/debug_session.ts +++ b/src/debugger/debug_session.ts @@ -22,6 +22,7 @@ interface LaunchRequestArguments extends DebugProtocol.LaunchRequestArguments { port: number; project: string; scene_file: string; + additional_options: string; } export class GodotDebugSession extends LoggingDebugSession { @@ -235,6 +236,8 @@ export class GodotDebugSession extends LoggingDebugSession { args.port, args.launch_game_instance, args.launch_scene, + args.scene_file, + args.additional_options, get_configuration("scene_file_config", "") || args.scene_file, ]); diff --git a/src/debugger/debugger_context.ts b/src/debugger/debugger_context.ts index facb1ff7b..cb134b31d 100644 --- a/src/debugger/debugger_context.ts +++ b/src/debugger/debugger_context.ts @@ -185,6 +185,7 @@ class GodotConfigurationProvider implements DebugConfigurationProvider { config.address = "127.0.0.1"; config.launch_game_instance = true; config.launch_scene = false; + config.additional_options = ""; } } diff --git a/src/debugger/mediator.ts b/src/debugger/mediator.ts index 75678cdd9..06dda8abe 100644 --- a/src/debugger/mediator.ts +++ b/src/debugger/mediator.ts @@ -32,7 +32,7 @@ export class Mediator { let message_content: string = line[0]; //let message_kind: number = line[1]; - // OutputChannel doesn't give a way to distinguish between a + // OutputChannel doesn't give a way to distinguish between a // regular string (message_kind == 0) and an error string (message_kind == 1). this.output.appendLine(message_content); @@ -149,6 +149,7 @@ export class Mediator { parameters[3], parameters[4], parameters[5], + parameters[6], this.debug_data ); break; diff --git a/src/debugger/server_controller.ts b/src/debugger/server_controller.ts index a564e823a..8a433d777 100644 --- a/src/debugger/server_controller.ts +++ b/src/debugger/server_controller.ts @@ -92,6 +92,7 @@ export class ServerController { launch_instance: boolean, launch_scene: boolean, scene_file: string | undefined, + additional_options: string | undefined, debug_data: GodotDebugData ) { this.debug_data = debug_data; @@ -118,6 +119,9 @@ export class ServerController { } executable_line += ` "${filename}"`; } + if(additional_options){ + executable_line += " " + additional_options; + } executable_line += this.breakpoint_string( debug_data.get_all_breakpoints(), project_path