go: Add go-generate runnables and tasks (#19987)

I was missing the `go generate` runnable from other editors so I figured
I'd implement one here! Now, comments of the form `//go:generate` can
prompt for the `go generate <package>` task. Meanwhile, I've also added
a global `go generate ./...` task.

~When making the global task, I noticed that the existing `go test
./...` task runs tests in subdirectories of the CWD of the active
editor, whereas I would really expect it to run all tests across my
project. I have changed to use the latter behavior (run relative to
project root) for both `go generate ./...` and `go test ./...`. Please
let me know if the prior behavior was intended, and I can revert.~

Release Notes:

- Added runnable and tasks for `go generate` commands
This commit is contained in:
Roshan Padaki 2024-11-04 04:13:15 -05:00 committed by GitHub
parent 9a869f0c5f
commit 8e00caf23b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 22 additions and 0 deletions

View file

@ -549,6 +549,21 @@ impl ContextProvider for GoContextProvider {
tags: vec!["go-main".to_owned()],
..TaskTemplate::default()
},
TaskTemplate {
label: format!("go generate {}", GO_PACKAGE_TASK_VARIABLE.template_value()),
command: "go".into(),
args: vec!["generate".into()],
cwd: package_cwd.clone(),
tags: vec!["go-generate".to_owned()],
..TaskTemplate::default()
},
TaskTemplate {
label: "go generate ./...".into(),
command: "go".into(),
args: vec!["generate".into(), "./...".into()],
cwd: package_cwd.clone(),
..TaskTemplate::default()
},
]))
}
}

View file

@ -7,6 +7,13 @@
(#set! tag go-test)
)
; `go:generate` comments
(
((comment) @_comment @run
(#match? @_comment "^//go:generate"))
(#set! tag go-generate)
)
; `t.Run`
(
(