Skip to content

Instantly share code, notes, and snippets.

@d1y
Created April 12, 2025 09:06
Show Gist options
  • Save d1y/2961904580cb97d565db3e415e4eb6f2 to your computer and use it in GitHub Desktop.
Save d1y/2961904580cb97d565db3e415e4eb6f2 to your computer and use it in GitHub Desktop.
diff --git a/crates/language_extension/Cargo.toml b/crates/language_extension/Cargo.toml
index 31b92d35cf..245960c650 100644
--- a/crates/language_extension/Cargo.toml
+++ b/crates/language_extension/Cargo.toml
@@ -25,3 +25,4 @@ serde.workspace = true
serde_json.workspace = true
util.workspace = true
workspace-hack.workspace = true
+regex.workspace = true
diff --git a/crates/language_extension/src/extension_lsp_adapter.rs b/crates/language_extension/src/extension_lsp_adapter.rs
index ae325edbd8..030098c03a 100644
--- a/crates/language_extension/src/extension_lsp_adapter.rs
+++ b/crates/language_extension/src/extension_lsp_adapter.rs
@@ -156,7 +156,22 @@ impl LspAdapter for ExtensionLspAdapter {
Ok(LanguageServerBinary {
path,
- arguments: command.args.into_iter().map(|arg| arg.into()).collect(),
+ arguments: command
+ .args
+ .into_iter()
+ .map(|arg| {
+ #[cfg(windows)]
+ {
+ use regex::Regex;
+ let pattern = r"^/[A-Z]:\\";
+ let regex = Regex::new(pattern).unwrap();
+ if regex.is_match(&arg) {
+ return arg.trim_start_matches('/').into();
+ }
+ }
+ return arg.into();
+ })
+ .collect(),
env: Some(command.env.into_iter().collect()),
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment