lsp-types-1.1.0.0: src/Language/LSP/Types/DocumentLink.hs
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE DuplicateRecordFields #-}
module Language.LSP.Types.DocumentLink where
import Data.Aeson
import Data.Aeson.TH
import Language.LSP.Types.Location
import Language.LSP.Types.Progress
import Language.LSP.Types.TextDocument
import Language.LSP.Types.Uri
import Language.LSP.Types.Utils
import Data.Text (Text)
data DocumentLinkClientCapabilities =
DocumentLinkClientCapabilities
{ -- | Whether document link supports dynamic registration.
_dynamicRegistration :: Maybe Bool
-- | Whether the client supports the `tooltip` property on `DocumentLink`.
--
-- Since LSP 3.15.0
, _tooltipSupport :: Maybe Bool
} deriving (Read, Show, Eq)
deriveJSON lspOptions ''DocumentLinkClientCapabilities
-- -------------------------------------
makeExtendingDatatype "DocumentLinkOptions" [''WorkDoneProgressOptions]
[("_resolveProvider", [t| Maybe Bool |])]
deriveJSON lspOptions ''DocumentLinkOptions
makeExtendingDatatype "DocumentLinkRegistrationOptions"
[ ''TextDocumentRegistrationOptions
, ''DocumentLinkOptions
] []
deriveJSON lspOptions ''DocumentLinkRegistrationOptions
-- -------------------------------------
makeExtendingDatatype "DocumentLinkParams"
[ ''WorkDoneProgressParams
, ''PartialResultParams
]
[("_textDocument", [t| TextDocumentIdentifier |])]
deriveJSON lspOptions ''DocumentLinkParams
-- -------------------------------------
-- | A document link is a range in a text document that links to an internal or
-- external resource, like another text document or a web site.
data DocumentLink =
DocumentLink
{ -- | The range this link applies to.
_range :: Range
-- | The uri this link points to. If missing a resolve request is sent
-- later.
, _target :: Maybe Uri
-- | The tooltip text when you hover over this link.
--
-- If a tooltip is provided, is will be displayed in a string that includes
-- instructions on how to trigger the link, such as @{0} (ctrl + click)@.
-- The specific instructions vary depending on OS, user settings, and
-- localization.
--
-- Since LSP 3.15.0
, _tooltip :: Maybe Text
-- | A data entry field that is preserved on a document link between a
-- DocumentLinkRequest and a DocumentLinkResolveRequest.
, _xdata :: Maybe Value
} deriving (Read, Show, Eq)
deriveJSON lspOptions ''DocumentLink