, runSessionWithConfig
, SessionConfig(..)
, defaultConfig
- , module Language.Haskell.LSP.Test.Capabilities
+ , module Language.Haskell.LSP.Types.Capabilities
-- ** Exceptions
, module Language.Haskell.LSP.Test.Exceptions
, withTimeout
import Data.Maybe
import Language.Haskell.LSP.Types hiding (id, capabilities, message)
import qualified Language.Haskell.LSP.Types as LSP
-import qualified Language.Haskell.LSP.Types.Capabilities as LSP
+import Language.Haskell.LSP.Types.Capabilities
import Language.Haskell.LSP.Messages
import Language.Haskell.LSP.VFS
-import Language.Haskell.LSP.Test.Capabilities
import Language.Haskell.LSP.Test.Compat
import Language.Haskell.LSP.Test.Decoding
import Language.Haskell.LSP.Test.Exceptions
-- > params = TextDocumentPositionParams doc
-- > hover <- request TextDocumentHover params
runSession :: String -- ^ The command to run the server.
- -> LSP.ClientCapabilities -- ^ The capabilities that the client should declare.
+ -> ClientCapabilities -- ^ The capabilities that the client should declare.
-> FilePath -- ^ The filepath to the root directory for the session.
-> Session a -- ^ The session to run.
-> IO a
-- | Starts a new sesion with a custom configuration.
runSessionWithConfig :: SessionConfig -- ^ Configuration options for the session.
-> String -- ^ The command to run the server.
- -> LSP.ClientCapabilities -- ^ The capabilities that the client should declare.
+ -> ClientCapabilities -- ^ The capabilities that the client should declare.
-> FilePath -- ^ The filepath to the root directory for the session.
-> Session a -- ^ The session to run.
-> IO a
-- | Returns all the code actions in a document by
-- querying the code actions at each of the current
-- diagnostics' positions.
-getAllCodeActions :: TextDocumentIdentifier -> Session [CommandOrCodeAction]
+getAllCodeActions :: TextDocumentIdentifier -> Session [CAResult]
getAllCodeActions doc = do
curDiags <- fromMaybe [] . Map.lookup (doc ^. uri) . curDiagnostics <$> get
let ctx = CodeActionContext (List curDiags) Nothing
foldM (go ctx) [] curDiags
where
- go :: CodeActionContext -> [CommandOrCodeAction] -> Diagnostic -> Session [CommandOrCodeAction]
+ go :: CodeActionContext -> [CAResult] -> Diagnostic -> Session [CAResult]
go ctx acc diag = do
ResponseMessage _ rspLid mRes mErr <- request TextDocumentCodeAction (CodeActionParams doc (diag ^. range) ctx)
caps <- asks sessionCapabilities
let supportsDocChanges = fromMaybe False $ do
- let LSP.ClientCapabilities mWorkspace _ _ = caps
- LSP.WorkspaceClientCapabilities _ mEdit _ _ _ _ <- mWorkspace
- LSP.WorkspaceEditClientCapabilities mDocChanges <- mEdit
+ let ClientCapabilities mWorkspace _ _ = caps
+ WorkspaceClientCapabilities _ mEdit _ _ _ _ _ _ <- mWorkspace
+ WorkspaceEditClientCapabilities mDocChanges <- mEdit
mDocChanges
let wEdit = if supportsDocChanges