diff --git a/crates/languages/src/go.rs b/crates/languages/src/go.rs index 135c080e00..2c8649caad 100644 --- a/crates/languages/src/go.rs +++ b/crates/languages/src/go.rs @@ -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() + }, ])) } } diff --git a/crates/languages/src/go/runnables.scm b/crates/languages/src/go/runnables.scm index d689116007..eb643c448e 100644 --- a/crates/languages/src/go/runnables.scm +++ b/crates/languages/src/go/runnables.scm @@ -7,6 +7,13 @@ (#set! tag go-test) ) +; `go:generate` comments +( + ((comment) @_comment @run + (#match? @_comment "^//go:generate")) + (#set! tag go-generate) +) + ; `t.Run` ( (