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
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),