Reputation: 959
In emacs, using gopls but it cannot find go
on my path. But it's there, I can run it. Reaching out to the community to see if I'm missing something. I can run a basic gin server without issue.
Using this config, from docs.
Output:
panic: err: exec: "go": executable file not found in $PATH: stderr:
goroutine 73 [running]:
golang.org/x/tools/internal/lsp/debug.PrintVersionInfo.func2()
/Users/seanh/go/pkg/mod/golang.org/x/[email protected]/internal/lsp/debug/info.go:58 +0x1c3
golang.org/x/tools/internal/lsp/debug.section(0x1a2d520, 0xc00013de60, 0x0, 0x18cda9a, 0x7, 0xc0003bb588)
/Users/seanh/go/pkg/mod/golang.org/x/[email protected]/internal/lsp/debug/info.go:69 +0x319
golang.org/x/tools/internal/lsp/debug.PrintVersionInfo(0x1a40560, 0xc000226c60, 0x1a2d520, 0xc00013de60, 0x1, 0x0)
/Users/seanh/go/pkg/mod/golang.org/x/[email protected]/internal/lsp/debug/info.go:52 +0x1a7
golang.org/x/tools/internal/lsp.(*Server).initialized(0xc000230080, 0x1a40560, 0xc000226c60, 0x1fa2ef0, 0x0, 0x0)
/Users/seanh/go/pkg/mod/golang.org/x/[email protected]/internal/lsp/general.go:163 +0x1a3
golang.org/x/tools/internal/lsp.(*Server).Initialized(0xc000230080, 0x1a40560, 0xc000226c60, 0x1fa2ef0, 0x1fa2ef0, 0x0)
/Users/seanh/go/pkg/mod/golang.org/x/[email protected]/internal/lsp/server_gen.go:112 +0x49
golang.org/x/tools/internal/lsp/protocol.ServerHandler.func1(0x1a40560, 0xc000226c60, 0xc00022cd80, 0x1c650b5, 0x1f77a40)
/Users/seanh/go/pkg/mod/golang.org/x/[email protected]/internal/lsp/protocol/tsserver.go:97 +0x757
golang.org/x/tools/internal/lsp/lsprpc.handshaker.func1(0x1a40560, 0xc000226c60, 0xc00022cd80, 0x0, 0x0)
/Users/seanh/go/pkg/mod/golang.org/x/[email protected]/internal/lsp/lsprpc/lsprpc.go:531 +0x505
golang.org/x/tools/internal/jsonrpc2.MustReply.func1(0x1a40560, 0xc000226c60, 0xc00022cd80, 0x1007aaf, 0xc0002901d8)
/Users/seanh/go/pkg/mod/golang.org/x/[email protected]/internal/jsonrpc2/handler.go:54 +0x47
golang.org/x/tools/internal/jsonrpc2.AsyncHandler.func1.2(0xc00009eb40, 0xc000226de0, 0xc000232130, 0x1a40560, 0xc000226c60, 0xc00022cd80)
/Users/seanh/go/pkg/mod/golang.org/x/[email protected]/internal/jsonrpc2/handler.go:110 +0x6c
created by golang.org/x/tools/internal/jsonrpc2.AsyncHandler.func1
/Users/seanh/go/pkg/mod/golang.org/x/[email protected]/internal/jsonrpc2/handler.go:107 +0x187
Process gopls stderr finished
Upvotes: 0
Views: 2721
Reputation: 9417
A guess: The PATH
env var might be different in Emacs compared to whatever other shell you're running. You can check with (getenv "PATH")
in Emacs, and you can set it with
(setenv "PATH" (concat (getenv "PATH") ":/path/to/go"))
Also if you start Emacs from the same shell that can find gopls
, Emacs should have the same PATH
var and everything should work.
As far as why the PATH
s are different, it has to do with how you start Emacs and your shell.
Upvotes: 4