Skip to content

Commit

Permalink
go: Adjust gopls path based on OS (#22727)
Browse files Browse the repository at this point in the history
Based on the python #21452
and PR #22587

I found the same problem with go on windows.

Describe the bug / provide steps to reproduce it

Language server error: gopls

The system cannot find the file specified. (os error 2)
-- stderr--

[ERROR project::lsp_store] Failed to start language server "gopls": The
system cannot find the file specified. (os error 2)
[ERROR project::lsp_store] server stderr: ""

Environment

    Windows 11
    Go

Release Notes:

- Windows: Fixed `gopls` path construction on Windows 11.

---------

Co-authored-by: Marshall Bowers <[email protected]>
  • Loading branch information
TorratDev and maxdeviant authored Jan 6, 2025
1 parent c968225 commit 5ec9248
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion crates/languages/src/go.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ static GO_ESCAPE_SUBTEST_NAME_REGEX: LazyLock<Regex> = LazyLock::new(|| {
Regex::new(r#"[.*+?^${}()|\[\]\\]"#).expect("Failed to create GO_ESCAPE_SUBTEST_NAME_REGEX")
});

const BINARY: &str = if cfg!(target_os = "windows") {
"gopls.exe"
} else {
"gopls"
};

#[async_trait(?Send)]
impl super::LspAdapter for GoLspAdapter {
fn name(&self) -> LanguageServerName {
Expand Down Expand Up @@ -164,7 +170,7 @@ impl super::LspAdapter for GoLspAdapter {
return Err(anyhow!("failed to install gopls with `go install`. Is `go` installed and in the PATH? Check logs for more information."));
}

let installed_binary_path = gobin_dir.join("gopls");
let installed_binary_path = gobin_dir.join(BINARY);
let version_output = util::command::new_smol_command(&installed_binary_path)
.arg("version")
.output()
Expand Down

0 comments on commit 5ec9248

Please sign in to comment.