@@ -11,6 +11,7 @@ import Data.Array (filter, head)
11
11
import Data.Either (Either (..), either )
12
12
import Data.Maybe (Maybe (..))
13
13
import Data.String (null )
14
+ import Data.String as String
14
15
import Data.String.Regex as Regex
15
16
import Data.String.Regex.Flags (noFlags )
16
17
import Data.String.Regex.Unsafe (unsafeRegex )
@@ -19,6 +20,8 @@ import Data.Time.Duration (Milliseconds(..))
19
20
import Effect.Aff (Aff , attempt , delay , makeAff )
20
21
import Effect.Class (class MonadEffect , liftEffect )
21
22
import Foreign (Foreign )
23
+ import Foreign.Object as Object
24
+ import IdePurescript.Build (getPathProp )
22
25
import IdePurescript.Exec (findBins , getPathVar , shellSetting )
23
26
import IdePurescript.PscIdeServer (ErrorLevel (..), Notify )
24
27
import IdePurescript.PscIdeServer as P
@@ -28,7 +31,7 @@ import LanguageServer.Protocol.Types (Settings)
28
31
import Node.Buffer (toString )
29
32
import Node.ChildProcess as CP
30
33
import Node.Encoding (Encoding (..))
31
- import Node.Process (lookupEnv )
34
+ import Node.Process (getEnv , lookupEnv )
32
35
import PscIde (load )
33
36
import PscIde.Server (Executable (..))
34
37
@@ -70,7 +73,9 @@ startServer' settings root cb logCb = do
70
73
settings
71
74
root
72
75
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
74
79
P .startServer'
75
80
{ exe
76
81
, combinedExe: true
@@ -101,12 +106,17 @@ getPackagerPaths enabled binName settings root =
101
106
else do
102
107
pathVar <- liftEffect $ getPathVar (Config .addNpmPath settings) root
103
108
serverBins <- findBins pathVar binName
109
+ env <- liftEffect getEnv
104
110
case head serverBins of
105
111
Just (Executable bin _) ->
106
112
makeAff \cb -> do
107
113
void
108
114
$ 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
+ })
110
120
( \{ stdout } -> do
111
121
text <- toString UTF8 stdout
112
122
cb $ pure $ lines text
0 commit comments