{-# LANGUAGE TypeOperators #-}
module Language.LSP.Server (
  module Language.LSP.Server.Control,
  VFSData (..),
  ServerDefinition (..),
  
  Handlers (..),
  Handler,
  transmuteHandlers,
  mapHandlers,
  notificationHandler,
  requestHandler,
  ClientMessageHandler (..),
  Options (..),
  defaultOptions,
  
  LspT (..),
  LspM,
  MonadLsp (..),
  runLspT,
  LanguageContextEnv (..),
  type (<~>) (..),
  getClientCapabilities,
  getConfig,
  setConfig,
  getRootPath,
  getWorkspaceFolders,
  sendRequest,
  sendNotification,
  
  requestConfigUpdate,
  tryChangeConfig,
  
  getVirtualFile,
  getVirtualFiles,
  persistVirtualFile,
  getVersionedTextDoc,
  reverseFileMap,
  snapshotVirtualFiles,
  
  publishDiagnostics,
  flushDiagnosticsBySource,
  
  withProgress,
  withIndefiniteProgress,
  ProgressAmount (..),
  ProgressCancellable (..),
  ProgressCancelledException,
  
  registerCapability,
  unregisterCapability,
  RegistrationToken,
  reverseSortEdit,
) where
import Language.LSP.Server.Control
import Language.LSP.Server.Core