I’ve been running with the eglot lsp client with purescript-language-server
, in emacs for some time now, with no hiccups. However I have been using a very vanilla configuration, that is using the system installed version of purs
.
Has anybody got eglot working with a node_modules/.bin/
version of purs
? I can’t figure how to do it. I would like eglot to use these config settings:
"purescript.addNpmPath": true,
"purescript.buildCommand": "npx spago build --purs-args --json-errors",
eglot doesn’t officially mention anything about purescript on their page, so I am kind of in no man’s land here.
1 Like
Solution, for anyone who stumbles upon this, is composed of two points:
- Config like the above can be sent to the
purescript-language-server
on startup with the --config flag, so in lisp:
(add-to-list 'eglot-server-programs
'(purescript-mode . ("/home/xyz/.nvm/versions/node/v14.15.1/bin/purescript-language-server" "--stdio"
"--config {\"purescript.addNpmPath\": true,
\"purescript.buildCommand\": \"npx spago build --purs-args --json-errors\"}" )))
- I needed to add the
node_modules/.bin
to the emacs PATH in my init.el
. Then purescript-language-server
, which is running as a child of the shell instance emacs runs in, will then find the project bespoke purs
. *
*I guess I wouldn’t need to do this if I was running emacs from my bash shell, where all this environmental stuff is setup, it would just inherit the environment as a child process. But I run emacs through a laucher. I’m happy doing this config step in as I can see right there in my init.el
what is being pulled in, and update it when the need arises.
1 Like