Use TypeInType for GHC 8.4.4 builds
[lsp-test.git] / test / dummy-server / Main.hs
index 95b98c9576c8163cbda8d60c2eed164a2a445892..7c73e3b019ecb676583410b1efd1e78a153d1ccb 100644 (file)
@@ -1,14 +1,12 @@
-{-# 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.LSP.Control
-import Language.LSP.Core
+import Language.LSP.Server
 import Language.LSP.Types
 import System.Directory
 import System.FilePath
@@ -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),