From dd8d52f4f416e7d75ab1fb6647048876618c1e30 Mon Sep 17 00:00:00 2001 From: Kai Date: Mon, 26 Aug 2024 01:51:25 +0800 Subject: [PATCH] elixir: Make files required by elixir-ls executable (#16819) Closes: - #15802 This PR fixes an issue in the `elixir-ls` language server installation where some of the required scripts was not being made executable when installed from GitHub. Release Notes: - Fixed elixir-rs files not being executable ([#15802](https://github.com/zed-industries/zed/issues/15802)) --- .../elixir/src/language_servers/elixir_ls.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/extensions/elixir/src/language_servers/elixir_ls.rs b/extensions/elixir/src/language_servers/elixir_ls.rs index b503c482ab..2b4d3b2008 100644 --- a/extensions/elixir/src/language_servers/elixir_ls.rs +++ b/extensions/elixir/src/language_servers/elixir_ls.rs @@ -55,13 +55,11 @@ impl ElixirLs { let (platform, _arch) = zed::current_platform(); let version_dir = format!("elixir-ls-{}", release.version); - let binary_path = format!( - "{version_dir}/language_server.{extension}", - extension = match platform { - zed::Os::Mac | zed::Os::Linux => "sh", - zed::Os::Windows => "bat", - } - ); + let extension = match platform { + zed::Os::Mac | zed::Os::Linux => "sh", + zed::Os::Windows => "bat", + }; + let binary_path = format!("{version_dir}/language_server.{extension}"); if !fs::metadata(&binary_path).map_or(false, |stat| stat.is_file()) { zed::set_language_server_installation_status( @@ -76,6 +74,10 @@ impl ElixirLs { ) .map_err(|e| format!("failed to download file: {e}"))?; + zed::make_file_executable(&binary_path)?; + zed::make_file_executable(&format!("{version_dir}/launch.{extension}"))?; + zed::make_file_executable(&format!("{version_dir}/debug_adapter.{extension}"))?; + let entries = fs::read_dir(".").map_err(|e| format!("failed to list working directory {e}"))?; for entry in entries {