From 35a0c5c6249fba7bf0cf1a334b1a8d296077cb83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jozef=20Steinh=C3=BCbl?= Date: Sun, 4 Aug 2024 21:38:59 +0200 Subject: [PATCH] feat: large text, small text --- README.md | 2 +- lsp/src/configuration.rs | 16 +++++++++++++++- lsp/src/discord.rs | 10 ++++++++++ lsp/src/main.rs | 20 ++++++++++++++++++-- 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a7a3c8f..8688085 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ You can configure state, details and git integration by changing Discord Presenc "state": "Working on {filename}", "details": "In {workspace}", // URL for large image - "large_image": "{base_icons_url}/{language_icon}.png", + "large_image": "{base_icons_url}/{language}.png", // URL for small image "small_image": "{base_icons_url}/zed.png", "git_integration": true diff --git a/lsp/src/configuration.rs b/lsp/src/configuration.rs index 6fa94cf..895fd1f 100644 --- a/lsp/src/configuration.rs +++ b/lsp/src/configuration.rs @@ -25,8 +25,12 @@ pub struct Configuration { pub state: String, pub details: String, + pub large_image: Option, + pub large_text: Option, pub small_image: Option, + pub small_text: Option, + pub git_integration: bool, } @@ -36,8 +40,10 @@ impl Configuration { base_icons_url: String::from("https://raw.githubusercontent.com/xhyrom/zed-discord-presence/feat/recognize-languages/assets/icons/"), state: String::from("Working on {filename}"), details: String::from("In {workspace}"), - large_image: Some(String::from("{base_icons_url}/{language_icon}.png")), + large_image: Some(String::from("{base_icons_url}/{language}.png")), + large_text: Some(String::from("{language}")), small_image: Some(String::from("{base_icons_url}/zed.png")), + small_text: Some(String::from("Zed")), git_integration: true, } } @@ -65,10 +71,18 @@ impl Configuration { self.large_image = Some(large_image.as_str().unwrap().to_string()) } + if let Some(large_text) = initialization_options.get("large_text") { + self.large_text = Some(large_text.as_str().unwrap().to_string()) + } + if let Some(small_image) = initialization_options.get("small_image") { self.small_image = Some(small_image.as_str().unwrap().to_string()) } + if let Some(small_text) = initialization_options.get("small_text") { + self.small_text = Some(small_text.as_str().unwrap().to_string()) + } + if let Some(git_integration) = initialization_options.get("git_integration") { self.git_integration = git_integration.as_bool().unwrap_or(true); } diff --git a/lsp/src/discord.rs b/lsp/src/discord.rs index 53cb758..d26da33 100644 --- a/lsp/src/discord.rs +++ b/lsp/src/discord.rs @@ -69,7 +69,9 @@ impl Discord { state: String, details: String, large_image: Option, + large_text: Option, small_image: Option, + small_text: Option, git_remote_url: Option, ) { let mut client = self.get_client(); @@ -81,10 +83,18 @@ impl Discord { assets = assets.large_image(large_image); } + if let Some(large_text) = large_text.as_ref() { + assets = assets.large_text(large_text); + } + if let Some(small_image) = small_image.as_ref() { assets = assets.small_image(small_image); } + if let Some(small_text) = small_text.as_ref() { + assets = assets.small_text(small_text); + } + let mut buttons: Vec