diff --git a/package.json b/package.json index 497a0c071..16453dcb1 100644 --- a/package.json +++ b/package.json @@ -273,6 +273,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":"" } } } @@ -286,7 +291,8 @@ "port": 6007, "address": "127.0.0.1", "launch_game_instance": true, - "launch_scene": false + "launch_scene": false, + "additional_options":"" } ], "configurationSnippets": [ @@ -300,7 +306,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 1e0cbea75..5f5a24e1c 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