Skip to content

Commit 0a66a16

Browse files
committed
Pass npm path env to spago sources
1 parent cf87ad7 commit 0a66a16

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

shell.nix

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ let
1111
};
1212
in
1313
pkgs.mkShell {
14-
buildInputs = [
14+
buildInputs = with pkgs; [
15+
nodejs
1516
easy-ps.purs-0_15_14
1617
easy-ps.spago
1718
easy-ps.psa

src/LanguageServer/IdePurescript/Server.purs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Data.Array (filter, head)
1111
import Data.Either (Either(..), either)
1212
import Data.Maybe (Maybe(..))
1313
import Data.String (null)
14+
import Data.String as String
1415
import Data.String.Regex as Regex
1516
import Data.String.Regex.Flags (noFlags)
1617
import Data.String.Regex.Unsafe (unsafeRegex)
@@ -19,6 +20,8 @@ import Data.Time.Duration (Milliseconds(..))
1920
import Effect.Aff (Aff, attempt, delay, makeAff)
2021
import Effect.Class (class MonadEffect, liftEffect)
2122
import Foreign (Foreign)
23+
import Foreign.Object as Object
24+
import IdePurescript.Build (getPathProp)
2225
import IdePurescript.Exec (findBins, getPathVar, shellSetting)
2326
import IdePurescript.PscIdeServer (ErrorLevel(..), Notify)
2427
import IdePurescript.PscIdeServer as P
@@ -28,7 +31,7 @@ import LanguageServer.Protocol.Types (Settings)
2831
import Node.Buffer (toString)
2932
import Node.ChildProcess as CP
3033
import Node.Encoding (Encoding(..))
31-
import Node.Process (lookupEnv)
34+
import Node.Process (getEnv, lookupEnv)
3235
import PscIde (load)
3336
import PscIde.Server (Executable(..))
3437

@@ -70,7 +73,9 @@ startServer' settings root cb logCb = do
7073
settings
7174
root
7275
spagoGlob <- getPackagerPaths Config.addSpagoSources "spago" settings root
73-
pure (pscpGlob <> spagoGlob)
76+
let glob = pscpGlob <> spagoGlob
77+
liftEffect $ logCb Info $ "Source globs: " <> String.joinWith " " glob
78+
pure glob
7479
P.startServer'
7580
{ exe
7681
, combinedExe: true
@@ -101,12 +106,17 @@ getPackagerPaths enabled binName settings root =
101106
else do
102107
pathVar <- liftEffect $ getPathVar (Config.addNpmPath settings) root
103108
serverBins <- findBins pathVar binName
109+
env <- liftEffect getEnv
104110
case head serverBins of
105111
Just (Executable bin _) ->
106112
makeAff \cb -> do
107113
void
108114
$ CP.execFile' bin [ "sources" ]
109-
(_ { cwd = Just root, shell = shellSetting })
115+
(_ { cwd = Just root, shell = shellSetting
116+
, env = Just $ Object.insert (getPathProp env)
117+
(either identity identity pathVar)
118+
env
119+
})
110120
( \{ stdout } -> do
111121
text <- toString UTF8 stdout
112122
cb $ pure $ lines text

0 commit comments

Comments
 (0)