-
Notifications
You must be signed in to change notification settings - Fork 645
Debug: add "go run ." support #3096
Comments
I think this is a valid feature request. I arrived late so I am missing the original motivation. Currently |
Originally Ctrl+F5 started debugging as well. In #2085 they made it to run the file currently opened in editor. I suggest to extend the change made in #2085 and support not only simple the-whole-program-is-one-file case but make Ctrl+F5 more general. Really looking forward to having this. |
How does In #2085, my assumption was that the |
@ramya-rao-a
|
That is good to hear.
Without introducing any new settings or configurations, this would involve first identifying that there are such files which we generally avoid doing i.e parsing all files in the current folder which can get expensive I have pushed a change to respect the folder path passed to the When one doesnt have a launch.json file at all, then the default value has always been the folder the current file belongs to. Please try out the latest beta version of this extension which has this change and let me know how that goes |
cc @quoctruong |
i think the logic about passing '.' to |
When "Start Debugging" or "Run without Debugging" runs without an explicit launch configuration (launch.json), we need to use the directory of the file as the program. That is consistent with the default GoDebugConfigurationProvider provides as the default DebugConfigurations. (${fileDirname}). Update microsoft#1229 and microsoft#3096
When "Start Debugging" or "Run without Debugging" runs without an explicit launch configuration (launch.json), we need to use the directory of the file as the program. That is consistent with the default GoDebugConfigurationProvider provides as the default DebugConfigurations. (${fileDirname}). Update microsoft#1229 and microsoft#3096
When "Start Debugging" or "Run without Debugging" runs without an explicit launch configuration (launch.json), we need to use the directory of the file as the program. That is consistent with the default GoDebugConfigurationProvider provides as the default DebugConfigurations. (${fileDirname}). Update #1229 and #3096
The fix associated with this issue is now available in the latest version of the extension We will use |
Thank you @ramya-rao-a @hyangah |
After changes made in the issue #2085 'Start without debugging' always defaults to the current go file. The rationale behind the change was the following:
Let's consider the following program.
main. go
package main
func main () {
second()
}
second.go
package main
func second() {
}
If you open main.go in your active editor and Ctrl+F5 you would get 'undefined: second'
If you open second.go in your active editor and Ctrl+F5 you would get 'runtime.main_main·f: function main is undeclared in the main package'
While I agree that cmd should not start debugging I do not see any reasons why I'm unable to 'just run' the program that has several go files. Currently I'm forced to debug, i.e. switch to the debug view, stop at each breakpoint, switch back to the editor when debug is finished, while in 90% of cases I just want to run, check output and continue editing.
The current behaviour is pretty useless. It works only for programs that have only one file with the main in it. This is pretty rare. It would be much more useful to run the whole package ("go run packagename" or "go run .") and not the current file or at least allow to override the current behaviour from launch.json. Currently this is forced in
https://github.com/microsoft/vscode-go/blob/master/src/goDebugConfiguration.ts
debugConfiguration['currentFile'] = activeEditor && activeEditor.document.languageId === 'go' && activeEditor.document.fileName;
and in https://github.com/microsoft/vscode-go/blob/master/src/debugAdapter/goDebug.ts
and there is no way to run the whole package. Let's add an option to allow running the whole package / execute "go run ." or "go run packagename". Take a look at golang/go#22726 for more details about "go run ."
The text was updated successfully, but these errors were encountered: