packages feed

lsp-types 1.0.0.1 → 1.1.0.0

raw patch · 15 files changed

+357/−80 lines, 15 filesdep +dependent-sumPVP ok

version bump matches the API change (PVP)

Dependencies added: dependent-sum

API changes (from Hackage documentation)

- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasAllCommitCharacters Language.LSP.Types.Completion.CompletionOptions (GHC.Maybe.Maybe [GHC.Base.String])
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasAllCommitCharacters Language.LSP.Types.Completion.CompletionRegistrationOptions (GHC.Maybe.Maybe [GHC.Base.String])
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasCh Language.LSP.Types.Formatting.DocumentOnTypeFormattingParams GHC.Base.String
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasCode Language.LSP.Types.Diagnostic.Diagnostic (GHC.Maybe.Maybe (GHC.Types.Int Language.LSP.Types.Common.|? GHC.Base.String))
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasDocumentChanges Language.LSP.Types.WorkspaceEdit.WorkspaceEdit (GHC.Maybe.Maybe (Language.LSP.Types.Common.List Language.LSP.Types.WorkspaceEdit.TextDocumentEdit))
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasGlobPattern Language.LSP.Types.WatchedFiles.FileSystemWatcher GHC.Base.String
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasQuery Language.LSP.Types.WorkspaceSymbol.WorkspaceSymbolParams GHC.Base.String
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasRetriggerCharacters Language.LSP.Types.SignatureHelp.SignatureHelpOptions (GHC.Maybe.Maybe (Language.LSP.Types.Common.List GHC.Base.String))
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasRetriggerCharacters Language.LSP.Types.SignatureHelp.SignatureHelpRegistrationOptions (GHC.Maybe.Maybe (Language.LSP.Types.Common.List GHC.Base.String))
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTooltip Language.LSP.Types.DocumentLink.DocumentLink (GHC.Maybe.Maybe GHC.Base.String)
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTriggerCharacters Language.LSP.Types.Completion.CompletionOptions (GHC.Maybe.Maybe [GHC.Base.String])
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTriggerCharacters Language.LSP.Types.Completion.CompletionRegistrationOptions (GHC.Maybe.Maybe [GHC.Base.String])
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTriggerCharacters Language.LSP.Types.SignatureHelp.SignatureHelpOptions (GHC.Maybe.Maybe (Language.LSP.Types.Common.List GHC.Base.String))
- Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTriggerCharacters Language.LSP.Types.SignatureHelp.SignatureHelpRegistrationOptions (GHC.Maybe.Maybe (Language.LSP.Types.Common.List GHC.Base.String))
+ Language.LSP.Types: CreateFile :: Uri -> Maybe CreateFileOptions -> CreateFile
+ Language.LSP.Types: CreateFileOptions :: Maybe Bool -> Maybe Bool -> CreateFileOptions
+ Language.LSP.Types: DeleteFile :: Uri -> Maybe DeleteFileOptions -> DeleteFile
+ Language.LSP.Types: DeleteFileOptions :: Maybe Bool -> Maybe Bool -> DeleteFileOptions
+ Language.LSP.Types: Reason :: Text -> Reason
+ Language.LSP.Types: RenameFile :: Uri -> Uri -> Maybe RenameFileOptions -> RenameFile
+ Language.LSP.Types: RenameFileOptions :: Maybe Bool -> Maybe Bool -> RenameFileOptions
+ Language.LSP.Types: [$sel:_disabled:CodeAction] :: CodeAction -> Maybe Reason
+ Language.LSP.Types: [$sel:_ignoreIfExists:CreateFileOptions] :: CreateFileOptions -> Maybe Bool
+ Language.LSP.Types: [$sel:_ignoreIfExists:RenameFileOptions] :: RenameFileOptions -> Maybe Bool
+ Language.LSP.Types: [$sel:_ignoreIfNotExists:DeleteFileOptions] :: DeleteFileOptions -> Maybe Bool
+ Language.LSP.Types: [$sel:_newUri:RenameFile] :: RenameFile -> Uri
+ Language.LSP.Types: [$sel:_oldUri:RenameFile] :: RenameFile -> Uri
+ Language.LSP.Types: [$sel:_options:CreateFile] :: CreateFile -> Maybe CreateFileOptions
+ Language.LSP.Types: [$sel:_options:DeleteFile] :: DeleteFile -> Maybe DeleteFileOptions
+ Language.LSP.Types: [$sel:_options:RenameFile] :: RenameFile -> Maybe RenameFileOptions
+ Language.LSP.Types: [$sel:_overwrite:CreateFileOptions] :: CreateFileOptions -> Maybe Bool
+ Language.LSP.Types: [$sel:_overwrite:RenameFileOptions] :: RenameFileOptions -> Maybe Bool
+ Language.LSP.Types: [$sel:_reason:Reason] :: Reason -> Text
+ Language.LSP.Types: [$sel:_recursive:DeleteFileOptions] :: DeleteFileOptions -> Maybe Bool
+ Language.LSP.Types: [$sel:_uri:CreateFile] :: CreateFile -> Uri
+ Language.LSP.Types: [$sel:_uri:DeleteFile] :: DeleteFile -> Uri
+ Language.LSP.Types: data CreateFile
+ Language.LSP.Types: data CreateFileOptions
+ Language.LSP.Types: data DeleteFile
+ Language.LSP.Types: data DeleteFileOptions
+ Language.LSP.Types: data RenameFile
+ Language.LSP.Types: data RenameFileOptions
+ Language.LSP.Types: newtype Reason
+ Language.LSP.Types: type DocumentChange = TextDocumentEdit |? CreateFile |? RenameFile |? DeleteFile
+ Language.LSP.Types.Capabilities: CreateFile :: Uri -> Maybe CreateFileOptions -> CreateFile
+ Language.LSP.Types.Capabilities: CreateFileOptions :: Maybe Bool -> Maybe Bool -> CreateFileOptions
+ Language.LSP.Types.Capabilities: DeleteFile :: Uri -> Maybe DeleteFileOptions -> DeleteFile
+ Language.LSP.Types.Capabilities: DeleteFileOptions :: Maybe Bool -> Maybe Bool -> DeleteFileOptions
+ Language.LSP.Types.Capabilities: RenameFile :: Uri -> Uri -> Maybe RenameFileOptions -> RenameFile
+ Language.LSP.Types.Capabilities: RenameFileOptions :: Maybe Bool -> Maybe Bool -> RenameFileOptions
+ Language.LSP.Types.Capabilities: [$sel:_ignoreIfExists:CreateFileOptions] :: CreateFileOptions -> Maybe Bool
+ Language.LSP.Types.Capabilities: [$sel:_ignoreIfExists:RenameFileOptions] :: RenameFileOptions -> Maybe Bool
+ Language.LSP.Types.Capabilities: [$sel:_ignoreIfNotExists:DeleteFileOptions] :: DeleteFileOptions -> Maybe Bool
+ Language.LSP.Types.Capabilities: [$sel:_newUri:RenameFile] :: RenameFile -> Uri
+ Language.LSP.Types.Capabilities: [$sel:_oldUri:RenameFile] :: RenameFile -> Uri
+ Language.LSP.Types.Capabilities: [$sel:_options:CreateFile] :: CreateFile -> Maybe CreateFileOptions
+ Language.LSP.Types.Capabilities: [$sel:_options:DeleteFile] :: DeleteFile -> Maybe DeleteFileOptions
+ Language.LSP.Types.Capabilities: [$sel:_options:RenameFile] :: RenameFile -> Maybe RenameFileOptions
+ Language.LSP.Types.Capabilities: [$sel:_overwrite:CreateFileOptions] :: CreateFileOptions -> Maybe Bool
+ Language.LSP.Types.Capabilities: [$sel:_overwrite:RenameFileOptions] :: RenameFileOptions -> Maybe Bool
+ Language.LSP.Types.Capabilities: [$sel:_recursive:DeleteFileOptions] :: DeleteFileOptions -> Maybe Bool
+ Language.LSP.Types.Capabilities: [$sel:_uri:CreateFile] :: CreateFile -> Uri
+ Language.LSP.Types.Capabilities: [$sel:_uri:DeleteFile] :: DeleteFile -> Uri
+ Language.LSP.Types.Capabilities: data CreateFile
+ Language.LSP.Types.Capabilities: data CreateFileOptions
+ Language.LSP.Types.Capabilities: data DeleteFile
+ Language.LSP.Types.Capabilities: data DeleteFileOptions
+ Language.LSP.Types.Capabilities: data RenameFile
+ Language.LSP.Types.Capabilities: data RenameFileOptions
+ Language.LSP.Types.Capabilities: type DocumentChange = TextDocumentEdit |? CreateFile |? RenameFile |? DeleteFile
+ Language.LSP.Types.Lens: class HasDisabled s a | s -> a
+ Language.LSP.Types.Lens: class HasIgnoreIfExists s a | s -> a
+ Language.LSP.Types.Lens: class HasIgnoreIfNotExists s a | s -> a
+ Language.LSP.Types.Lens: class HasNewUri s a | s -> a
+ Language.LSP.Types.Lens: class HasOldUri s a | s -> a
+ Language.LSP.Types.Lens: class HasOriginSelectionRange s a | s -> a
+ Language.LSP.Types.Lens: class HasOverwrite s a | s -> a
+ Language.LSP.Types.Lens: class HasRecursive s a | s -> a
+ Language.LSP.Types.Lens: class HasTargetRange s a | s -> a
+ Language.LSP.Types.Lens: class HasTargetSelectionRange s a | s -> a
+ Language.LSP.Types.Lens: class HasTargetUri s a | s -> a
+ Language.LSP.Types.Lens: disabled :: HasDisabled s a => Lens' s a
+ Language.LSP.Types.Lens: ignoreIfExists :: HasIgnoreIfExists s a => Lens' s a
+ Language.LSP.Types.Lens: ignoreIfNotExists :: HasIgnoreIfNotExists s a => Lens' s a
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasAllCommitCharacters Language.LSP.Types.Completion.CompletionOptions (GHC.Maybe.Maybe [Data.Text.Internal.Text])
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasAllCommitCharacters Language.LSP.Types.Completion.CompletionRegistrationOptions (GHC.Maybe.Maybe [Data.Text.Internal.Text])
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasCh Language.LSP.Types.Formatting.DocumentOnTypeFormattingParams Data.Text.Internal.Text
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasCode Language.LSP.Types.Diagnostic.Diagnostic (GHC.Maybe.Maybe (GHC.Types.Int Language.LSP.Types.Common.|? Data.Text.Internal.Text))
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasDisabled Language.LSP.Types.CodeAction.CodeAction (GHC.Maybe.Maybe Language.LSP.Types.CodeAction.Reason)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasDocumentChanges Language.LSP.Types.WorkspaceEdit.WorkspaceEdit (GHC.Maybe.Maybe (Language.LSP.Types.Common.List Language.LSP.Types.WorkspaceEdit.DocumentChange))
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasDocumentSelector Language.LSP.Types.Definition.DefinitionRegistrationOptions (GHC.Maybe.Maybe Language.LSP.Types.DocumentFilter.DocumentSelector)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasDocumentSelector Language.LSP.Types.Implementation.ImplementationRegistrationOptions (GHC.Maybe.Maybe Language.LSP.Types.DocumentFilter.DocumentSelector)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasDocumentSelector Language.LSP.Types.References.ReferenceRegistrationOptions (GHC.Maybe.Maybe Language.LSP.Types.DocumentFilter.DocumentSelector)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasDocumentSelector Language.LSP.Types.TypeDefinition.TypeDefinitionRegistrationOptions (GHC.Maybe.Maybe Language.LSP.Types.DocumentFilter.DocumentSelector)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasGlobPattern Language.LSP.Types.WatchedFiles.FileSystemWatcher Data.Text.Internal.Text
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasId Language.LSP.Types.Implementation.ImplementationRegistrationOptions (GHC.Maybe.Maybe Data.Text.Internal.Text)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasId Language.LSP.Types.StaticRegistrationOptions.StaticRegistrationOptions (GHC.Maybe.Maybe Data.Text.Internal.Text)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasId Language.LSP.Types.TypeDefinition.TypeDefinitionRegistrationOptions (GHC.Maybe.Maybe Data.Text.Internal.Text)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasIgnoreIfExists Language.LSP.Types.WorkspaceEdit.CreateFileOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasIgnoreIfExists Language.LSP.Types.WorkspaceEdit.RenameFileOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasIgnoreIfNotExists Language.LSP.Types.WorkspaceEdit.DeleteFileOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasKind Language.LSP.Types.MarkupContent.MarkupContent Language.LSP.Types.MarkupContent.MarkupKind
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasNewUri Language.LSP.Types.WorkspaceEdit.RenameFile Language.LSP.Types.Uri.Uri
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasOldUri Language.LSP.Types.WorkspaceEdit.RenameFile Language.LSP.Types.Uri.Uri
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasOptions Language.LSP.Types.WorkspaceEdit.CreateFile (GHC.Maybe.Maybe Language.LSP.Types.WorkspaceEdit.CreateFileOptions)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasOptions Language.LSP.Types.WorkspaceEdit.DeleteFile (GHC.Maybe.Maybe Language.LSP.Types.WorkspaceEdit.DeleteFileOptions)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasOptions Language.LSP.Types.WorkspaceEdit.RenameFile (GHC.Maybe.Maybe Language.LSP.Types.WorkspaceEdit.RenameFileOptions)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasOriginSelectionRange Language.LSP.Types.Location.LocationLink (GHC.Maybe.Maybe Language.LSP.Types.Location.Range)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasOverwrite Language.LSP.Types.WorkspaceEdit.CreateFileOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasOverwrite Language.LSP.Types.WorkspaceEdit.RenameFileOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasPartialResultToken Language.LSP.Types.Definition.DefinitionParams (GHC.Maybe.Maybe Language.LSP.Types.Progress.ProgressToken)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasPartialResultToken Language.LSP.Types.Implementation.ImplementationParams (GHC.Maybe.Maybe Language.LSP.Types.Progress.ProgressToken)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasPartialResultToken Language.LSP.Types.Progress.PartialResultParams (GHC.Maybe.Maybe Language.LSP.Types.Progress.ProgressToken)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasPartialResultToken Language.LSP.Types.TypeDefinition.TypeDefinitionParams (GHC.Maybe.Maybe Language.LSP.Types.Progress.ProgressToken)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasPosition Language.LSP.Types.Definition.DefinitionParams Language.LSP.Types.Location.Position
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasPosition Language.LSP.Types.Hover.HoverParams Language.LSP.Types.Location.Position
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasPosition Language.LSP.Types.Implementation.ImplementationParams Language.LSP.Types.Location.Position
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasPosition Language.LSP.Types.TypeDefinition.TypeDefinitionParams Language.LSP.Types.Location.Position
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasQuery Language.LSP.Types.WorkspaceSymbol.WorkspaceSymbolParams Data.Text.Internal.Text
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasRecursive Language.LSP.Types.WorkspaceEdit.DeleteFileOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasRetriggerCharacters Language.LSP.Types.SignatureHelp.SignatureHelpOptions (GHC.Maybe.Maybe (Language.LSP.Types.Common.List Data.Text.Internal.Text))
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasRetriggerCharacters Language.LSP.Types.SignatureHelp.SignatureHelpRegistrationOptions (GHC.Maybe.Maybe (Language.LSP.Types.Common.List Data.Text.Internal.Text))
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTargetRange Language.LSP.Types.Location.LocationLink Language.LSP.Types.Location.Range
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTargetSelectionRange Language.LSP.Types.Location.LocationLink Language.LSP.Types.Location.Range
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTargetUri Language.LSP.Types.Location.LocationLink Language.LSP.Types.Uri.Uri
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTextDocument Language.LSP.Types.Definition.DefinitionParams Language.LSP.Types.TextDocument.TextDocumentIdentifier
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTextDocument Language.LSP.Types.Hover.HoverParams Language.LSP.Types.TextDocument.TextDocumentIdentifier
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTextDocument Language.LSP.Types.Implementation.ImplementationParams Language.LSP.Types.TextDocument.TextDocumentIdentifier
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTextDocument Language.LSP.Types.TypeDefinition.TypeDefinitionParams Language.LSP.Types.TextDocument.TextDocumentIdentifier
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTooltip Language.LSP.Types.DocumentLink.DocumentLink (GHC.Maybe.Maybe Data.Text.Internal.Text)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTriggerCharacters Language.LSP.Types.Completion.CompletionOptions (GHC.Maybe.Maybe [Data.Text.Internal.Text])
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTriggerCharacters Language.LSP.Types.Completion.CompletionRegistrationOptions (GHC.Maybe.Maybe [Data.Text.Internal.Text])
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTriggerCharacters Language.LSP.Types.SignatureHelp.SignatureHelpOptions (GHC.Maybe.Maybe (Language.LSP.Types.Common.List Data.Text.Internal.Text))
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasTriggerCharacters Language.LSP.Types.SignatureHelp.SignatureHelpRegistrationOptions (GHC.Maybe.Maybe (Language.LSP.Types.Common.List Data.Text.Internal.Text))
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasUri Language.LSP.Types.WorkspaceEdit.CreateFile Language.LSP.Types.Uri.Uri
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasUri Language.LSP.Types.WorkspaceEdit.DeleteFile Language.LSP.Types.Uri.Uri
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasValue Language.LSP.Types.MarkupContent.MarkupContent Data.Text.Internal.Text
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneProgress Language.LSP.Types.ClientCapabilities.WindowClientCapabilities (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneProgress Language.LSP.Types.Definition.DefinitionOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneProgress Language.LSP.Types.Definition.DefinitionRegistrationOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneProgress Language.LSP.Types.Hover.HoverOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneProgress Language.LSP.Types.Implementation.ImplementationOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneProgress Language.LSP.Types.Implementation.ImplementationRegistrationOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneProgress Language.LSP.Types.Progress.WorkDoneProgressOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneProgress Language.LSP.Types.References.ReferenceOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneProgress Language.LSP.Types.References.ReferenceRegistrationOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneProgress Language.LSP.Types.TypeDefinition.TypeDefinitionOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneProgress Language.LSP.Types.TypeDefinition.TypeDefinitionRegistrationOptions (GHC.Maybe.Maybe GHC.Types.Bool)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneToken Language.LSP.Types.Definition.DefinitionParams (GHC.Maybe.Maybe Language.LSP.Types.Progress.ProgressToken)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneToken Language.LSP.Types.Hover.HoverParams (GHC.Maybe.Maybe Language.LSP.Types.Progress.ProgressToken)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneToken Language.LSP.Types.Implementation.ImplementationParams (GHC.Maybe.Maybe Language.LSP.Types.Progress.ProgressToken)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneToken Language.LSP.Types.Progress.WorkDoneProgressParams (GHC.Maybe.Maybe Language.LSP.Types.Progress.ProgressToken)
+ Language.LSP.Types.Lens: instance Language.LSP.Types.Lens.HasWorkDoneToken Language.LSP.Types.TypeDefinition.TypeDefinitionParams (GHC.Maybe.Maybe Language.LSP.Types.Progress.ProgressToken)
+ Language.LSP.Types.Lens: newUri :: HasNewUri s a => Lens' s a
+ Language.LSP.Types.Lens: oldUri :: HasOldUri s a => Lens' s a
+ Language.LSP.Types.Lens: originSelectionRange :: HasOriginSelectionRange s a => Lens' s a
+ Language.LSP.Types.Lens: overwrite :: HasOverwrite s a => Lens' s a
+ Language.LSP.Types.Lens: recursive :: HasRecursive s a => Lens' s a
+ Language.LSP.Types.Lens: targetRange :: HasTargetRange s a => Lens' s a
+ Language.LSP.Types.Lens: targetSelectionRange :: HasTargetSelectionRange s a => Lens' s a
+ Language.LSP.Types.Lens: targetUri :: HasTargetUri s a => Lens' s a
- Language.LSP.Types: CodeAction :: Text -> Maybe CodeActionKind -> Maybe (List Diagnostic) -> Maybe Bool -> Maybe WorkspaceEdit -> Maybe Command -> CodeAction
+ Language.LSP.Types: CodeAction :: Text -> Maybe CodeActionKind -> Maybe (List Diagnostic) -> Maybe Bool -> Maybe Reason -> Maybe WorkspaceEdit -> Maybe Command -> CodeAction
- Language.LSP.Types: CompletionOptions :: Maybe Bool -> Maybe [String] -> Maybe [String] -> Maybe Bool -> CompletionOptions
+ Language.LSP.Types: CompletionOptions :: Maybe Bool -> Maybe [Text] -> Maybe [Text] -> Maybe Bool -> CompletionOptions
- Language.LSP.Types: CompletionRegistrationOptions :: Maybe DocumentSelector -> Maybe Bool -> Maybe [String] -> Maybe [String] -> Maybe Bool -> CompletionRegistrationOptions
+ Language.LSP.Types: CompletionRegistrationOptions :: Maybe DocumentSelector -> Maybe Bool -> Maybe [Text] -> Maybe [Text] -> Maybe Bool -> CompletionRegistrationOptions
- Language.LSP.Types: Diagnostic :: Range -> Maybe DiagnosticSeverity -> Maybe (Int |? String) -> Maybe DiagnosticSource -> Text -> Maybe (List DiagnosticTag) -> Maybe (List DiagnosticRelatedInformation) -> Diagnostic
+ Language.LSP.Types: Diagnostic :: Range -> Maybe DiagnosticSeverity -> Maybe (Int |? Text) -> Maybe DiagnosticSource -> Text -> Maybe (List DiagnosticTag) -> Maybe (List DiagnosticRelatedInformation) -> Diagnostic
- Language.LSP.Types: DocumentLink :: Range -> Maybe Uri -> Maybe String -> Maybe Value -> DocumentLink
+ Language.LSP.Types: DocumentLink :: Range -> Maybe Uri -> Maybe Text -> Maybe Value -> DocumentLink
- Language.LSP.Types: DocumentOnTypeFormattingParams :: TextDocumentIdentifier -> Position -> String -> FormattingOptions -> DocumentOnTypeFormattingParams
+ Language.LSP.Types: DocumentOnTypeFormattingParams :: TextDocumentIdentifier -> Position -> Text -> FormattingOptions -> DocumentOnTypeFormattingParams
- Language.LSP.Types: FileSystemWatcher :: String -> Maybe WatchKind -> FileSystemWatcher
+ Language.LSP.Types: FileSystemWatcher :: Text -> Maybe WatchKind -> FileSystemWatcher
- Language.LSP.Types: SignatureHelpContext :: SignatureHelpTriggerKind -> Maybe String -> Bool -> Maybe SignatureHelp -> SignatureHelpContext
+ Language.LSP.Types: SignatureHelpContext :: SignatureHelpTriggerKind -> Maybe Text -> Bool -> Maybe SignatureHelp -> SignatureHelpContext
- Language.LSP.Types: SignatureHelpOptions :: Maybe Bool -> Maybe (List String) -> Maybe (List String) -> SignatureHelpOptions
+ Language.LSP.Types: SignatureHelpOptions :: Maybe Bool -> Maybe (List Text) -> Maybe (List Text) -> SignatureHelpOptions
- Language.LSP.Types: SignatureHelpRegistrationOptions :: Maybe DocumentSelector -> Maybe Bool -> Maybe (List String) -> Maybe (List String) -> SignatureHelpRegistrationOptions
+ Language.LSP.Types: SignatureHelpRegistrationOptions :: Maybe DocumentSelector -> Maybe Bool -> Maybe (List Text) -> Maybe (List Text) -> SignatureHelpRegistrationOptions
- Language.LSP.Types: WorkspaceEdit :: Maybe WorkspaceEditMap -> Maybe (List TextDocumentEdit) -> WorkspaceEdit
+ Language.LSP.Types: WorkspaceEdit :: Maybe WorkspaceEditMap -> Maybe (List DocumentChange) -> WorkspaceEdit
- Language.LSP.Types: WorkspaceSymbolParams :: Maybe ProgressToken -> Maybe ProgressToken -> String -> WorkspaceSymbolParams
+ Language.LSP.Types: WorkspaceSymbolParams :: Maybe ProgressToken -> Maybe ProgressToken -> Text -> WorkspaceSymbolParams
- Language.LSP.Types: [$sel:_allCommitCharacters:CompletionOptions] :: CompletionOptions -> Maybe [String]
+ Language.LSP.Types: [$sel:_allCommitCharacters:CompletionOptions] :: CompletionOptions -> Maybe [Text]
- Language.LSP.Types: [$sel:_allCommitCharacters:CompletionRegistrationOptions] :: CompletionRegistrationOptions -> Maybe [String]
+ Language.LSP.Types: [$sel:_allCommitCharacters:CompletionRegistrationOptions] :: CompletionRegistrationOptions -> Maybe [Text]
- Language.LSP.Types: [$sel:_ch:DocumentOnTypeFormattingParams] :: DocumentOnTypeFormattingParams -> String
+ Language.LSP.Types: [$sel:_ch:DocumentOnTypeFormattingParams] :: DocumentOnTypeFormattingParams -> Text
- Language.LSP.Types: [$sel:_code:Diagnostic] :: Diagnostic -> Maybe (Int |? String)
+ Language.LSP.Types: [$sel:_code:Diagnostic] :: Diagnostic -> Maybe (Int |? Text)
- Language.LSP.Types: [$sel:_documentChanges:WorkspaceEdit] :: WorkspaceEdit -> Maybe (List TextDocumentEdit)
+ Language.LSP.Types: [$sel:_documentChanges:WorkspaceEdit] :: WorkspaceEdit -> Maybe (List DocumentChange)
- Language.LSP.Types: [$sel:_globPattern:FileSystemWatcher] :: FileSystemWatcher -> String
+ Language.LSP.Types: [$sel:_globPattern:FileSystemWatcher] :: FileSystemWatcher -> Text
- Language.LSP.Types: [$sel:_query:WorkspaceSymbolParams] :: WorkspaceSymbolParams -> String
+ Language.LSP.Types: [$sel:_query:WorkspaceSymbolParams] :: WorkspaceSymbolParams -> Text
- Language.LSP.Types: [$sel:_retriggerCharacters:SignatureHelpOptions] :: SignatureHelpOptions -> Maybe (List String)
+ Language.LSP.Types: [$sel:_retriggerCharacters:SignatureHelpOptions] :: SignatureHelpOptions -> Maybe (List Text)
- Language.LSP.Types: [$sel:_retriggerCharacters:SignatureHelpRegistrationOptions] :: SignatureHelpRegistrationOptions -> Maybe (List String)
+ Language.LSP.Types: [$sel:_retriggerCharacters:SignatureHelpRegistrationOptions] :: SignatureHelpRegistrationOptions -> Maybe (List Text)
- Language.LSP.Types: [$sel:_tooltip:DocumentLink] :: DocumentLink -> Maybe String
+ Language.LSP.Types: [$sel:_tooltip:DocumentLink] :: DocumentLink -> Maybe Text
- Language.LSP.Types: [$sel:_triggerCharacter:SignatureHelpContext] :: SignatureHelpContext -> Maybe String
+ Language.LSP.Types: [$sel:_triggerCharacter:SignatureHelpContext] :: SignatureHelpContext -> Maybe Text
- Language.LSP.Types: [$sel:_triggerCharacters:CompletionOptions] :: CompletionOptions -> Maybe [String]
+ Language.LSP.Types: [$sel:_triggerCharacters:CompletionOptions] :: CompletionOptions -> Maybe [Text]
- Language.LSP.Types: [$sel:_triggerCharacters:CompletionRegistrationOptions] :: CompletionRegistrationOptions -> Maybe [String]
+ Language.LSP.Types: [$sel:_triggerCharacters:CompletionRegistrationOptions] :: CompletionRegistrationOptions -> Maybe [Text]
- Language.LSP.Types: [$sel:_triggerCharacters:SignatureHelpOptions] :: SignatureHelpOptions -> Maybe (List String)
+ Language.LSP.Types: [$sel:_triggerCharacters:SignatureHelpOptions] :: SignatureHelpOptions -> Maybe (List Text)
- Language.LSP.Types: [$sel:_triggerCharacters:SignatureHelpRegistrationOptions] :: SignatureHelpRegistrationOptions -> Maybe (List String)
+ Language.LSP.Types: [$sel:_triggerCharacters:SignatureHelpRegistrationOptions] :: SignatureHelpRegistrationOptions -> Maybe (List Text)
- Language.LSP.Types: regHelper :: forall m_a4ARj x_a4ARk. SMethod m_a4ARj -> (Show (RegistrationOptions m_a4ARj) => ToJSON (RegistrationOptions m_a4ARj) => FromJSON (RegistrationOptions m_a4ARj) => x_a4ARk) -> x_a4ARk
+ Language.LSP.Types: regHelper :: forall m_a4HHA x_a4HHB. SMethod m_a4HHA -> (Show (RegistrationOptions m_a4HHA) => ToJSON (RegistrationOptions m_a4HHA) => FromJSON (RegistrationOptions m_a4HHA) => x_a4HHB) -> x_a4HHB
- Language.LSP.Types.Capabilities: WorkspaceEdit :: Maybe WorkspaceEditMap -> Maybe (List TextDocumentEdit) -> WorkspaceEdit
+ Language.LSP.Types.Capabilities: WorkspaceEdit :: Maybe WorkspaceEditMap -> Maybe (List DocumentChange) -> WorkspaceEdit
- Language.LSP.Types.Capabilities: [$sel:_documentChanges:WorkspaceEdit] :: WorkspaceEdit -> Maybe (List TextDocumentEdit)
+ Language.LSP.Types.Capabilities: [$sel:_documentChanges:WorkspaceEdit] :: WorkspaceEdit -> Maybe (List DocumentChange)

Files

ChangeLog.md view
@@ -1,5 +1,38 @@ # Revision history for haskell-lsp-types +## 1.1.0.0++* Fix prepareRename reponse and prepareProvider (@kirelagin)+* Fix deriving instance of MonadUnliftIO (@banacorn)+* Add support for file and folder operations in WorkspaceEdit (@banacorn)+Instead of having TextDocumentEdit in WorkspaceEdit++```haskell+data WorkspaceEdit =+  WorkspaceEdit+    { _changes         :: Maybe WorkspaceEditMap+    , _documentChanges :: Maybe (List TextDocumentEdit)+    } deriving (Show, Read, Eq)+```+It is now replaced by a new type called DocumentChange++```haskell+data WorkspaceEdit =+  WorkspaceEdit+    { _changes         :: Maybe WorkspaceEditMap+    , _documentChanges :: Maybe (List DocumentChange)+    } deriving (Show, Read, Eq)+```+Which is just a synonym of union of WorkspaceEdit and other operations++```haskell+type DocumentChange = TextDocumentEdit |? CreateFile |? RenameFile |? DeleteFile+```+* Add new CodeAction features (isPreferred, disabled) (@pepeiborra)+* Respond to requests with missing handlers (@wz1000)+* Use Text over String in more places (@wz1000)+* Add missing lenses (@wz1000, @bubba)+ ## 1.0.0.0  1.0.0.0 is a major rework with both internal and external facing changes, and
lsp-types.cabal view
@@ -1,5 +1,5 @@ name:                lsp-types-version:             1.0.0.1+version:             1.1.0.0 synopsis:            Haskell library for the Microsoft Language Server Protocol, data types  description:         An implementation of the types to allow language implementors to@@ -10,7 +10,7 @@ license-file:        LICENSE author:              Alan Zimmerman maintainer:          alan.zimm@gmail.com-copyright:           Alan Zimmerman, 2016-2020+copyright:           Alan Zimmerman, 2016-2021 category:            Development build-type:          Simple extra-source-files:  ChangeLog.md, README.md@@ -84,6 +84,7 @@                      , scientific                      , some                      , dependent-sum-template+                     , dependent-sum >= 0.6.2.2                      , text                      , template-haskell                      , temporary@@ -93,4 +94,4 @@  source-repository head   type:     git-  location: https://github.com/alanz/haskell-lsp+  location: https://github.com/alanz/lsp
src/Language/LSP/Types/CodeAction.hs view
@@ -173,6 +173,11 @@   ] deriveJSON lspOptions ''CodeActionParams +newtype Reason = Reason {_reason :: Text}+  deriving (Read, Show, Eq)++deriveJSON lspOptions ''Reason+ -- | A code action represents a change that can be performed in code, e.g. to fix a problem or -- to refactor code. --@@ -194,6 +199,7 @@     --     -- Since LSP 3.15.0     _isPreferred :: Maybe Bool,+    _disabled    :: Maybe Reason, -- ^ Marks that the code action cannot currently be applied.     -- | The workspace edit this code action performs.     _edit :: Maybe WorkspaceEdit,     -- | A command this code action executes. If a code action
src/Language/LSP/Types/Completion.hs view
@@ -303,8 +303,8 @@   parseJSON _          = mempty  makeExtendingDatatype "CompletionOptions" [''WorkDoneProgressOptions]-  [ ("_triggerCharacters", [t| Maybe [String] |])-  , ("_allCommitCharacters", [t| Maybe [String] |])+  [ ("_triggerCharacters", [t| Maybe [Text] |])+  , ("_allCommitCharacters", [t| Maybe [Text] |])   , ("_resolveProvider", [t| Maybe Bool|])   ] deriveJSON lspOptions ''CompletionOptions
src/Language/LSP/Types/Diagnostic.hs view
@@ -82,7 +82,7 @@   Diagnostic     { _range              :: Range     , _severity           :: Maybe DiagnosticSeverity-    , _code               :: Maybe (Int |? String)+    , _code               :: Maybe (Int |? Text)     , _source             :: Maybe DiagnosticSource     , _message            :: Text     , _tags               :: Maybe (List DiagnosticTag)
src/Language/LSP/Types/DocumentLink.hs view
@@ -10,6 +10,7 @@ import Language.LSP.Types.TextDocument import Language.LSP.Types.Uri import Language.LSP.Types.Utils+import Data.Text (Text)  data DocumentLinkClientCapabilities =   DocumentLinkClientCapabilities@@ -62,7 +63,7 @@     -- localization.     --     -- Since LSP 3.15.0-  , _tooltip :: Maybe String+  , _tooltip :: Maybe Text     -- | A data entry field that is preserved on a document link between a     -- DocumentLinkRequest and a DocumentLinkResolveRequest.   , _xdata :: Maybe Value
src/Language/LSP/Types/Formatting.hs view
@@ -107,7 +107,7 @@ deriveJSON lspOptions ''DocumentOnTypeFormattingRegistrationOptions  makeExtendingDatatype "DocumentOnTypeFormattingParams" [''TextDocumentPositionParams]-  [ ("_ch", [t| String |])+  [ ("_ch", [t| Text |])   , ("_options", [t| FormattingOptions |])   ] deriveJSON lspOptions ''DocumentOnTypeFormattingParams
src/Language/LSP/Types/Lens.hs view
@@ -30,6 +30,7 @@ import           Language.LSP.Types.Implementation import           Language.LSP.Types.Initialize import           Language.LSP.Types.Location+import           Language.LSP.Types.MarkupContent import           Language.LSP.Types.Progress import           Language.LSP.Types.Registration import           Language.LSP.Types.References@@ -37,6 +38,7 @@ import           Language.LSP.Types.SignatureHelp import           Language.LSP.Types.SelectionRange import           Language.LSP.Types.ServerCapabilities+import           Language.LSP.Types.StaticRegistrationOptions import           Language.LSP.Types.DocumentSymbol import           Language.LSP.Types.TextDocument import           Language.LSP.Types.TypeDefinition@@ -51,64 +53,22 @@ -- TODO: This is out of date and very unmantainable, use TH to call all these!!  -- client capabilities-makeFieldsNoPrefix ''WorkspaceEditClientCapabilities-makeFieldsNoPrefix ''DidChangeConfigurationClientCapabilities-makeFieldsNoPrefix ''ExecuteCommandClientCapabilities makeFieldsNoPrefix ''WorkspaceClientCapabilities-makeFieldsNoPrefix ''TextDocumentSyncClientCapabilities-makeFieldsNoPrefix ''CompletionItemTagsClientCapabilities-makeFieldsNoPrefix ''CompletionItemClientCapabilities-makeFieldsNoPrefix ''CompletionItemKindClientCapabilities-makeFieldsNoPrefix ''CompletionClientCapabilities-makeFieldsNoPrefix ''HoverClientCapabilities-makeFieldsNoPrefix ''SignatureHelpSignatureInformation-makeFieldsNoPrefix ''SignatureHelpParameterInformation-makeFieldsNoPrefix ''SignatureHelpClientCapabilities-makeFieldsNoPrefix ''ReferencesClientCapabilities-makeFieldsNoPrefix ''DefinitionClientCapabilities-makeFieldsNoPrefix ''TypeDefinitionClientCapabilities-makeFieldsNoPrefix ''ImplementationClientCapabilities-makeFieldsNoPrefix ''PublishDiagnosticsClientCapabilities-makeFieldsNoPrefix ''PublishDiagnosticsTagsClientCapabilities-makeFieldsNoPrefix ''TextDocumentClientCapabilities+makeFieldsNoPrefix ''WindowClientCapabilities makeFieldsNoPrefix ''ClientCapabilities  -- --------------------------------------------------------------------- -makeFieldsNoPrefix ''CompletionOptions-makeFieldsNoPrefix ''SignatureHelpOptions-makeFieldsNoPrefix ''ExecuteCommandOptions makeFieldsNoPrefix ''SaveOptions-makeFieldsNoPrefix ''TextDocumentSyncOptions makeFieldsNoPrefix ''WorkspaceServerCapabilities makeFieldsNoPrefix ''WorkspaceFoldersServerCapabilities makeFieldsNoPrefix ''ServerCapabilities makeFieldsNoPrefix ''Registration makeFieldsNoPrefix ''RegistrationParams-makeFieldsNoPrefix ''TextDocumentRegistrationOptions makeFieldsNoPrefix ''Unregistration makeFieldsNoPrefix ''UnregistrationParams-makeFieldsNoPrefix ''DidChangeConfigurationParams-makeFieldsNoPrefix ''ConfigurationItem-makeFieldsNoPrefix ''ConfigurationParams-makeFieldsNoPrefix ''DidOpenTextDocumentParams-makeFieldsNoPrefix ''TextDocumentContentChangeEvent-makeFieldsNoPrefix ''DidChangeTextDocumentParams-makeFieldsNoPrefix ''TextDocumentChangeRegistrationOptions-makeFieldsNoPrefix ''WillSaveTextDocumentParams-makeFieldsNoPrefix ''DidSaveTextDocumentParams-makeFieldsNoPrefix ''TextDocumentSaveRegistrationOptions-makeFieldsNoPrefix ''DidCloseTextDocumentParams-makeFieldsNoPrefix ''PublishDiagnosticsParams-makeFieldsNoPrefix ''LanguageString makeFieldsNoPrefix ''ParameterInformation makeFieldsNoPrefix ''SignatureInformation-makeFieldsNoPrefix ''SignatureHelp-makeFieldsNoPrefix ''SignatureHelpRegistrationOptions-makeFieldsNoPrefix ''ReferenceContext-makeFieldsNoPrefix ''ReferenceParams-makeFieldsNoPrefix ''ExecuteCommandParams-makeFieldsNoPrefix ''ExecuteCommandRegistrationOptions makeFieldsNoPrefix ''ApplyWorkspaceEditParams makeFieldsNoPrefix ''ApplyWorkspaceEditResponseBody @@ -122,6 +82,12 @@ makeFieldsNoPrefix ''ServerInfo makeFieldsNoPrefix ''InitializedParams +-- Configuration+makeFieldsNoPrefix ''DidChangeConfigurationParams+makeFieldsNoPrefix ''ConfigurationItem+makeFieldsNoPrefix ''ConfigurationParams+makeFieldsNoPrefix ''DidChangeConfigurationClientCapabilities+ -- Watched files makeFieldsNoPrefix ''DidChangeWatchedFilesClientCapabilities makeFieldsNoPrefix ''DidChangeWatchedFilesRegistrationOptions@@ -141,13 +107,22 @@ makeFieldsNoPrefix ''Position makeFieldsNoPrefix ''Range makeFieldsNoPrefix ''Location+makeFieldsNoPrefix ''LocationLink +-- Markup+makeFieldsNoPrefix ''MarkupContent+ -- Completion makeFieldsNoPrefix ''CompletionItem makeFieldsNoPrefix ''CompletionContext makeFieldsNoPrefix ''CompletionList makeFieldsNoPrefix ''CompletionParams+makeFieldsNoPrefix ''CompletionOptions makeFieldsNoPrefix ''CompletionRegistrationOptions+makeFieldsNoPrefix ''CompletionItemTagsClientCapabilities+makeFieldsNoPrefix ''CompletionItemClientCapabilities+makeFieldsNoPrefix ''CompletionItemKindClientCapabilities+makeFieldsNoPrefix ''CompletionClientCapabilities  -- Declaration makeFieldsNoPrefix ''DeclarationClientCapabilities@@ -220,6 +195,13 @@ makeFieldsNoPrefix ''PrepareRenameParams makeFieldsNoPrefix ''RangeWithPlaceholder +-- References+makeFieldsNoPrefix ''ReferencesClientCapabilities+makeFieldsNoPrefix ''ReferenceOptions+makeFieldsNoPrefix ''ReferenceRegistrationOptions+makeFieldsNoPrefix ''ReferenceContext+makeFieldsNoPrefix ''ReferenceParams+ -- FoldingRange makeFieldsNoPrefix ''FoldingRangeClientCapabilities makeFieldsNoPrefix ''FoldingRangeOptions@@ -257,7 +239,14 @@ makeFieldsNoPrefix ''TextEdit makeFieldsNoPrefix ''VersionedTextDocumentIdentifier makeFieldsNoPrefix ''TextDocumentEdit+makeFieldsNoPrefix ''CreateFileOptions+makeFieldsNoPrefix ''CreateFile+makeFieldsNoPrefix ''RenameFileOptions+makeFieldsNoPrefix ''RenameFile+makeFieldsNoPrefix ''DeleteFileOptions+makeFieldsNoPrefix ''DeleteFile makeFieldsNoPrefix ''WorkspaceEdit+makeFieldsNoPrefix ''WorkspaceEditClientCapabilities  -- Workspace Folders makeFieldsNoPrefix ''WorkspaceFolder@@ -275,19 +264,59 @@ makeFieldsNoPrefix ''TextDocumentItem makeFieldsNoPrefix ''TextDocumentIdentifier makeFieldsNoPrefix ''TextDocumentPositionParams+makeFieldsNoPrefix ''TextDocumentSyncClientCapabilities+makeFieldsNoPrefix ''TextDocumentClientCapabilities+makeFieldsNoPrefix ''TextDocumentRegistrationOptions+makeFieldsNoPrefix ''TextDocumentSyncOptions+makeFieldsNoPrefix ''DidOpenTextDocumentParams+makeFieldsNoPrefix ''TextDocumentContentChangeEvent+makeFieldsNoPrefix ''DidChangeTextDocumentParams+makeFieldsNoPrefix ''TextDocumentChangeRegistrationOptions+makeFieldsNoPrefix ''WillSaveTextDocumentParams+makeFieldsNoPrefix ''DidSaveTextDocumentParams+makeFieldsNoPrefix ''TextDocumentSaveRegistrationOptions+makeFieldsNoPrefix ''DidCloseTextDocumentParams  -- Command makeFieldsNoPrefix ''Command+makeFieldsNoPrefix ''ExecuteCommandParams+makeFieldsNoPrefix ''ExecuteCommandRegistrationOptions+makeFieldsNoPrefix ''ExecuteCommandClientCapabilities+makeFieldsNoPrefix ''ExecuteCommandOptions  -- Diagnostic-makeFieldsNoPrefix ''Diagnostic makeFieldsNoPrefix ''DiagnosticRelatedInformation+makeFieldsNoPrefix ''Diagnostic+makeFieldsNoPrefix ''PublishDiagnosticsTagsClientCapabilities+makeFieldsNoPrefix ''PublishDiagnosticsClientCapabilities+makeFieldsNoPrefix ''PublishDiagnosticsParams  -- Hover+makeFieldsNoPrefix ''HoverClientCapabilities makeFieldsNoPrefix ''Hover+makeFieldsNoPrefix ''HoverParams+makeFieldsNoPrefix ''HoverOptions makeFieldsNoPrefix ''HoverRegistrationOptions+makeFieldsNoPrefix ''LanguageString +-- Implementation+makeFieldsNoPrefix ''ImplementationClientCapabilities+makeFieldsNoPrefix ''ImplementationOptions+makeFieldsNoPrefix ''ImplementationRegistrationOptions+makeFieldsNoPrefix ''ImplementationParams +-- Definition+makeFieldsNoPrefix ''DefinitionOptions+makeFieldsNoPrefix ''DefinitionRegistrationOptions+makeFieldsNoPrefix ''DefinitionParams+makeFieldsNoPrefix ''DefinitionClientCapabilities++-- Type Definition+makeFieldsNoPrefix ''TypeDefinitionOptions+makeFieldsNoPrefix ''TypeDefinitionRegistrationOptions+makeFieldsNoPrefix ''TypeDefinitionParams+makeFieldsNoPrefix ''TypeDefinitionClientCapabilities+ -- Window makeFieldsNoPrefix ''ShowMessageParams makeFieldsNoPrefix ''MessageActionItem@@ -299,3 +328,17 @@ makeFieldsNoPrefix ''WorkDoneProgressEndParams makeFieldsNoPrefix ''WorkDoneProgressCancelParams makeFieldsNoPrefix ''WorkDoneProgressCreateParams+makeFieldsNoPrefix ''WorkDoneProgressOptions+makeFieldsNoPrefix ''WorkDoneProgressParams+makeFieldsNoPrefix ''PartialResultParams++-- Signature Help+makeFieldsNoPrefix ''SignatureHelpSignatureInformation+makeFieldsNoPrefix ''SignatureHelpParameterInformation+makeFieldsNoPrefix ''SignatureHelpClientCapabilities+makeFieldsNoPrefix ''SignatureHelpOptions+makeFieldsNoPrefix ''SignatureHelpRegistrationOptions+makeFieldsNoPrefix ''SignatureHelp++-- Static registration+makeFieldsNoPrefix ''StaticRegistrationOptions
src/Language/LSP/Types/Message.hs view
@@ -193,7 +193,7 @@   ResponseResult TextDocumentOnTypeFormatting  = List TextEdit   -- Rename   ResponseResult TextDocumentRename            = WorkspaceEdit-  ResponseResult TextDocumentPrepareRename     = Range |? RangeWithPlaceholder+  ResponseResult TextDocumentPrepareRename     = Maybe (Range |? RangeWithPlaceholder)   -- FoldingRange   ResponseResult TextDocumentFoldingRange      = List FoldingRange   ResponseResult TextDocumentSelectionRange    = List SelectionRange
src/Language/LSP/Types/Method.hs view
@@ -16,7 +16,7 @@ import           Language.LSP.Types.Utils import           Data.Function (on) import Control.Applicative-import  Data.GADT.Compare.TH+import Data.GADT.Compare.TH  -- --------------------------------------------------------------------- 
src/Language/LSP/Types/SignatureHelp.hs view
@@ -59,8 +59,8 @@ -- -------------------------------------  makeExtendingDatatype "SignatureHelpOptions" [''WorkDoneProgressOptions]-  [ ("_triggerCharacters", [t| Maybe (List String) |])-  , ("_retriggerCharacters", [t| Maybe (List String) |])+  [ ("_triggerCharacters", [t| Maybe (List Text) |])+  , ("_retriggerCharacters", [t| Maybe (List Text) |])   ] deriveJSON lspOptions ''SignatureHelpOptions @@ -126,7 +126,7 @@       -- | Character that caused signature help to be triggered. This is       -- undefined when @triggerKind !==       -- SignatureHelpTriggerKind.TriggerCharacter@-    , _triggerCharacter :: Maybe String+    , _triggerCharacter :: Maybe Text       -- | 'True' if signature help was already showing when it was triggered.       --        -- Retriggers occur when the signature help is already active and can be
src/Language/LSP/Types/WatchedFiles.hs view
@@ -10,6 +10,7 @@ import Language.LSP.Types.Common import Language.LSP.Types.Uri import Language.LSP.Types.Utils+import Data.Text (Text)  -- ------------------------------------- @@ -38,7 +39,7 @@     -- - @{}@ to group conditions (e.g. @**​/*.{ts,js}@ matches all TypeScript and JavaScript files)     -- - @[]@ to declare a range of characters to match in a path segment (e.g., @example.[0-9]@ to match on @example.0@, @example.1@, …)     -- - @[!...]@ to negate a range of characters to match in a path segment (e.g., @example.[!0-9]@ to match on @example.a@, @example.b@, but not @example.0@)-    _globPattern :: String,+    _globPattern :: Text,     -- | The kind of events of interest. If omitted it defaults     -- to WatchKind.Create | WatchKind.Change | WatchKind.Delete     -- which is 7.
src/Language/LSP/Types/WorkspaceEdit.hs view
@@ -1,11 +1,16 @@ {-# LANGUAGE DuplicateRecordFields      #-} {-# LANGUAGE TemplateHaskell            #-}+{-# LANGUAGE TypeOperators              #-} {-# LANGUAGE OverloadedStrings          #-}+{-# LANGUAGE RecordWildCards            #-}+ module Language.LSP.Types.WorkspaceEdit where +import           Control.Monad                              (unless) import           Data.Aeson import           Data.Aeson.TH import qualified Data.HashMap.Strict                        as H+import           Data.Maybe                                 (catMaybes) import           Data.Text                                  (Text) import qualified Data.Text                                  as T @@ -38,12 +43,135 @@  -- --------------------------------------------------------------------- +-- | Options to create a file.+data CreateFileOptions =+  CreateFileOptions+    { -- | Overwrite existing file. Overwrite wins over `ignoreIfExists`+      _overwrite      :: Maybe Bool+      -- | Ignore if exists.+    , _ignoreIfExists :: Maybe Bool+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''CreateFileOptions++-- | Create file operation+data CreateFile =+  CreateFile+    { -- | The resource to create.+      _uri      :: Uri+      -- | Additional options+    , _options  :: Maybe CreateFileOptions+    } deriving (Show, Read, Eq)++instance ToJSON CreateFile where+    toJSON CreateFile{..} =+      object $ catMaybes+        [ Just $ "kind" .= ("create" :: Text)+        , Just $ "uri" .= _uri+        , ("options" .=) <$> _options+        ]++instance FromJSON CreateFile where+    parseJSON = withObject "CreateFile" $ \o -> do+        kind <- o .: "kind"+        unless (kind == ("create" :: Text)) +          $ fail $ "Expected kind \"create\" but got " ++ show kind+        _uri <- o .: "uri"+        _options <- o .:? "options"+        pure CreateFile{..}++-- Rename file options+data RenameFileOptions =+  RenameFileOptions+    { -- | Overwrite target if existing. Overwrite wins over `ignoreIfExists`+      _overwrite      :: Maybe Bool+      -- | Ignores if target exists.+    , _ignoreIfExists :: Maybe Bool+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''RenameFileOptions++-- | Rename file operation+data RenameFile =+  RenameFile+    { -- | The old (existing) location.+      _oldUri   :: Uri+      -- | The new location.+    , _newUri   :: Uri+      -- | Rename options.+    , _options  :: Maybe RenameFileOptions+    } deriving (Show, Read, Eq)++instance ToJSON RenameFile where+    toJSON RenameFile{..} =+      object $ catMaybes+        [ Just $ "kind" .= ("rename" :: Text)+        , Just $ "oldUri" .= _oldUri+        , Just $ "newUri" .= _newUri+        , ("options" .=) <$> _options+        ]++instance FromJSON RenameFile where+    parseJSON = withObject "RenameFile" $ \o -> do+        kind <- o .: "kind"+        unless (kind == ("rename" :: Text)) +          $ fail $ "Expected kind \"rename\" but got " ++ show kind+        _oldUri <- o .: "oldUri"+        _newUri <- o .: "newUri"+        _options <- o .:? "options"+        pure RenameFile{..}++-- Delete file options+data DeleteFileOptions =+  DeleteFileOptions+    { -- | Delete the content recursively if a folder is denoted.+      _recursive          :: Maybe Bool+      -- | Ignore the operation if the file doesn't exist.+    , _ignoreIfNotExists  :: Maybe Bool+    } deriving (Show, Read, Eq)++deriveJSON lspOptions ''DeleteFileOptions++-- | Delete file operation+data DeleteFile =+  DeleteFile+    { -- | The file to delete.+      _uri      :: Uri+      -- | Delete options.+    , _options  :: Maybe DeleteFileOptions+    } deriving (Show, Read, Eq)++instance ToJSON DeleteFile where+    toJSON DeleteFile{..} =+      object $ catMaybes+        [ Just $ "kind" .= ("delete" :: Text)+        , Just $ "uri" .= _uri+        , ("options" .=) <$> _options+        ]++instance FromJSON DeleteFile where+    parseJSON = withObject "DeleteFile" $ \o -> do+        kind <- o .: "kind"+        unless (kind == ("delete" :: Text)) +          $ fail $ "Expected kind \"delete\" but got " ++ show kind+        _uri <- o .: "uri"+        _options <- o .:? "options"+        pure DeleteFile{..}+++-- ---------------------------------------------------------------------++-- | `TextDocumentEdit |? CreateFile |? RenameFile |? DeleteFile` is a bit mouthful, here's the synonym+type DocumentChange = TextDocumentEdit |? CreateFile |? RenameFile |? DeleteFile++-- ---------------------------------------------------------------------+ type WorkspaceEditMap = H.HashMap Uri (List TextEdit)  data WorkspaceEdit =   WorkspaceEdit     { _changes         :: Maybe WorkspaceEditMap-    , _documentChanges :: Maybe (List TextDocumentEdit)+    , _documentChanges :: Maybe (List DocumentChange)     } deriving (Show, Read, Eq)  instance Semigroup WorkspaceEdit where
src/Language/LSP/Types/WorkspaceSymbol.hs view
@@ -9,6 +9,7 @@ import Language.LSP.Types.DocumentSymbol import Language.LSP.Types.Progress import Language.LSP.Types.Utils+import Data.Text (Text)  data WorkspaceSymbolKindClientCapabilities =   WorkspaceSymbolKindClientCapabilities@@ -71,6 +72,6 @@   [ ''WorkDoneProgressParams   , ''PartialResultParams   ]-  [("_query", [t| String |])]+  [("_query", [t| Text |])]  deriveJSON lspOptions ''WorkspaceSymbolParams
src/Language/LSP/VFS.hs view
@@ -129,41 +129,104 @@  -- --------------------------------------------------------------------- +applyCreateFile :: J.CreateFile -> VFS -> VFS+applyCreateFile (J.CreateFile uri options) = +  updateVFS $ Map.insertWith +                (\ new old -> if shouldOverwrite then new else old)+                (J.toNormalizedUri uri)+                (VirtualFile 0 0 (Rope.fromText ""))+  where +    shouldOverwrite :: Bool +    shouldOverwrite = case options of +        Nothing                                               -> False  -- default+        Just (J.CreateFileOptions Nothing       Nothing     ) -> False  -- default+        Just (J.CreateFileOptions Nothing       (Just True) ) -> False  -- `ignoreIfExists` is True +        Just (J.CreateFileOptions Nothing       (Just False)) -> True   -- `ignoreIfExists` is False +        Just (J.CreateFileOptions (Just True)   Nothing     ) -> True   -- `overwrite` is True+        Just (J.CreateFileOptions (Just True)   (Just True) ) -> True   -- `overwrite` wins over `ignoreIfExists`+        Just (J.CreateFileOptions (Just True)   (Just False)) -> True   -- `overwrite` is True+        Just (J.CreateFileOptions (Just False)  Nothing     ) -> False  -- `overwrite` is False+        Just (J.CreateFileOptions (Just False)  (Just True) ) -> False  -- `overwrite` is False+        Just (J.CreateFileOptions (Just False)  (Just False)) -> False  -- `overwrite` wins over `ignoreIfExists`++applyRenameFile :: J.RenameFile -> VFS -> VFS+applyRenameFile (J.RenameFile oldUri' newUri' options) vfs = +  let oldUri = J.toNormalizedUri oldUri'+      newUri = J.toNormalizedUri newUri'+  in  case Map.lookup oldUri (vfsMap vfs) of +        -- nothing to rename +        Nothing -> vfs +        Just file -> case Map.lookup newUri (vfsMap vfs) of +          -- the target does not exist, just move over +          Nothing -> updateVFS (Map.insert newUri file . Map.delete oldUri) vfs+          Just _  -> if shouldOverwrite +                      then updateVFS (Map.insert newUri file . Map.delete oldUri) vfs+                      else vfs +  where +    shouldOverwrite :: Bool +    shouldOverwrite = case options of +        Nothing                                               -> False  -- default+        Just (J.RenameFileOptions Nothing       Nothing     ) -> False  -- default+        Just (J.RenameFileOptions Nothing       (Just True) ) -> False  -- `ignoreIfExists` is True +        Just (J.RenameFileOptions Nothing       (Just False)) -> True   -- `ignoreIfExists` is False +        Just (J.RenameFileOptions (Just True)   Nothing     ) -> True   -- `overwrite` is True+        Just (J.RenameFileOptions (Just True)   (Just True) ) -> True   -- `overwrite` wins over `ignoreIfExists`+        Just (J.RenameFileOptions (Just True)   (Just False)) -> True   -- `overwrite` is True+        Just (J.RenameFileOptions (Just False)  Nothing     ) -> False  -- `overwrite` is False+        Just (J.RenameFileOptions (Just False)  (Just True) ) -> False  -- `overwrite` is False+        Just (J.RenameFileOptions (Just False)  (Just False)) -> False  -- `overwrite` wins over `ignoreIfExists`++-- NOTE: we are ignoring the `recursive` option here because we don't know which file is a directory+applyDeleteFile :: J.DeleteFile -> VFS -> VFS+applyDeleteFile (J.DeleteFile uri _options) = +  updateVFS $ Map.delete (J.toNormalizedUri uri)+++applyTextDocumentEdit :: J.TextDocumentEdit -> VFS -> IO VFS+applyTextDocumentEdit (J.TextDocumentEdit vid (J.List edits)) vfs = do+  -- all edits are supposed to be applied at once+  -- so apply from bottom up so they don't affect others+  let sortedEdits = sortOn (Down . (^. J.range)) edits+      changeEvents = map editToChangeEvent sortedEdits+      ps = J.DidChangeTextDocumentParams vid (J.List changeEvents)+      notif = J.NotificationMessage "" J.STextDocumentDidChange ps+  let (vfs',ls) = changeFromClientVFS vfs notif+  mapM_ (debugM "haskell-lsp.applyTextDocumentEdit") ls+  return vfs'++  where +    editToChangeEvent (J.TextEdit range text) = J.TextDocumentContentChangeEvent (Just range) Nothing text++applyDocumentChange :: J.DocumentChange -> VFS -> IO VFS +applyDocumentChange (J.InL               change)   = applyTextDocumentEdit change+applyDocumentChange (J.InR (J.InL        change))  = return . applyCreateFile change+applyDocumentChange (J.InR (J.InR (J.InL change))) = return . applyRenameFile change+applyDocumentChange (J.InR (J.InR (J.InR change))) = return . applyDeleteFile change+ -- ^ Applies the changes from a 'ApplyWorkspaceEditRequest' to the 'VFS' changeFromServerVFS :: VFS -> J.Message 'J.WorkspaceApplyEdit -> IO VFS changeFromServerVFS initVfs (J.RequestMessage _ _ _ params) = do   let J.ApplyWorkspaceEditParams _label edit = params       J.WorkspaceEdit mChanges mDocChanges = edit   case mDocChanges of-    Just (J.List textDocEdits) -> applyEdits textDocEdits+    Just (J.List docChanges) -> applyDocumentChanges docChanges     Nothing -> case mChanges of-      Just cs -> applyEdits $ HashMap.foldlWithKey' changeToTextDocumentEdit [] cs+      Just cs -> applyDocumentChanges $ map J.InL $ HashMap.foldlWithKey' changeToTextDocumentEdit [] cs       Nothing -> do         debugM "haskell-lsp.changeVfs" "No changes"         return initVfs    where-     changeToTextDocumentEdit acc uri edits =       acc ++ [J.TextDocumentEdit (J.VersionedTextDocumentIdentifier uri (Just 0)) edits] -    -- applyEdits :: [J.TextDocumentEdit] -> VFS-    applyEdits :: [J.TextDocumentEdit] -> IO VFS-    applyEdits = foldM f initVfs . sortOn (^. J.textDocument . J.version)--    f :: VFS -> J.TextDocumentEdit -> IO VFS-    f vfs (J.TextDocumentEdit vid (J.List edits)) = do-      -- all edits are supposed to be applied at once-      -- so apply from bottom up so they don't affect others-      let sortedEdits = sortOn (Down . (^. J.range)) edits-          changeEvents = map editToChangeEvent sortedEdits-          ps = J.DidChangeTextDocumentParams vid (J.List changeEvents)-          notif = J.NotificationMessage "" J.STextDocumentDidChange ps-      let (vfs',ls) = changeFromClientVFS vfs notif-      mapM_ (debugM "haskell-lsp.changeFromServerVFS") ls-      return vfs'--    editToChangeEvent (J.TextEdit range text) = J.TextDocumentContentChangeEvent (Just range) Nothing text+    applyDocumentChanges :: [J.DocumentChange] -> IO VFS +    applyDocumentChanges = foldM (flip applyDocumentChange) initVfs . sortOn project+        +    -- for sorting [DocumentChange]+    project :: J.DocumentChange -> J.TextDocumentVersion -- type TextDocumentVersion = Maybe Int+    project (J.InL textDocumentEdit) = textDocumentEdit ^. J.textDocument . J.version+    project _ = Nothing  -- --------------------------------------------------------------------- virtualFileName :: FilePath -> J.NormalizedUri -> VirtualFile -> FilePath