-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRun.hs
More file actions
25 lines (20 loc) · 797 Bytes
/
Run.hs
File metadata and controls
25 lines (20 loc) · 797 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
module Language.Arralac.LanguageServer.Run where
import Control.Concurrent.STM (newTVarIO)
import Data.Map qualified as M
import Data.Text (Text)
import GHC.IO.Exception (ExitCode (ExitFailure, ExitSuccess))
import Language.Arralac.LanguageServer.Server
import Language.LSP.Server
-- | The main entry point for our server.
runLanguageServer :: Text -> IO ExitCode
runLanguageServer settingsSectionName = do
let settingsSectionName' = settingsSectionName
-- Create the initial empty server state.
initialServerState <- newTVarIO M.empty
-- Start the server.
-- 'runServer' wraps 'runServerWithHandles'
exitCode' <- runServer $ serverDefinition settingsSectionName' initialServerState
pure $
if
| exitCode' == 0 -> ExitSuccess
| otherwise -> ExitFailure exitCode'