Skip to content

Fix WorkspaceSemanticTokensRefresh type to be FromServer, not FromClient #443

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions lsp-types/src/Language/LSP/Types/Method.hs
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@ data Method (f :: From) (t :: MethodType) where
TextDocumentSemanticTokensFull :: Method FromClient Request
TextDocumentSemanticTokensFullDelta :: Method FromClient Request
TextDocumentSemanticTokensRange :: Method FromClient Request
WorkspaceSemanticTokensRefresh :: Method FromClient Request

-- ServerMethods
-- Window
Expand All @@ -108,6 +107,7 @@ data Method (f :: From) (t :: MethodType) where
WorkspaceWorkspaceFolders :: Method FromServer Request
WorkspaceConfiguration :: Method FromServer Request
WorkspaceApplyEdit :: Method FromServer Request
WorkspaceSemanticTokensRefresh :: Method FromServer Request
-- Document
TextDocumentPublishDiagnostics :: Method FromServer Notification

Expand Down Expand Up @@ -287,7 +287,6 @@ instance FromJSON SomeClientMethod where
parseJSON (A.String "workspace/didChangeWatchedFiles") = pure $ SomeClientMethod SWorkspaceDidChangeWatchedFiles
parseJSON (A.String "workspace/symbol") = pure $ SomeClientMethod SWorkspaceSymbol
parseJSON (A.String "workspace/executeCommand") = pure $ SomeClientMethod SWorkspaceExecuteCommand
parseJSON (A.String "workspace/semanticTokens/refresh") = pure $ SomeClientMethod SWorkspaceSemanticTokensRefresh
-- Document
parseJSON (A.String "textDocument/didOpen") = pure $ SomeClientMethod STextDocumentDidOpen
parseJSON (A.String "textDocument/didChange") = pure $ SomeClientMethod STextDocumentDidChange
Expand Down Expand Up @@ -351,6 +350,7 @@ instance A.FromJSON SomeServerMethod where
parseJSON (A.String "workspace/workspaceFolders") = pure $ SomeServerMethod SWorkspaceWorkspaceFolders
parseJSON (A.String "workspace/configuration") = pure $ SomeServerMethod SWorkspaceConfiguration
parseJSON (A.String "workspace/applyEdit") = pure $ SomeServerMethod SWorkspaceApplyEdit
parseJSON (A.String "workspace/semanticTokens/refresh") = pure $ SomeServerMethod SWorkspaceSemanticTokensRefresh
-- Document
parseJSON (A.String "textDocument/publishDiagnostics") = pure $ SomeServerMethod STextDocumentPublishDiagnostics

Expand Down Expand Up @@ -388,7 +388,6 @@ instance A.ToJSON (SMethod m) where
toJSON SWorkspaceDidChangeWatchedFiles = A.String "workspace/didChangeWatchedFiles"
toJSON SWorkspaceSymbol = A.String "workspace/symbol"
toJSON SWorkspaceExecuteCommand = A.String "workspace/executeCommand"
toJSON SWorkspaceSemanticTokensRefresh = A.String "workspace/semanticTokens/refresh"
-- Document
toJSON STextDocumentDidOpen = A.String "textDocument/didOpen"
toJSON STextDocumentDidChange = A.String "textDocument/didChange"
Expand Down Expand Up @@ -445,6 +444,7 @@ instance A.ToJSON (SMethod m) where
toJSON SWorkspaceWorkspaceFolders = A.String "workspace/workspaceFolders"
toJSON SWorkspaceConfiguration = A.String "workspace/configuration"
toJSON SWorkspaceApplyEdit = A.String "workspace/applyEdit"
toJSON SWorkspaceSemanticTokensRefresh = A.String "workspace/semanticTokens/refresh"
-- Document
toJSON STextDocumentPublishDiagnostics = A.String "textDocument/publishDiagnostics"
-- Cancelling
Expand Down
8 changes: 7 additions & 1 deletion lsp-types/src/Language/LSP/Types/Parsing.hs
Original file line number Diff line number Diff line change
Expand Up @@ -259,26 +259,32 @@ splitClientMethod STextDocumentSemanticTokens = IsClientReq
splitClientMethod STextDocumentSemanticTokensFull = IsClientReq
splitClientMethod STextDocumentSemanticTokensFullDelta = IsClientReq
splitClientMethod STextDocumentSemanticTokensRange = IsClientReq
splitClientMethod SWorkspaceSemanticTokensRefresh = IsClientReq
splitClientMethod SCancelRequest = IsClientNot
splitClientMethod SCustomMethod{} = IsClientEither

{-# INLINE splitServerMethod #-}
splitServerMethod :: SServerMethod m -> ServerNotOrReq m
-- Window
splitServerMethod SWindowShowMessage = IsServerNot
splitServerMethod SWindowShowMessageRequest = IsServerReq
splitServerMethod SWindowShowDocument = IsServerReq
splitServerMethod SWindowLogMessage = IsServerNot
splitServerMethod SWindowWorkDoneProgressCreate = IsServerReq
splitServerMethod SProgress = IsServerNot
splitServerMethod STelemetryEvent = IsServerNot
-- Client
splitServerMethod SClientRegisterCapability = IsServerReq
splitServerMethod SClientUnregisterCapability = IsServerReq
-- Workspace
splitServerMethod SWorkspaceWorkspaceFolders = IsServerReq
splitServerMethod SWorkspaceConfiguration = IsServerReq
splitServerMethod SWorkspaceApplyEdit = IsServerReq
splitServerMethod SWorkspaceSemanticTokensRefresh = IsServerReq
-- Document
splitServerMethod STextDocumentPublishDiagnostics = IsServerNot
-- Cancelling
splitServerMethod SCancelRequest = IsServerNot
-- Custom
splitServerMethod SCustomMethod{} = IsServerEither

-- | Given a witness that two custom methods are of the same type, produce a witness that the methods are the same
Expand Down