@@ -120,7 +120,6 @@ buildMakeActions codegenRef =
120120 outputPrimDocs :: Make. Make ()
121121 outputPrimDocs = pure ()
122122
123-
124123server :: [P. ExternsFile ] -> P. Env -> P. Environment -> Int -> String -> IO ()
125124server externs initNamesEnv initEnv port pursIDEPortString = do
126125 codegenRef <- IORef. newIORef Nothing
@@ -166,9 +165,24 @@ server externs initNamesEnv initEnv port pursIDEPortString = do
166165 Right (warnings, comp) ->
167166 Scotty. json $ A. object [ " js" .= comp, " warnings" .= warnings ]
168167
169- post " /complete" $ do
168+ get " /complete" $ do
169+ query <- param " q"
170170 Scotty. setHeader " Access-Control-Allow-Origin" " *"
171171 Scotty. setHeader " Content-Type" " application/json"
172+ let mkCommand q = A. encode $ A. object
173+ [ " command" .= (" complete" :: Text )
174+ , " params" .= A. object
175+ [ " filters" .= A. Array
176+ ( V. fromList
177+ [ A. object
178+ [ " filter" .= (" prefix" :: Text )
179+ , " params" .= A. object
180+ [ " search" .= q ]
181+ ]
182+ ]
183+ )
184+ ]
185+ ]
172186 (Just handleIn, Just handleOut, _, _) <- liftIO $
173187 Process. createProcess_
174188 " purs-ide-client"
@@ -177,8 +191,7 @@ server externs initNamesEnv initEnv port pursIDEPortString = do
177191 , Process. std_out = Process. CreatePipe
178192 }
179193 liftIO (IO. hSetBuffering handleIn NoBuffering )
180- command <- BL.Char8. toStrict <$> body
181- liftIO (BS.Char8. hPutStrLn handleIn command)
194+ liftIO (BL.Char8. hPutStrLn handleIn (mkCommand (query :: Text )))
182195 result <- liftIO (BS. hGetContents handleOut)
183196 Scotty. text (TL. fromStrict (T. decodeUtf8 result))
184197
@@ -265,6 +278,6 @@ main = do
265278 case e of
266279 Left err -> print err >> exitFailure
267280 Right (exts, namesEnv, env) -> do
268- let ideServer = Process. proc " purs" (" ide" : " server" : " -p" : pursIDEPortString: inputGlobs)
269- Process. withCreateProcess ideServer $
281+ let pursIDEServer = Process. proc " purs" (" ide" : " server" : " -p" : pursIDEPortString: inputGlobs)
282+ Process. withCreateProcess pursIDEServer $
270283 \ _ _ _ _ -> server exts namesEnv env port pursIDEPortString
0 commit comments