Use TypeInType for GHC 8.4.4 builds
[lsp-test.git] / test / dummy-server / Main.hs
index 5ecf12645bc0ccf1702b213bd01677a0062393d5..7c73e3b019ecb676583410b1efd1e78a153d1ccb 100644 (file)
@@ -1,15 +1,13 @@
-{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE TypeInType #-}
 {-# LANGUAGE OverloadedStrings #-}
 
 import Control.Monad
 import Control.Monad.Reader
-import Data.Aeson
-import Data.Default
+import Data.Aeson hiding (defaultOptions)
 import qualified Data.HashMap.Strict as HM
 import Data.List (isSuffixOf)
-import Language.Haskell.LSP.Control
-import Language.Haskell.LSP.Core
-import Language.Haskell.LSP.Types
+import Language.LSP.Server
+import Language.LSP.Types
 import System.Directory
 import System.FilePath
 import UnliftIO
@@ -17,18 +15,16 @@ import UnliftIO.Concurrent
 
 main = do
   handlerEnv <- HandlerEnv <$> newEmptyMVar <*> newEmptyMVar
-  let initCbs =
-        InitializeCallbacks
+  runServer $ ServerDefinition
     { doInitialize = \env _req -> pure $ Right env,
       onConfigurationChange = const $ pure $ Right (),
       staticHandlers = handlers,
       interpretHandler = \env ->
         Iso
           (\m -> runLspT env (runReaderT m handlerEnv))
-                liftIO
+          liftIO,
+      options = defaultOptions {executeCommandCommands = Just ["doAnEdit"]}
     }
-      options = def {executeCommandCommands = Just ["doAnEdit"]}
-  run initCbs options
 
 data HandlerEnv = HandlerEnv
   { relRegToken :: MVar (RegistrationToken WorkspaceDidChangeWatchedFiles),