diff --git a/Cargo.lock b/Cargo.lock index 8bad1349cc9655ee7aef5ba65f4bc7a20a7d73ac..6ee7abcb707e91ef8e610b6dfabd3ea736d41c5d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7231,6 +7231,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" + [[package]] name = "usvg" version = "0.14.1" @@ -8273,6 +8279,7 @@ dependencies = [ "tree-sitter-typescript", "unindent", "url", + "urlencoding", "util", "vim", "workspace", diff --git a/crates/zed/Cargo.toml b/crates/zed/Cargo.toml index 1e3167d2b8ddd69e9a6baa14dcccc6c74a7f7f25..fc7a1753555039842d7ca3a6ce1936d808a08322 100644 --- a/crates/zed/Cargo.toml +++ b/crates/zed/Cargo.toml @@ -110,6 +110,7 @@ tree-sitter-html = "0.19.0" tree-sitter-scheme = { git = "https://github.com/6cdh/tree-sitter-scheme", rev = "af0fd1fa452cb2562dc7b5c8a8c55551c39273b9"} tree-sitter-racket = { git = "https://github.com/zed-industries/tree-sitter-racket", rev = "eb010cf2c674c6fd9a6316a84e28ef90190fe51a"} url = "2.2" +urlencoding = "2.1.2" [dev-dependencies] call = { path = "../call", features = ["test-support"] } diff --git a/crates/zed/src/menus.rs b/crates/zed/src/menus.rs index 3865389e99f7e30cabccb2bf427130fffaaf866e..b46e8ad703721f81a9b5e3cf4c925be2e28545f5 100644 --- a/crates/zed/src/menus.rs +++ b/crates/zed/src/menus.rs @@ -343,10 +343,12 @@ pub fn menus() -> Vec> { action: Box::new(crate::CopySystemSpecsIntoClipboard), }, MenuItem::Action { - name: "Give Feedback", - action: Box::new(crate::OpenBrowser { - url: super::feedback::NEW_ISSUE_URL.into(), - }), + name: "File Bug Report", + action: Box::new(crate::FileBugReport), + }, + MenuItem::Action { + name: "Request Feature", + action: Box::new(crate::RequestFeature), }, MenuItem::Separator, MenuItem::Action { diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index 0936e317f4ab405ed02d0f9c6a46005fb9bf19fc..e6d50f43af87966edbb2788008ca770c7c41aaa9 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -69,7 +69,9 @@ actions!( ResetBufferFontSize, InstallCommandLineInterface, ResetDatabase, - CopySystemSpecsIntoClipboard + CopySystemSpecsIntoClipboard, + RequestFeature, + FileBugReport ] ); @@ -261,6 +263,28 @@ pub fn init(app_state: &Arc, cx: &mut gpui::MutableAppContext) { }, ); + cx.add_action( + |_: &mut Workspace, _: &RequestFeature, cx: &mut ViewContext| { + let url = "https://github.com/zed-industries/feedback/issues/new?assignees=&labels=enhancement%2Ctriage&template=0_feature_request.yml"; + cx.dispatch_action(OpenBrowser { + url: url.into(), + }); + }, + ); + + cx.add_action( + |_: &mut Workspace, _: &FileBugReport, cx: &mut ViewContext| { + let system_specs_text = SystemSpecs::new(cx).to_string(); + let url = format!( + "https://github.com/zed-industries/feedback/issues/new?assignees=&labels=defect%2Ctriage&template=2_bug_report.yml&environment={}", + urlencoding::encode(&system_specs_text) + ); + cx.dispatch_action(OpenBrowser { + url: url.into(), + }); + }, + ); + activity_indicator::init(cx); call::init(app_state.client.clone(), app_state.user_store.clone(), cx); settings::KeymapFileContent::load_defaults(cx);