diff --git a/crates/languages/src/go.rs b/crates/languages/src/go.rs index 135c080e00a14901a9fa46e46ba5e662a831048d..2c8649caadd5de1fd738d37d6947f1f7e5d3ca58 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 d689116007f1a4f71b31c3a1d36fd62b2255170c..eb643c448e7cd9589a430b6457cd70da4def1f6f 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` ( (