on 0336e41 help sign in
61 lines 2.2 kB history raw
1-- Copyright (c) 2019 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
2-- SPDX-License-Identifier: Apache-2.0
3{-# LANGUAGE PatternSynonyms #-}
5module Development.IDE.LSP.Protocol
6 ( module Language.Haskell.LSP.Types
7 , ServerRequest(..)
8 , ServerNotification(..)
9 , pattern EventFileDiagnostics
10 ) where
12import qualified Data.Aeson as Aeson
13import qualified Data.Text as T
14import Development.IDE.Types.Diagnostics
15import Development.IDE.Types.Location
16import Language.Haskell.LSP.Messages
19import Language.Haskell.LSP.Types hiding
20 ( CodeLens
21 , DocumentSymbol
22 , Hover
23 , Shutdown
24 , SignatureHelp
25 , WorkspaceSymbol
26 )
28-- | Request sent by the client to the server.
29data ServerRequest
30 = Shutdown
31 | KeepAlive
32 | Completion !CompletionParams
33 | SignatureHelp !TextDocumentPositionParams
34 | Hover !TextDocumentPositionParams
35 | Definition !TextDocumentPositionParams
36 | References !ReferenceParams
37 | CodeLens !CodeLensParams
38 | Rename !RenameParams
39 | DocumentSymbol !DocumentSymbolParams
40 | WorkspaceSymbol !WorkspaceSymbolParams
41 | Formatting !DocumentFormattingParams
42 | UnknownRequest !T.Text !Aeson.Value
43 deriving Show
45data ServerNotification
46 = DidOpenTextDocument DidOpenTextDocumentParams
47 | DidChangeTextDocument DidChangeTextDocumentParams
48 | DidCloseTextDocument DidCloseTextDocumentParams
49 | DidSaveTextDocument DidSaveTextDocumentParams
50 | UnknownNotification T.Text Aeson.Value
52----------------------------------------------------------------------------------------------------
53-- Pretty printing
54----------------------------------------------------------------------------------------------------
56-- | Pattern synonym to make it a bit more convenient to match on diagnostics
57-- in things like damlc test.
58pattern EventFileDiagnostics :: FilePath -> [Diagnostic] -> FromServerMessage
59pattern EventFileDiagnostics fp diags <-
60 NotPublishDiagnostics
61 (NotificationMessage _ _ (PublishDiagnosticsParams (uriToFilePath' -> Just fp) (List diags)))