, initializeResponse
, openDoc
, documentContents
- , documentEdit
+ , getDocumentEdit
, getDocUri
, noDiagnostics
- , documentSymbols
- ,
+ , getDocumentSymbols
+ , getDiagnostics
) where
import Control.Applicative
Nothing
(capabilities config)
(Just TraceOff)
-
withServer serverExe $ \serverIn serverOut _ ->
runSessionWithHandles serverIn serverOut listenServer config rootDir $ do
-- | Parses an ApplyEditRequest, checks that it is for the passed document
-- and returns the new content
-documentEdit :: TextDocumentIdentifier -> Session T.Text
-documentEdit doc = do
+getDocumentEdit :: TextDocumentIdentifier -> Session T.Text
+getDocumentEdit doc = do
req <- request :: Session ApplyWorkspaceEditRequest
unless (checkDocumentChanges req || checkChanges req) $
let fp = rootDir context </> file
return $ filePathToUri fp
+getDiagnostics :: Session [Diagnostic]
+getDiagnostics = do
+ diagsNot <- notification :: Session PublishDiagnosticsNotification
+ let (List diags) = diagsNot ^. params . LSP.diagnostics
+ return diags
+
-- | Expects a 'PublishDiagnosticsNotification' and throws an
-- 'UnexpectedDiagnosticsException' if there are any diagnostics
-- returned.
noDiagnostics :: Session ()
noDiagnostics = do
diagsNot <- notification :: Session PublishDiagnosticsNotification
- when (diagsNot ^. params . diagnostics /= List []) $ liftIO $ throw UnexpectedDiagnosticsException
+ when (diagsNot ^. params . LSP.diagnostics /= List []) $ liftIO $ throw UnexpectedDiagnosticsException
-- | Returns the symbols in a document.
-documentSymbols :: TextDocumentIdentifier -> Session DocumentSymbolsResponse
-documentSymbols doc = do
+getDocumentSymbols :: TextDocumentIdentifier -> Session DocumentSymbolsResponse
+getDocumentSymbols doc = do
sendRequest TextDocumentDocumentSymbol (DocumentSymbolParams doc)
response
\ No newline at end of file