diff --git a/README.md b/README.md index 2946b49..a14840a 100644 --- a/README.md +++ b/README.md @@ -4,22 +4,26 @@ Requires py3.8 and up. ## Setup +Use UV to manage virtual environment and run scripts. + Install dependecies: ```sh -pip install -r requirements.txt +uv venv ``` ## Update types Download the latest json schema: ```sh -python ./download_schemas.py +uv run download_schemas.py ``` -Generate the types: +Generate the types and fix some issues by triggering formatting: ```sh -python ./generate.py +uv run generate.py +uv run ruff format ``` + Copy the `lsp_types.py` file to your project. NOTE: Do not import types that begin with `__`. These types are internal types and are not meant to be used. diff --git a/generate.py b/generate.py index 530d460..f22d125 100755 --- a/generate.py +++ b/generate.py @@ -2,6 +2,7 @@ from __future__ import annotations +from operator import itemgetter from pathlib import Path from typing import cast from typing import Literal @@ -42,7 +43,7 @@ ALIAS_OVERRIDES: dict[str, str] = {'LSPArray': "Sequence['LSPAny']", 'LSPObject': 'Mapping[str, Any]'} -def generate(output: str) -> None: +def generate_protocol(output: str) -> None: reset_new_literal_structures() schema = Path('./lsprotocol/lsp.json').read_text(encoding='utf-8') @@ -54,10 +55,20 @@ def generate(output: str) -> None: '# ruff: noqa: E501, UP006, UP007', '# Code generated. DO NOT EDIT.', f'# LSP v{specification_version}\n', - 'from __future__ import annotations', - 'from enum import IntEnum, IntFlag, StrEnum', - 'from typing import Any, Dict, List, Literal, Mapping, Sequence, TypedDict, Union', - 'from typing_extensions import NotRequired, TypeAlias\n\n', + 'from __future__ import annotations\n', + 'from enum import IntEnum', + 'from enum import IntFlag', + 'from enum import StrEnum', + 'from typing import Any', + 'from typing import Dict', + 'from typing import List', + 'from typing import Literal', + 'from typing import Mapping', + 'from typing import Sequence', + 'from typing import TypedDict', + 'from typing import Union', + 'from typing_extensions import NotRequired', + 'from typing_extensions import TypeAlias\n', 'URI = str', 'DocumentUri = str', 'Uint = int', @@ -71,12 +82,45 @@ def generate(output: str) -> None: content += '\n'.join(generate_type_aliases(lsp_json['typeAliases'], ALIAS_OVERRIDES)) content += '\n\n\n' content += '\n\n\n'.join(generate_structures(lsp_json['structures'])) + content += '\n' + content += '\n'.join(get_new_literal_structures()) + + # Remove trailing spaces. + lines = content.split('\n') + lines = [line.rstrip() for line in lines] + content = '\n'.join(lines) + + Path(output).write_text(content, encoding='utf-8') + + +def generate_custom(output: str) -> None: + reset_new_literal_structures() + + schema = Path('./lsprotocol/lsp.json').read_text(encoding='utf-8') + lsp_json = cast('MetaModel', json.loads(schema)) + + content = '\n'.join( # noqa: FLY002 + [ + '# ruff: noqa: UP006, UP007', + 'from __future__ import annotations\n', + 'from .lsp_types import *', + 'from typing import List', + 'from typing import Literal', + 'from typing import TypedDict', + 'from typing import Union', + 'from typing_extensions import TypeAlias', + ] + ) + + # Sort by method name to avoid unstable order. + requests = sorted(lsp_json['requests'], key=itemgetter('typeName')) + notifications = sorted(lsp_json['notifications'], key=itemgetter('typeName')) + content += '\n\n\n' - content += '\n\n\n'.join(generate_requests_and_responses(lsp_json['requests'])) + content += '\n\n\n'.join(generate_requests_and_responses(requests)) content += '\n\n\n' - content += '\n\n\n'.join(generate_notifications(lsp_json['notifications'])) + content += '\n\n\n'.join(generate_notifications(notifications)) content += '\n' - content += '\n'.join(get_new_literal_structures()) # Remove trailing spaces. lines = content.split('\n') @@ -86,4 +130,5 @@ def generate(output: str) -> None: Path(output).write_text(content, encoding='utf-8') -generate(output='./generated/lsp_types.py') +generate_protocol(output='./generated/lsp_types.py') +generate_custom(output='./generated/custom.py') diff --git a/generated/custom.py b/generated/custom.py new file mode 100644 index 0000000..fb80b78 --- /dev/null +++ b/generated/custom.py @@ -0,0 +1,1019 @@ +# ruff: noqa: UP006, UP007 +from __future__ import annotations + +from .lsp_types import * +from typing import List +from typing import Literal +from typing import TypedDict +from typing import Union +from typing_extensions import TypeAlias + + +class ApplyWorkspaceEditRequest(TypedDict): + method: Literal['workspace/applyEdit'] + params: 'ApplyWorkspaceEditParams' + + +class CallHierarchyIncomingCallsRequest(TypedDict): + method: Literal['callHierarchy/incomingCalls'] + params: 'CallHierarchyIncomingCallsParams' + + +class CallHierarchyOutgoingCallsRequest(TypedDict): + method: Literal['callHierarchy/outgoingCalls'] + params: 'CallHierarchyOutgoingCallsParams' + + +class CallHierarchyPrepareRequest(TypedDict): + method: Literal['textDocument/prepareCallHierarchy'] + params: 'CallHierarchyPrepareParams' + + +class CodeActionRequest(TypedDict): + method: Literal['textDocument/codeAction'] + params: 'CodeActionParams' + + +class CodeActionResolveRequest(TypedDict): + method: Literal['codeAction/resolve'] + params: 'CodeAction' + + +class CodeLensRefreshRequest(TypedDict): + method: Literal['workspace/codeLens/refresh'] + params: None + + +class CodeLensRequest(TypedDict): + method: Literal['textDocument/codeLens'] + params: 'CodeLensParams' + + +class CodeLensResolveRequest(TypedDict): + method: Literal['codeLens/resolve'] + params: 'CodeLens' + + +class ColorPresentationRequest(TypedDict): + method: Literal['textDocument/colorPresentation'] + params: 'ColorPresentationParams' + + +class CompletionRequest(TypedDict): + method: Literal['textDocument/completion'] + params: 'CompletionParams' + + +class CompletionResolveRequest(TypedDict): + method: Literal['completionItem/resolve'] + params: 'CompletionItem' + + +class ConfigurationRequest(TypedDict): + method: Literal['workspace/configuration'] + params: 'ConfigurationParams' + + +class DeclarationRequest(TypedDict): + method: Literal['textDocument/declaration'] + params: 'DeclarationParams' + + +class DefinitionRequest(TypedDict): + method: Literal['textDocument/definition'] + params: 'DefinitionParams' + + +class DiagnosticRefreshRequest(TypedDict): + method: Literal['workspace/diagnostic/refresh'] + params: None + + +class DocumentColorRequest(TypedDict): + method: Literal['textDocument/documentColor'] + params: 'DocumentColorParams' + + +class DocumentDiagnosticRequest(TypedDict): + method: Literal['textDocument/diagnostic'] + params: 'DocumentDiagnosticParams' + + +class DocumentFormattingRequest(TypedDict): + method: Literal['textDocument/formatting'] + params: 'DocumentFormattingParams' + + +class DocumentHighlightRequest(TypedDict): + method: Literal['textDocument/documentHighlight'] + params: 'DocumentHighlightParams' + + +class DocumentLinkRequest(TypedDict): + method: Literal['textDocument/documentLink'] + params: 'DocumentLinkParams' + + +class DocumentLinkResolveRequest(TypedDict): + method: Literal['documentLink/resolve'] + params: 'DocumentLink' + + +class DocumentOnTypeFormattingRequest(TypedDict): + method: Literal['textDocument/onTypeFormatting'] + params: 'DocumentOnTypeFormattingParams' + + +class DocumentRangeFormattingRequest(TypedDict): + method: Literal['textDocument/rangeFormatting'] + params: 'DocumentRangeFormattingParams' + + +class DocumentRangesFormattingRequest(TypedDict): + method: Literal['textDocument/rangesFormatting'] + params: 'DocumentRangesFormattingParams' + + +class DocumentSymbolRequest(TypedDict): + method: Literal['textDocument/documentSymbol'] + params: 'DocumentSymbolParams' + + +class ExecuteCommandRequest(TypedDict): + method: Literal['workspace/executeCommand'] + params: 'ExecuteCommandParams' + + +class FoldingRangeRefreshRequest(TypedDict): + method: Literal['workspace/foldingRange/refresh'] + params: None + + +class FoldingRangeRequest(TypedDict): + method: Literal['textDocument/foldingRange'] + params: 'FoldingRangeParams' + + +class HoverRequest(TypedDict): + method: Literal['textDocument/hover'] + params: 'HoverParams' + + +class ImplementationRequest(TypedDict): + method: Literal['textDocument/implementation'] + params: 'ImplementationParams' + + +class InitializeRequest(TypedDict): + method: Literal['initialize'] + params: 'InitializeParams' + + +class InlayHintRefreshRequest(TypedDict): + method: Literal['workspace/inlayHint/refresh'] + params: None + + +class InlayHintRequest(TypedDict): + method: Literal['textDocument/inlayHint'] + params: 'InlayHintParams' + + +class InlayHintResolveRequest(TypedDict): + method: Literal['inlayHint/resolve'] + params: 'InlayHint' + + +class InlineCompletionRequest(TypedDict): + method: Literal['textDocument/inlineCompletion'] + params: 'InlineCompletionParams' + + +class InlineValueRefreshRequest(TypedDict): + method: Literal['workspace/inlineValue/refresh'] + params: None + + +class InlineValueRequest(TypedDict): + method: Literal['textDocument/inlineValue'] + params: 'InlineValueParams' + + +class LinkedEditingRangeRequest(TypedDict): + method: Literal['textDocument/linkedEditingRange'] + params: 'LinkedEditingRangeParams' + + +class MonikerRequest(TypedDict): + method: Literal['textDocument/moniker'] + params: 'MonikerParams' + + +class PrepareRenameRequest(TypedDict): + method: Literal['textDocument/prepareRename'] + params: 'PrepareRenameParams' + + +class ReferencesRequest(TypedDict): + method: Literal['textDocument/references'] + params: 'ReferenceParams' + + +class RegistrationRequest(TypedDict): + method: Literal['client/registerCapability'] + params: 'RegistrationParams' + + +class RenameRequest(TypedDict): + method: Literal['textDocument/rename'] + params: 'RenameParams' + + +class SelectionRangeRequest(TypedDict): + method: Literal['textDocument/selectionRange'] + params: 'SelectionRangeParams' + + +class SemanticTokensDeltaRequest(TypedDict): + method: Literal['textDocument/semanticTokens/full/delta'] + params: 'SemanticTokensDeltaParams' + + +class SemanticTokensRangeRequest(TypedDict): + method: Literal['textDocument/semanticTokens/range'] + params: 'SemanticTokensRangeParams' + + +class SemanticTokensRefreshRequest(TypedDict): + method: Literal['workspace/semanticTokens/refresh'] + params: None + + +class SemanticTokensRequest(TypedDict): + method: Literal['textDocument/semanticTokens/full'] + params: 'SemanticTokensParams' + + +class ShowDocumentRequest(TypedDict): + method: Literal['window/showDocument'] + params: 'ShowDocumentParams' + + +class ShowMessageRequest(TypedDict): + method: Literal['window/showMessageRequest'] + params: 'ShowMessageRequestParams' + + +class ShutdownRequest(TypedDict): + method: Literal['shutdown'] + params: None + + +class SignatureHelpRequest(TypedDict): + method: Literal['textDocument/signatureHelp'] + params: 'SignatureHelpParams' + + +class TextDocumentContentRefreshRequest(TypedDict): + method: Literal['workspace/textDocumentContent/refresh'] + params: 'TextDocumentContentRefreshParams' + + +class TextDocumentContentRequest(TypedDict): + method: Literal['workspace/textDocumentContent'] + params: 'TextDocumentContentParams' + + +class TypeDefinitionRequest(TypedDict): + method: Literal['textDocument/typeDefinition'] + params: 'TypeDefinitionParams' + + +class TypeHierarchyPrepareRequest(TypedDict): + method: Literal['textDocument/prepareTypeHierarchy'] + params: 'TypeHierarchyPrepareParams' + + +class TypeHierarchySubtypesRequest(TypedDict): + method: Literal['typeHierarchy/subtypes'] + params: 'TypeHierarchySubtypesParams' + + +class TypeHierarchySupertypesRequest(TypedDict): + method: Literal['typeHierarchy/supertypes'] + params: 'TypeHierarchySupertypesParams' + + +class UnregistrationRequest(TypedDict): + method: Literal['client/unregisterCapability'] + params: 'UnregistrationParams' + + +class WillCreateFilesRequest(TypedDict): + method: Literal['workspace/willCreateFiles'] + params: 'CreateFilesParams' + + +class WillDeleteFilesRequest(TypedDict): + method: Literal['workspace/willDeleteFiles'] + params: 'DeleteFilesParams' + + +class WillRenameFilesRequest(TypedDict): + method: Literal['workspace/willRenameFiles'] + params: 'RenameFilesParams' + + +class WillSaveTextDocumentWaitUntilRequest(TypedDict): + method: Literal['textDocument/willSaveWaitUntil'] + params: 'WillSaveTextDocumentParams' + + +class WorkDoneProgressCreateRequest(TypedDict): + method: Literal['window/workDoneProgress/create'] + params: 'WorkDoneProgressCreateParams' + + +class WorkspaceDiagnosticRequest(TypedDict): + method: Literal['workspace/diagnostic'] + params: 'WorkspaceDiagnosticParams' + + +class WorkspaceFoldersRequest(TypedDict): + method: Literal['workspace/workspaceFolders'] + params: None + + +class WorkspaceSymbolRequest(TypedDict): + method: Literal['workspace/symbol'] + params: 'WorkspaceSymbolParams' + + +class WorkspaceSymbolResolveRequest(TypedDict): + method: Literal['workspaceSymbol/resolve'] + params: 'WorkspaceSymbol' + + +ClientRequest: TypeAlias = Union[ + CallHierarchyIncomingCallsRequest, + CallHierarchyOutgoingCallsRequest, + CallHierarchyPrepareRequest, + CodeActionRequest, + CodeActionResolveRequest, + CodeLensRequest, + CodeLensResolveRequest, + ColorPresentationRequest, + CompletionRequest, + CompletionResolveRequest, + DeclarationRequest, + DefinitionRequest, + DocumentColorRequest, + DocumentDiagnosticRequest, + DocumentFormattingRequest, + DocumentHighlightRequest, + DocumentLinkRequest, + DocumentLinkResolveRequest, + DocumentOnTypeFormattingRequest, + DocumentRangeFormattingRequest, + DocumentRangesFormattingRequest, + DocumentSymbolRequest, + ExecuteCommandRequest, + FoldingRangeRequest, + HoverRequest, + ImplementationRequest, + InitializeRequest, + InlayHintRequest, + InlayHintResolveRequest, + InlineCompletionRequest, + InlineValueRequest, + LinkedEditingRangeRequest, + MonikerRequest, + PrepareRenameRequest, + ReferencesRequest, + RenameRequest, + SelectionRangeRequest, + SemanticTokensDeltaRequest, + SemanticTokensRangeRequest, + SemanticTokensRequest, + ShutdownRequest, + SignatureHelpRequest, + TextDocumentContentRequest, + TypeDefinitionRequest, + TypeHierarchyPrepareRequest, + TypeHierarchySubtypesRequest, + TypeHierarchySupertypesRequest, + WillCreateFilesRequest, + WillDeleteFilesRequest, + WillRenameFilesRequest, + WillSaveTextDocumentWaitUntilRequest, + WorkspaceDiagnosticRequest, + WorkspaceSymbolRequest, + WorkspaceSymbolResolveRequest, +] + + +ServerRequest: TypeAlias = Union[ + ApplyWorkspaceEditRequest, + CodeLensRefreshRequest, + ConfigurationRequest, + DiagnosticRefreshRequest, + FoldingRangeRefreshRequest, + InlayHintRefreshRequest, + InlineValueRefreshRequest, + RegistrationRequest, + SemanticTokensRefreshRequest, + ShowDocumentRequest, + ShowMessageRequest, + TextDocumentContentRefreshRequest, + UnregistrationRequest, + WorkDoneProgressCreateRequest, + WorkspaceFoldersRequest, +] + + +class ApplyWorkspaceEditResponse(TypedDict): + method: Literal['workspace/applyEdit'] + result: 'ApplyWorkspaceEditResult' + + +class CallHierarchyIncomingCallsResponse(TypedDict): + method: Literal['callHierarchy/incomingCalls'] + result: Union[List['CallHierarchyIncomingCall'], None] + + +class CallHierarchyOutgoingCallsResponse(TypedDict): + method: Literal['callHierarchy/outgoingCalls'] + result: Union[List['CallHierarchyOutgoingCall'], None] + + +class CallHierarchyPrepareResponse(TypedDict): + method: Literal['textDocument/prepareCallHierarchy'] + result: Union[List['CallHierarchyItem'], None] + + +class CodeActionResponse(TypedDict): + method: Literal['textDocument/codeAction'] + result: Union[List[Union['Command', 'CodeAction']], None] + + +class CodeActionResolveResponse(TypedDict): + method: Literal['codeAction/resolve'] + result: 'CodeAction' + + +class CodeLensRefreshResponse(TypedDict): + method: Literal['workspace/codeLens/refresh'] + result: None + + +class CodeLensResponse(TypedDict): + method: Literal['textDocument/codeLens'] + result: Union[List['CodeLens'], None] + + +class CodeLensResolveResponse(TypedDict): + method: Literal['codeLens/resolve'] + result: 'CodeLens' + + +class ColorPresentationResponse(TypedDict): + method: Literal['textDocument/colorPresentation'] + result: List['ColorPresentation'] + + +class CompletionResponse(TypedDict): + method: Literal['textDocument/completion'] + result: Union[List['CompletionItem'], 'CompletionList', None] + + +class CompletionResolveResponse(TypedDict): + method: Literal['completionItem/resolve'] + result: 'CompletionItem' + + +class ConfigurationResponse(TypedDict): + method: Literal['workspace/configuration'] + result: List['LSPAny'] + + +class DeclarationResponse(TypedDict): + method: Literal['textDocument/declaration'] + result: Union['Declaration', List['DeclarationLink'], None] + + +class DefinitionResponse(TypedDict): + method: Literal['textDocument/definition'] + result: Union['Definition', List['DefinitionLink'], None] + + +class DiagnosticRefreshResponse(TypedDict): + method: Literal['workspace/diagnostic/refresh'] + result: None + + +class DocumentColorResponse(TypedDict): + method: Literal['textDocument/documentColor'] + result: List['ColorInformation'] + + +class DocumentDiagnosticResponse(TypedDict): + method: Literal['textDocument/diagnostic'] + result: 'DocumentDiagnosticReport' + + +class DocumentFormattingResponse(TypedDict): + method: Literal['textDocument/formatting'] + result: Union[List['TextEdit'], None] + + +class DocumentHighlightResponse(TypedDict): + method: Literal['textDocument/documentHighlight'] + result: Union[List['DocumentHighlight'], None] + + +class DocumentLinkResponse(TypedDict): + method: Literal['textDocument/documentLink'] + result: Union[List['DocumentLink'], None] + + +class DocumentLinkResolveResponse(TypedDict): + method: Literal['documentLink/resolve'] + result: 'DocumentLink' + + +class DocumentOnTypeFormattingResponse(TypedDict): + method: Literal['textDocument/onTypeFormatting'] + result: Union[List['TextEdit'], None] + + +class DocumentRangeFormattingResponse(TypedDict): + method: Literal['textDocument/rangeFormatting'] + result: Union[List['TextEdit'], None] + + +class DocumentRangesFormattingResponse(TypedDict): + method: Literal['textDocument/rangesFormatting'] + result: Union[List['TextEdit'], None] + + +class DocumentSymbolResponse(TypedDict): + method: Literal['textDocument/documentSymbol'] + result: Union[List['SymbolInformation'], List['DocumentSymbol'], None] + + +class ExecuteCommandResponse(TypedDict): + method: Literal['workspace/executeCommand'] + result: Union['LSPAny', None] + + +class FoldingRangeRefreshResponse(TypedDict): + method: Literal['workspace/foldingRange/refresh'] + result: None + + +class FoldingRangeResponse(TypedDict): + method: Literal['textDocument/foldingRange'] + result: Union[List['FoldingRange'], None] + + +class HoverResponse(TypedDict): + method: Literal['textDocument/hover'] + result: Union['Hover', None] + + +class ImplementationResponse(TypedDict): + method: Literal['textDocument/implementation'] + result: Union['Definition', List['DefinitionLink'], None] + + +class InitializeResponse(TypedDict): + method: Literal['initialize'] + result: 'InitializeResult' + + +class InlayHintRefreshResponse(TypedDict): + method: Literal['workspace/inlayHint/refresh'] + result: None + + +class InlayHintResponse(TypedDict): + method: Literal['textDocument/inlayHint'] + result: Union[List['InlayHint'], None] + + +class InlayHintResolveResponse(TypedDict): + method: Literal['inlayHint/resolve'] + result: 'InlayHint' + + +class InlineCompletionResponse(TypedDict): + method: Literal['textDocument/inlineCompletion'] + result: Union['InlineCompletionList', List['InlineCompletionItem'], None] + + +class InlineValueRefreshResponse(TypedDict): + method: Literal['workspace/inlineValue/refresh'] + result: None + + +class InlineValueResponse(TypedDict): + method: Literal['textDocument/inlineValue'] + result: Union[List['InlineValue'], None] + + +class LinkedEditingRangeResponse(TypedDict): + method: Literal['textDocument/linkedEditingRange'] + result: Union['LinkedEditingRanges', None] + + +class MonikerResponse(TypedDict): + method: Literal['textDocument/moniker'] + result: Union[List['Moniker'], None] + + +class PrepareRenameResponse(TypedDict): + method: Literal['textDocument/prepareRename'] + result: Union['PrepareRenameResult', None] + + +class ReferencesResponse(TypedDict): + method: Literal['textDocument/references'] + result: Union[List['Location'], None] + + +class RegistrationResponse(TypedDict): + method: Literal['client/registerCapability'] + result: None + + +class RenameResponse(TypedDict): + method: Literal['textDocument/rename'] + result: Union['WorkspaceEdit', None] + + +class SelectionRangeResponse(TypedDict): + method: Literal['textDocument/selectionRange'] + result: Union[List['SelectionRange'], None] + + +class SemanticTokensDeltaResponse(TypedDict): + method: Literal['textDocument/semanticTokens/full/delta'] + result: Union['SemanticTokens', 'SemanticTokensDelta', None] + + +class SemanticTokensRangeResponse(TypedDict): + method: Literal['textDocument/semanticTokens/range'] + result: Union['SemanticTokens', None] + + +class SemanticTokensRefreshResponse(TypedDict): + method: Literal['workspace/semanticTokens/refresh'] + result: None + + +class SemanticTokensResponse(TypedDict): + method: Literal['textDocument/semanticTokens/full'] + result: Union['SemanticTokens', None] + + +class ShowDocumentResponse(TypedDict): + method: Literal['window/showDocument'] + result: 'ShowDocumentResult' + + +class ShowMessageResponse(TypedDict): + method: Literal['window/showMessageRequest'] + result: Union['MessageActionItem', None] + + +class ShutdownResponse(TypedDict): + method: Literal['shutdown'] + result: None + + +class SignatureHelpResponse(TypedDict): + method: Literal['textDocument/signatureHelp'] + result: Union['SignatureHelp', None] + + +class TextDocumentContentRefreshResponse(TypedDict): + method: Literal['workspace/textDocumentContent/refresh'] + result: None + + +class TextDocumentContentResponse(TypedDict): + method: Literal['workspace/textDocumentContent'] + result: 'TextDocumentContentResult' + + +class TypeDefinitionResponse(TypedDict): + method: Literal['textDocument/typeDefinition'] + result: Union['Definition', List['DefinitionLink'], None] + + +class TypeHierarchyPrepareResponse(TypedDict): + method: Literal['textDocument/prepareTypeHierarchy'] + result: Union[List['TypeHierarchyItem'], None] + + +class TypeHierarchySubtypesResponse(TypedDict): + method: Literal['typeHierarchy/subtypes'] + result: Union[List['TypeHierarchyItem'], None] + + +class TypeHierarchySupertypesResponse(TypedDict): + method: Literal['typeHierarchy/supertypes'] + result: Union[List['TypeHierarchyItem'], None] + + +class UnregistrationResponse(TypedDict): + method: Literal['client/unregisterCapability'] + result: None + + +class WillCreateFilesResponse(TypedDict): + method: Literal['workspace/willCreateFiles'] + result: Union['WorkspaceEdit', None] + + +class WillDeleteFilesResponse(TypedDict): + method: Literal['workspace/willDeleteFiles'] + result: Union['WorkspaceEdit', None] + + +class WillRenameFilesResponse(TypedDict): + method: Literal['workspace/willRenameFiles'] + result: Union['WorkspaceEdit', None] + + +class WillSaveTextDocumentWaitUntilResponse(TypedDict): + method: Literal['textDocument/willSaveWaitUntil'] + result: Union[List['TextEdit'], None] + + +class WorkDoneProgressCreateResponse(TypedDict): + method: Literal['window/workDoneProgress/create'] + result: None + + +class WorkspaceDiagnosticResponse(TypedDict): + method: Literal['workspace/diagnostic'] + result: 'WorkspaceDiagnosticReport' + + +class WorkspaceFoldersResponse(TypedDict): + method: Literal['workspace/workspaceFolders'] + result: Union[List['WorkspaceFolder'], None] + + +class WorkspaceSymbolResponse(TypedDict): + method: Literal['workspace/symbol'] + result: Union[List['SymbolInformation'], List['WorkspaceSymbol'], None] + + +class WorkspaceSymbolResolveResponse(TypedDict): + method: Literal['workspaceSymbol/resolve'] + result: 'WorkspaceSymbol' + + +ServerResponse: TypeAlias = Union[ + CallHierarchyIncomingCallsResponse, + CallHierarchyOutgoingCallsResponse, + CallHierarchyPrepareResponse, + CodeActionResponse, + CodeActionResolveResponse, + CodeLensResponse, + CodeLensResolveResponse, + ColorPresentationResponse, + CompletionResponse, + CompletionResolveResponse, + DeclarationResponse, + DefinitionResponse, + DocumentColorResponse, + DocumentDiagnosticResponse, + DocumentFormattingResponse, + DocumentHighlightResponse, + DocumentLinkResponse, + DocumentLinkResolveResponse, + DocumentOnTypeFormattingResponse, + DocumentRangeFormattingResponse, + DocumentRangesFormattingResponse, + DocumentSymbolResponse, + ExecuteCommandResponse, + FoldingRangeResponse, + HoverResponse, + ImplementationResponse, + InitializeResponse, + InlayHintResponse, + InlayHintResolveResponse, + InlineCompletionResponse, + InlineValueResponse, + LinkedEditingRangeResponse, + MonikerResponse, + PrepareRenameResponse, + ReferencesResponse, + RenameResponse, + SelectionRangeResponse, + SemanticTokensDeltaResponse, + SemanticTokensRangeResponse, + SemanticTokensResponse, + ShutdownResponse, + SignatureHelpResponse, + TextDocumentContentResponse, + TypeDefinitionResponse, + TypeHierarchyPrepareResponse, + TypeHierarchySubtypesResponse, + TypeHierarchySupertypesResponse, + WillCreateFilesResponse, + WillDeleteFilesResponse, + WillRenameFilesResponse, + WillSaveTextDocumentWaitUntilResponse, + WorkspaceDiagnosticResponse, + WorkspaceSymbolResponse, + WorkspaceSymbolResolveResponse, +] + + +ClientResponse: TypeAlias = Union[ + ApplyWorkspaceEditResponse, + CodeLensRefreshResponse, + ConfigurationResponse, + DiagnosticRefreshResponse, + FoldingRangeRefreshResponse, + InlayHintRefreshResponse, + InlineValueRefreshResponse, + RegistrationResponse, + SemanticTokensRefreshResponse, + ShowDocumentResponse, + ShowMessageResponse, + TextDocumentContentRefreshResponse, + UnregistrationResponse, + WorkDoneProgressCreateResponse, + WorkspaceFoldersResponse, +] + + +class CancelNotification(TypedDict): + method: Literal['$/cancelRequest'] + params: 'CancelParams' + + +class DidChangeConfigurationNotification(TypedDict): + method: Literal['workspace/didChangeConfiguration'] + params: 'DidChangeConfigurationParams' + + +class DidChangeNotebookDocumentNotification(TypedDict): + method: Literal['notebookDocument/didChange'] + params: 'DidChangeNotebookDocumentParams' + + +class DidChangeTextDocumentNotification(TypedDict): + method: Literal['textDocument/didChange'] + params: 'DidChangeTextDocumentParams' + + +class DidChangeWatchedFilesNotification(TypedDict): + method: Literal['workspace/didChangeWatchedFiles'] + params: 'DidChangeWatchedFilesParams' + + +class DidChangeWorkspaceFoldersNotification(TypedDict): + method: Literal['workspace/didChangeWorkspaceFolders'] + params: 'DidChangeWorkspaceFoldersParams' + + +class DidCloseNotebookDocumentNotification(TypedDict): + method: Literal['notebookDocument/didClose'] + params: 'DidCloseNotebookDocumentParams' + + +class DidCloseTextDocumentNotification(TypedDict): + method: Literal['textDocument/didClose'] + params: 'DidCloseTextDocumentParams' + + +class DidCreateFilesNotification(TypedDict): + method: Literal['workspace/didCreateFiles'] + params: 'CreateFilesParams' + + +class DidDeleteFilesNotification(TypedDict): + method: Literal['workspace/didDeleteFiles'] + params: 'DeleteFilesParams' + + +class DidOpenNotebookDocumentNotification(TypedDict): + method: Literal['notebookDocument/didOpen'] + params: 'DidOpenNotebookDocumentParams' + + +class DidOpenTextDocumentNotification(TypedDict): + method: Literal['textDocument/didOpen'] + params: 'DidOpenTextDocumentParams' + + +class DidRenameFilesNotification(TypedDict): + method: Literal['workspace/didRenameFiles'] + params: 'RenameFilesParams' + + +class DidSaveNotebookDocumentNotification(TypedDict): + method: Literal['notebookDocument/didSave'] + params: 'DidSaveNotebookDocumentParams' + + +class DidSaveTextDocumentNotification(TypedDict): + method: Literal['textDocument/didSave'] + params: 'DidSaveTextDocumentParams' + + +class ExitNotification(TypedDict): + method: Literal['exit'] + params: None + + +class InitializedNotification(TypedDict): + method: Literal['initialized'] + params: 'InitializedParams' + + +class LogMessageNotification(TypedDict): + method: Literal['window/logMessage'] + params: 'LogMessageParams' + + +class LogTraceNotification(TypedDict): + method: Literal['$/logTrace'] + params: 'LogTraceParams' + + +class ProgressNotification(TypedDict): + method: Literal['$/progress'] + params: 'ProgressParams' + + +class PublishDiagnosticsNotification(TypedDict): + method: Literal['textDocument/publishDiagnostics'] + params: 'PublishDiagnosticsParams' + + +class SetTraceNotification(TypedDict): + method: Literal['$/setTrace'] + params: 'SetTraceParams' + + +class ShowMessageNotification(TypedDict): + method: Literal['window/showMessage'] + params: 'ShowMessageParams' + + +class TelemetryEventNotification(TypedDict): + method: Literal['telemetry/event'] + params: 'LSPAny' + + +class WillSaveTextDocumentNotification(TypedDict): + method: Literal['textDocument/willSave'] + params: 'WillSaveTextDocumentParams' + + +class WorkDoneProgressCancelNotification(TypedDict): + method: Literal['window/workDoneProgress/cancel'] + params: 'WorkDoneProgressCancelParams' + + +ClientNotification: TypeAlias = Union[ + CancelNotification, + DidChangeConfigurationNotification, + DidChangeNotebookDocumentNotification, + DidChangeTextDocumentNotification, + DidChangeWatchedFilesNotification, + DidChangeWorkspaceFoldersNotification, + DidCloseNotebookDocumentNotification, + DidCloseTextDocumentNotification, + DidCreateFilesNotification, + DidDeleteFilesNotification, + DidOpenNotebookDocumentNotification, + DidOpenTextDocumentNotification, + DidRenameFilesNotification, + DidSaveNotebookDocumentNotification, + DidSaveTextDocumentNotification, + ExitNotification, + InitializedNotification, + ProgressNotification, + SetTraceNotification, + WillSaveTextDocumentNotification, + WorkDoneProgressCancelNotification, +] + + +ServerNotification: TypeAlias = Union[ + CancelNotification, + LogMessageNotification, + LogTraceNotification, + ProgressNotification, + PublishDiagnosticsNotification, + ShowMessageNotification, + TelemetryEventNotification, +] diff --git a/generated/lsp_types.py b/generated/lsp_types.py index f809d0c..6608342 100644 --- a/generated/lsp_types.py +++ b/generated/lsp_types.py @@ -8023,841 +8023,3 @@ class ClientSemanticTokensRequestFullDelta(TypedDict): The client will send the `textDocument/semanticTokens/full/delta` request if the server provides a corresponding handler. """ - - -class ImplementationRequest(TypedDict): - method: Literal['textDocument/implementation'] - params: 'ImplementationParams' - - -class TypeDefinitionRequest(TypedDict): - method: Literal['textDocument/typeDefinition'] - params: 'TypeDefinitionParams' - - -class WorkspaceFoldersRequest(TypedDict): - method: Literal['workspace/workspaceFolders'] - params: None - - -class ConfigurationRequest(TypedDict): - method: Literal['workspace/configuration'] - params: 'ConfigurationParams' - - -class DocumentColorRequest(TypedDict): - method: Literal['textDocument/documentColor'] - params: 'DocumentColorParams' - - -class ColorPresentationRequest(TypedDict): - method: Literal['textDocument/colorPresentation'] - params: 'ColorPresentationParams' - - -class FoldingRangeRequest(TypedDict): - method: Literal['textDocument/foldingRange'] - params: 'FoldingRangeParams' - - -class FoldingRangeRefreshRequest(TypedDict): - method: Literal['workspace/foldingRange/refresh'] - params: None - - -class DeclarationRequest(TypedDict): - method: Literal['textDocument/declaration'] - params: 'DeclarationParams' - - -class SelectionRangeRequest(TypedDict): - method: Literal['textDocument/selectionRange'] - params: 'SelectionRangeParams' - - -class WorkDoneProgressCreateRequest(TypedDict): - method: Literal['window/workDoneProgress/create'] - params: 'WorkDoneProgressCreateParams' - - -class CallHierarchyPrepareRequest(TypedDict): - method: Literal['textDocument/prepareCallHierarchy'] - params: 'CallHierarchyPrepareParams' - - -class CallHierarchyIncomingCallsRequest(TypedDict): - method: Literal['callHierarchy/incomingCalls'] - params: 'CallHierarchyIncomingCallsParams' - - -class CallHierarchyOutgoingCallsRequest(TypedDict): - method: Literal['callHierarchy/outgoingCalls'] - params: 'CallHierarchyOutgoingCallsParams' - - -class SemanticTokensRequest(TypedDict): - method: Literal['textDocument/semanticTokens/full'] - params: 'SemanticTokensParams' - - -class SemanticTokensDeltaRequest(TypedDict): - method: Literal['textDocument/semanticTokens/full/delta'] - params: 'SemanticTokensDeltaParams' - - -class SemanticTokensRangeRequest(TypedDict): - method: Literal['textDocument/semanticTokens/range'] - params: 'SemanticTokensRangeParams' - - -class SemanticTokensRefreshRequest(TypedDict): - method: Literal['workspace/semanticTokens/refresh'] - params: None - - -class ShowDocumentRequest(TypedDict): - method: Literal['window/showDocument'] - params: 'ShowDocumentParams' - - -class LinkedEditingRangeRequest(TypedDict): - method: Literal['textDocument/linkedEditingRange'] - params: 'LinkedEditingRangeParams' - - -class WillCreateFilesRequest(TypedDict): - method: Literal['workspace/willCreateFiles'] - params: 'CreateFilesParams' - - -class WillRenameFilesRequest(TypedDict): - method: Literal['workspace/willRenameFiles'] - params: 'RenameFilesParams' - - -class WillDeleteFilesRequest(TypedDict): - method: Literal['workspace/willDeleteFiles'] - params: 'DeleteFilesParams' - - -class MonikerRequest(TypedDict): - method: Literal['textDocument/moniker'] - params: 'MonikerParams' - - -class TypeHierarchyPrepareRequest(TypedDict): - method: Literal['textDocument/prepareTypeHierarchy'] - params: 'TypeHierarchyPrepareParams' - - -class TypeHierarchySupertypesRequest(TypedDict): - method: Literal['typeHierarchy/supertypes'] - params: 'TypeHierarchySupertypesParams' - - -class TypeHierarchySubtypesRequest(TypedDict): - method: Literal['typeHierarchy/subtypes'] - params: 'TypeHierarchySubtypesParams' - - -class InlineValueRequest(TypedDict): - method: Literal['textDocument/inlineValue'] - params: 'InlineValueParams' - - -class InlineValueRefreshRequest(TypedDict): - method: Literal['workspace/inlineValue/refresh'] - params: None - - -class InlayHintRequest(TypedDict): - method: Literal['textDocument/inlayHint'] - params: 'InlayHintParams' - - -class InlayHintResolveRequest(TypedDict): - method: Literal['inlayHint/resolve'] - params: 'InlayHint' - - -class InlayHintRefreshRequest(TypedDict): - method: Literal['workspace/inlayHint/refresh'] - params: None - - -class DocumentDiagnosticRequest(TypedDict): - method: Literal['textDocument/diagnostic'] - params: 'DocumentDiagnosticParams' - - -class WorkspaceDiagnosticRequest(TypedDict): - method: Literal['workspace/diagnostic'] - params: 'WorkspaceDiagnosticParams' - - -class DiagnosticRefreshRequest(TypedDict): - method: Literal['workspace/diagnostic/refresh'] - params: None - - -class InlineCompletionRequest(TypedDict): - method: Literal['textDocument/inlineCompletion'] - params: 'InlineCompletionParams' - - -class TextDocumentContentRequest(TypedDict): - method: Literal['workspace/textDocumentContent'] - params: 'TextDocumentContentParams' - - -class TextDocumentContentRefreshRequest(TypedDict): - method: Literal['workspace/textDocumentContent/refresh'] - params: 'TextDocumentContentRefreshParams' - - -class RegistrationRequest(TypedDict): - method: Literal['client/registerCapability'] - params: 'RegistrationParams' - - -class UnregistrationRequest(TypedDict): - method: Literal['client/unregisterCapability'] - params: 'UnregistrationParams' - - -class InitializeRequest(TypedDict): - method: Literal['initialize'] - params: 'InitializeParams' - - -class ShutdownRequest(TypedDict): - method: Literal['shutdown'] - params: None - - -class ShowMessageRequest(TypedDict): - method: Literal['window/showMessageRequest'] - params: 'ShowMessageRequestParams' - - -class WillSaveTextDocumentWaitUntilRequest(TypedDict): - method: Literal['textDocument/willSaveWaitUntil'] - params: 'WillSaveTextDocumentParams' - - -class CompletionRequest(TypedDict): - method: Literal['textDocument/completion'] - params: 'CompletionParams' - - -class CompletionResolveRequest(TypedDict): - method: Literal['completionItem/resolve'] - params: 'CompletionItem' - - -class HoverRequest(TypedDict): - method: Literal['textDocument/hover'] - params: 'HoverParams' - - -class SignatureHelpRequest(TypedDict): - method: Literal['textDocument/signatureHelp'] - params: 'SignatureHelpParams' - - -class DefinitionRequest(TypedDict): - method: Literal['textDocument/definition'] - params: 'DefinitionParams' - - -class ReferencesRequest(TypedDict): - method: Literal['textDocument/references'] - params: 'ReferenceParams' - - -class DocumentHighlightRequest(TypedDict): - method: Literal['textDocument/documentHighlight'] - params: 'DocumentHighlightParams' - - -class DocumentSymbolRequest(TypedDict): - method: Literal['textDocument/documentSymbol'] - params: 'DocumentSymbolParams' - - -class CodeActionRequest(TypedDict): - method: Literal['textDocument/codeAction'] - params: 'CodeActionParams' - - -class CodeActionResolveRequest(TypedDict): - method: Literal['codeAction/resolve'] - params: 'CodeAction' - - -class WorkspaceSymbolRequest(TypedDict): - method: Literal['workspace/symbol'] - params: 'WorkspaceSymbolParams' - - -class WorkspaceSymbolResolveRequest(TypedDict): - method: Literal['workspaceSymbol/resolve'] - params: 'WorkspaceSymbol' - - -class CodeLensRequest(TypedDict): - method: Literal['textDocument/codeLens'] - params: 'CodeLensParams' - - -class CodeLensResolveRequest(TypedDict): - method: Literal['codeLens/resolve'] - params: 'CodeLens' - - -class CodeLensRefreshRequest(TypedDict): - method: Literal['workspace/codeLens/refresh'] - params: None - - -class DocumentLinkRequest(TypedDict): - method: Literal['textDocument/documentLink'] - params: 'DocumentLinkParams' - - -class DocumentLinkResolveRequest(TypedDict): - method: Literal['documentLink/resolve'] - params: 'DocumentLink' - - -class DocumentFormattingRequest(TypedDict): - method: Literal['textDocument/formatting'] - params: 'DocumentFormattingParams' - - -class DocumentRangeFormattingRequest(TypedDict): - method: Literal['textDocument/rangeFormatting'] - params: 'DocumentRangeFormattingParams' - - -class DocumentRangesFormattingRequest(TypedDict): - method: Literal['textDocument/rangesFormatting'] - params: 'DocumentRangesFormattingParams' - - -class DocumentOnTypeFormattingRequest(TypedDict): - method: Literal['textDocument/onTypeFormatting'] - params: 'DocumentOnTypeFormattingParams' - - -class RenameRequest(TypedDict): - method: Literal['textDocument/rename'] - params: 'RenameParams' - - -class PrepareRenameRequest(TypedDict): - method: Literal['textDocument/prepareRename'] - params: 'PrepareRenameParams' - - -class ExecuteCommandRequest(TypedDict): - method: Literal['workspace/executeCommand'] - params: 'ExecuteCommandParams' - - -class ApplyWorkspaceEditRequest(TypedDict): - method: Literal['workspace/applyEdit'] - params: 'ApplyWorkspaceEditParams' - - -ClientRequest: TypeAlias = Union[ImplementationRequest, TypeDefinitionRequest, DocumentColorRequest, ColorPresentationRequest, FoldingRangeRequest, DeclarationRequest, SelectionRangeRequest, CallHierarchyPrepareRequest, CallHierarchyIncomingCallsRequest, CallHierarchyOutgoingCallsRequest, SemanticTokensRequest, SemanticTokensDeltaRequest, SemanticTokensRangeRequest, LinkedEditingRangeRequest, WillCreateFilesRequest, WillRenameFilesRequest, WillDeleteFilesRequest, MonikerRequest, TypeHierarchyPrepareRequest, TypeHierarchySupertypesRequest, TypeHierarchySubtypesRequest, InlineValueRequest, InlayHintRequest, InlayHintResolveRequest, DocumentDiagnosticRequest, WorkspaceDiagnosticRequest, InlineCompletionRequest, TextDocumentContentRequest, InitializeRequest, ShutdownRequest, WillSaveTextDocumentWaitUntilRequest, CompletionRequest, CompletionResolveRequest, HoverRequest, SignatureHelpRequest, DefinitionRequest, ReferencesRequest, DocumentHighlightRequest, DocumentSymbolRequest, CodeActionRequest, CodeActionResolveRequest, WorkspaceSymbolRequest, WorkspaceSymbolResolveRequest, CodeLensRequest, CodeLensResolveRequest, DocumentLinkRequest, DocumentLinkResolveRequest, DocumentFormattingRequest, DocumentRangeFormattingRequest, DocumentRangesFormattingRequest, DocumentOnTypeFormattingRequest, RenameRequest, PrepareRenameRequest, ExecuteCommandRequest] - - -ServerRequest: TypeAlias = Union[WorkspaceFoldersRequest, ConfigurationRequest, FoldingRangeRefreshRequest, WorkDoneProgressCreateRequest, SemanticTokensRefreshRequest, ShowDocumentRequest, InlineValueRefreshRequest, InlayHintRefreshRequest, DiagnosticRefreshRequest, TextDocumentContentRefreshRequest, RegistrationRequest, UnregistrationRequest, ShowMessageRequest, CodeLensRefreshRequest, ApplyWorkspaceEditRequest] - - -class ImplementationResponse(TypedDict): - method: Literal['textDocument/implementation'] - result: Union['Definition', List['DefinitionLink'], None] - - -class TypeDefinitionResponse(TypedDict): - method: Literal['textDocument/typeDefinition'] - result: Union['Definition', List['DefinitionLink'], None] - - -class WorkspaceFoldersResponse(TypedDict): - method: Literal['workspace/workspaceFolders'] - result: Union[List['WorkspaceFolder'], None] - - -class ConfigurationResponse(TypedDict): - method: Literal['workspace/configuration'] - result: List['LSPAny'] - - -class DocumentColorResponse(TypedDict): - method: Literal['textDocument/documentColor'] - result: List['ColorInformation'] - - -class ColorPresentationResponse(TypedDict): - method: Literal['textDocument/colorPresentation'] - result: List['ColorPresentation'] - - -class FoldingRangeResponse(TypedDict): - method: Literal['textDocument/foldingRange'] - result: Union[List['FoldingRange'], None] - - -class FoldingRangeRefreshResponse(TypedDict): - method: Literal['workspace/foldingRange/refresh'] - result: None - - -class DeclarationResponse(TypedDict): - method: Literal['textDocument/declaration'] - result: Union['Declaration', List['DeclarationLink'], None] - - -class SelectionRangeResponse(TypedDict): - method: Literal['textDocument/selectionRange'] - result: Union[List['SelectionRange'], None] - - -class WorkDoneProgressCreateResponse(TypedDict): - method: Literal['window/workDoneProgress/create'] - result: None - - -class CallHierarchyPrepareResponse(TypedDict): - method: Literal['textDocument/prepareCallHierarchy'] - result: Union[List['CallHierarchyItem'], None] - - -class CallHierarchyIncomingCallsResponse(TypedDict): - method: Literal['callHierarchy/incomingCalls'] - result: Union[List['CallHierarchyIncomingCall'], None] - - -class CallHierarchyOutgoingCallsResponse(TypedDict): - method: Literal['callHierarchy/outgoingCalls'] - result: Union[List['CallHierarchyOutgoingCall'], None] - - -class SemanticTokensResponse(TypedDict): - method: Literal['textDocument/semanticTokens/full'] - result: Union['SemanticTokens', None] - - -class SemanticTokensDeltaResponse(TypedDict): - method: Literal['textDocument/semanticTokens/full/delta'] - result: Union['SemanticTokens', 'SemanticTokensDelta', None] - - -class SemanticTokensRangeResponse(TypedDict): - method: Literal['textDocument/semanticTokens/range'] - result: Union['SemanticTokens', None] - - -class SemanticTokensRefreshResponse(TypedDict): - method: Literal['workspace/semanticTokens/refresh'] - result: None - - -class ShowDocumentResponse(TypedDict): - method: Literal['window/showDocument'] - result: 'ShowDocumentResult' - - -class LinkedEditingRangeResponse(TypedDict): - method: Literal['textDocument/linkedEditingRange'] - result: Union['LinkedEditingRanges', None] - - -class WillCreateFilesResponse(TypedDict): - method: Literal['workspace/willCreateFiles'] - result: Union['WorkspaceEdit', None] - - -class WillRenameFilesResponse(TypedDict): - method: Literal['workspace/willRenameFiles'] - result: Union['WorkspaceEdit', None] - - -class WillDeleteFilesResponse(TypedDict): - method: Literal['workspace/willDeleteFiles'] - result: Union['WorkspaceEdit', None] - - -class MonikerResponse(TypedDict): - method: Literal['textDocument/moniker'] - result: Union[List['Moniker'], None] - - -class TypeHierarchyPrepareResponse(TypedDict): - method: Literal['textDocument/prepareTypeHierarchy'] - result: Union[List['TypeHierarchyItem'], None] - - -class TypeHierarchySupertypesResponse(TypedDict): - method: Literal['typeHierarchy/supertypes'] - result: Union[List['TypeHierarchyItem'], None] - - -class TypeHierarchySubtypesResponse(TypedDict): - method: Literal['typeHierarchy/subtypes'] - result: Union[List['TypeHierarchyItem'], None] - - -class InlineValueResponse(TypedDict): - method: Literal['textDocument/inlineValue'] - result: Union[List['InlineValue'], None] - - -class InlineValueRefreshResponse(TypedDict): - method: Literal['workspace/inlineValue/refresh'] - result: None - - -class InlayHintResponse(TypedDict): - method: Literal['textDocument/inlayHint'] - result: Union[List['InlayHint'], None] - - -class InlayHintResolveResponse(TypedDict): - method: Literal['inlayHint/resolve'] - result: 'InlayHint' - - -class InlayHintRefreshResponse(TypedDict): - method: Literal['workspace/inlayHint/refresh'] - result: None - - -class DocumentDiagnosticResponse(TypedDict): - method: Literal['textDocument/diagnostic'] - result: 'DocumentDiagnosticReport' - - -class WorkspaceDiagnosticResponse(TypedDict): - method: Literal['workspace/diagnostic'] - result: 'WorkspaceDiagnosticReport' - - -class DiagnosticRefreshResponse(TypedDict): - method: Literal['workspace/diagnostic/refresh'] - result: None - - -class InlineCompletionResponse(TypedDict): - method: Literal['textDocument/inlineCompletion'] - result: Union['InlineCompletionList', List['InlineCompletionItem'], None] - - -class TextDocumentContentResponse(TypedDict): - method: Literal['workspace/textDocumentContent'] - result: 'TextDocumentContentResult' - - -class TextDocumentContentRefreshResponse(TypedDict): - method: Literal['workspace/textDocumentContent/refresh'] - result: None - - -class RegistrationResponse(TypedDict): - method: Literal['client/registerCapability'] - result: None - - -class UnregistrationResponse(TypedDict): - method: Literal['client/unregisterCapability'] - result: None - - -class InitializeResponse(TypedDict): - method: Literal['initialize'] - result: 'InitializeResult' - - -class ShutdownResponse(TypedDict): - method: Literal['shutdown'] - result: None - - -class ShowMessageResponse(TypedDict): - method: Literal['window/showMessageRequest'] - result: Union['MessageActionItem', None] - - -class WillSaveTextDocumentWaitUntilResponse(TypedDict): - method: Literal['textDocument/willSaveWaitUntil'] - result: Union[List['TextEdit'], None] - - -class CompletionResponse(TypedDict): - method: Literal['textDocument/completion'] - result: Union[List['CompletionItem'], 'CompletionList', None] - - -class CompletionResolveResponse(TypedDict): - method: Literal['completionItem/resolve'] - result: 'CompletionItem' - - -class HoverResponse(TypedDict): - method: Literal['textDocument/hover'] - result: Union['Hover', None] - - -class SignatureHelpResponse(TypedDict): - method: Literal['textDocument/signatureHelp'] - result: Union['SignatureHelp', None] - - -class DefinitionResponse(TypedDict): - method: Literal['textDocument/definition'] - result: Union['Definition', List['DefinitionLink'], None] - - -class ReferencesResponse(TypedDict): - method: Literal['textDocument/references'] - result: Union[List['Location'], None] - - -class DocumentHighlightResponse(TypedDict): - method: Literal['textDocument/documentHighlight'] - result: Union[List['DocumentHighlight'], None] - - -class DocumentSymbolResponse(TypedDict): - method: Literal['textDocument/documentSymbol'] - result: Union[List['SymbolInformation'], List['DocumentSymbol'], None] - - -class CodeActionResponse(TypedDict): - method: Literal['textDocument/codeAction'] - result: Union[List[Union['Command', 'CodeAction']], None] - - -class CodeActionResolveResponse(TypedDict): - method: Literal['codeAction/resolve'] - result: 'CodeAction' - - -class WorkspaceSymbolResponse(TypedDict): - method: Literal['workspace/symbol'] - result: Union[List['SymbolInformation'], List['WorkspaceSymbol'], None] - - -class WorkspaceSymbolResolveResponse(TypedDict): - method: Literal['workspaceSymbol/resolve'] - result: 'WorkspaceSymbol' - - -class CodeLensResponse(TypedDict): - method: Literal['textDocument/codeLens'] - result: Union[List['CodeLens'], None] - - -class CodeLensResolveResponse(TypedDict): - method: Literal['codeLens/resolve'] - result: 'CodeLens' - - -class CodeLensRefreshResponse(TypedDict): - method: Literal['workspace/codeLens/refresh'] - result: None - - -class DocumentLinkResponse(TypedDict): - method: Literal['textDocument/documentLink'] - result: Union[List['DocumentLink'], None] - - -class DocumentLinkResolveResponse(TypedDict): - method: Literal['documentLink/resolve'] - result: 'DocumentLink' - - -class DocumentFormattingResponse(TypedDict): - method: Literal['textDocument/formatting'] - result: Union[List['TextEdit'], None] - - -class DocumentRangeFormattingResponse(TypedDict): - method: Literal['textDocument/rangeFormatting'] - result: Union[List['TextEdit'], None] - - -class DocumentRangesFormattingResponse(TypedDict): - method: Literal['textDocument/rangesFormatting'] - result: Union[List['TextEdit'], None] - - -class DocumentOnTypeFormattingResponse(TypedDict): - method: Literal['textDocument/onTypeFormatting'] - result: Union[List['TextEdit'], None] - - -class RenameResponse(TypedDict): - method: Literal['textDocument/rename'] - result: Union['WorkspaceEdit', None] - - -class PrepareRenameResponse(TypedDict): - method: Literal['textDocument/prepareRename'] - result: Union['PrepareRenameResult', None] - - -class ExecuteCommandResponse(TypedDict): - method: Literal['workspace/executeCommand'] - result: Union['LSPAny', None] - - -class ApplyWorkspaceEditResponse(TypedDict): - method: Literal['workspace/applyEdit'] - result: 'ApplyWorkspaceEditResult' - - -ServerResponse: TypeAlias = Union[ImplementationResponse, TypeDefinitionResponse, DocumentColorResponse, ColorPresentationResponse, FoldingRangeResponse, DeclarationResponse, SelectionRangeResponse, CallHierarchyPrepareResponse, CallHierarchyIncomingCallsResponse, CallHierarchyOutgoingCallsResponse, SemanticTokensResponse, SemanticTokensDeltaResponse, SemanticTokensRangeResponse, LinkedEditingRangeResponse, WillCreateFilesResponse, WillRenameFilesResponse, WillDeleteFilesResponse, MonikerResponse, TypeHierarchyPrepareResponse, TypeHierarchySupertypesResponse, TypeHierarchySubtypesResponse, InlineValueResponse, InlayHintResponse, InlayHintResolveResponse, DocumentDiagnosticResponse, WorkspaceDiagnosticResponse, InlineCompletionResponse, TextDocumentContentResponse, InitializeResponse, ShutdownResponse, WillSaveTextDocumentWaitUntilResponse, CompletionResponse, CompletionResolveResponse, HoverResponse, SignatureHelpResponse, DefinitionResponse, ReferencesResponse, DocumentHighlightResponse, DocumentSymbolResponse, CodeActionResponse, CodeActionResolveResponse, WorkspaceSymbolResponse, WorkspaceSymbolResolveResponse, CodeLensResponse, CodeLensResolveResponse, DocumentLinkResponse, DocumentLinkResolveResponse, DocumentFormattingResponse, DocumentRangeFormattingResponse, DocumentRangesFormattingResponse, DocumentOnTypeFormattingResponse, RenameResponse, PrepareRenameResponse, ExecuteCommandResponse] - - -ClientResponse: TypeAlias = Union[WorkspaceFoldersResponse, ConfigurationResponse, FoldingRangeRefreshResponse, WorkDoneProgressCreateResponse, SemanticTokensRefreshResponse, ShowDocumentResponse, InlineValueRefreshResponse, InlayHintRefreshResponse, DiagnosticRefreshResponse, TextDocumentContentRefreshResponse, RegistrationResponse, UnregistrationResponse, ShowMessageResponse, CodeLensRefreshResponse, ApplyWorkspaceEditResponse] - - -class DidChangeWorkspaceFoldersNotification(TypedDict): - method: Literal['workspace/didChangeWorkspaceFolders'] - params: 'DidChangeWorkspaceFoldersParams' - - -class WorkDoneProgressCancelNotification(TypedDict): - method: Literal['window/workDoneProgress/cancel'] - params: 'WorkDoneProgressCancelParams' - - -class DidCreateFilesNotification(TypedDict): - method: Literal['workspace/didCreateFiles'] - params: 'CreateFilesParams' - - -class DidRenameFilesNotification(TypedDict): - method: Literal['workspace/didRenameFiles'] - params: 'RenameFilesParams' - - -class DidDeleteFilesNotification(TypedDict): - method: Literal['workspace/didDeleteFiles'] - params: 'DeleteFilesParams' - - -class DidOpenNotebookDocumentNotification(TypedDict): - method: Literal['notebookDocument/didOpen'] - params: 'DidOpenNotebookDocumentParams' - - -class DidChangeNotebookDocumentNotification(TypedDict): - method: Literal['notebookDocument/didChange'] - params: 'DidChangeNotebookDocumentParams' - - -class DidSaveNotebookDocumentNotification(TypedDict): - method: Literal['notebookDocument/didSave'] - params: 'DidSaveNotebookDocumentParams' - - -class DidCloseNotebookDocumentNotification(TypedDict): - method: Literal['notebookDocument/didClose'] - params: 'DidCloseNotebookDocumentParams' - - -class InitializedNotification(TypedDict): - method: Literal['initialized'] - params: 'InitializedParams' - - -class ExitNotification(TypedDict): - method: Literal['exit'] - params: None - - -class DidChangeConfigurationNotification(TypedDict): - method: Literal['workspace/didChangeConfiguration'] - params: 'DidChangeConfigurationParams' - - -class ShowMessageNotification(TypedDict): - method: Literal['window/showMessage'] - params: 'ShowMessageParams' - - -class LogMessageNotification(TypedDict): - method: Literal['window/logMessage'] - params: 'LogMessageParams' - - -class TelemetryEventNotification(TypedDict): - method: Literal['telemetry/event'] - params: 'LSPAny' - - -class DidOpenTextDocumentNotification(TypedDict): - method: Literal['textDocument/didOpen'] - params: 'DidOpenTextDocumentParams' - - -class DidChangeTextDocumentNotification(TypedDict): - method: Literal['textDocument/didChange'] - params: 'DidChangeTextDocumentParams' - - -class DidCloseTextDocumentNotification(TypedDict): - method: Literal['textDocument/didClose'] - params: 'DidCloseTextDocumentParams' - - -class DidSaveTextDocumentNotification(TypedDict): - method: Literal['textDocument/didSave'] - params: 'DidSaveTextDocumentParams' - - -class WillSaveTextDocumentNotification(TypedDict): - method: Literal['textDocument/willSave'] - params: 'WillSaveTextDocumentParams' - - -class DidChangeWatchedFilesNotification(TypedDict): - method: Literal['workspace/didChangeWatchedFiles'] - params: 'DidChangeWatchedFilesParams' - - -class PublishDiagnosticsNotification(TypedDict): - method: Literal['textDocument/publishDiagnostics'] - params: 'PublishDiagnosticsParams' - - -class SetTraceNotification(TypedDict): - method: Literal['$/setTrace'] - params: 'SetTraceParams' - - -class LogTraceNotification(TypedDict): - method: Literal['$/logTrace'] - params: 'LogTraceParams' - - -class CancelNotification(TypedDict): - method: Literal['$/cancelRequest'] - params: 'CancelParams' - - -class ProgressNotification(TypedDict): - method: Literal['$/progress'] - params: 'ProgressParams' - - -ClientNotification: TypeAlias = Union[DidChangeWorkspaceFoldersNotification, WorkDoneProgressCancelNotification, DidCreateFilesNotification, DidRenameFilesNotification, DidDeleteFilesNotification, DidOpenNotebookDocumentNotification, DidChangeNotebookDocumentNotification, DidSaveNotebookDocumentNotification, DidCloseNotebookDocumentNotification, InitializedNotification, ExitNotification, DidChangeConfigurationNotification, DidOpenTextDocumentNotification, DidChangeTextDocumentNotification, DidCloseTextDocumentNotification, DidSaveTextDocumentNotification, WillSaveTextDocumentNotification, DidChangeWatchedFilesNotification, SetTraceNotification, CancelNotification, ProgressNotification] - - -ServerNotification: TypeAlias = Union[ShowMessageNotification, LogMessageNotification, TelemetryEventNotification, PublishDiagnosticsNotification, LogTraceNotification, CancelNotification, ProgressNotification] diff --git a/pyproject.toml b/pyproject.toml index 3e338a7..137a857 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,6 +8,7 @@ classifiers = [ "Operating System :: OS Independent", ] dependencies = [ + "ruff>=0.15.4", "typing-extensions", ] @@ -29,7 +30,13 @@ target-version = "py313" [tool.ruff.format] quote-style = "single" exclude = [ - "generated/*.py" + "generated/lsp_types.py" +] + +[tool.ruff.lint.per-file-ignores] +"generated/custom.py" = [ + "F403", # https://docs.astral.sh/ruff/rules/undefined-local-with-import-star/ + "F405", # https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage/ ] [tool.ruff.lint.isort] @@ -49,6 +56,7 @@ extend-select = ["ALL"] fixable = ["ALL"] ignore = [ "COM812", # https://docs.astral.sh/ruff/rules/missing-trailing-comma/ + "CPY001", # https://docs.astral.sh/ruff/rules/missing-copyright-notice/ "C901", # https://docs.astral.sh/ruff/rules/complex-structure/ "D100", # https://docs.astral.sh/ruff/rules/undocumented-public-module/#undocumented-public-module-d100 "D101", # https://docs.astral.sh/ruff/rules/undocumented-public-class/ diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 483a522..0000000 --- a/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -typing-extensions==4.15.0 \ No newline at end of file diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..408bc70 --- /dev/null +++ b/uv.lock @@ -0,0 +1,52 @@ +version = 1 +revision = 3 +requires-python = ">=3.13" + +[[package]] +name = "lsp-types" +version = "1.0.0" +source = { virtual = "." } +dependencies = [ + { name = "ruff" }, + { name = "typing-extensions" }, +] + +[package.metadata] +requires-dist = [ + { name = "ruff", specifier = ">=0.15.4" }, + { name = "typing-extensions" }, +] + +[[package]] +name = "ruff" +version = "0.15.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/31/d6e536cdebb6568ae75a7f00e4b4819ae0ad2640c3604c305a0428680b0c/ruff-0.15.4.tar.gz", hash = "sha256:3412195319e42d634470cc97aa9803d07e9d5c9223b99bcb1518f0c725f26ae1", size = 4569550, upload-time = "2026-02-26T20:04:14.959Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/82/c11a03cfec3a4d26a0ea1e571f0f44be5993b923f905eeddfc397c13d360/ruff-0.15.4-py3-none-linux_armv6l.whl", hash = "sha256:a1810931c41606c686bae8b5b9a8072adac2f611bb433c0ba476acba17a332e0", size = 10453333, upload-time = "2026-02-26T20:04:20.093Z" }, + { url = "https://files.pythonhosted.org/packages/ce/5d/6a1f271f6e31dffb31855996493641edc3eef8077b883eaf007a2f1c2976/ruff-0.15.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:5a1632c66672b8b4d3e1d1782859e98d6e0b4e70829530666644286600a33992", size = 10853356, upload-time = "2026-02-26T20:04:05.808Z" }, + { url = "https://files.pythonhosted.org/packages/b1/d8/0fab9f8842b83b1a9c2bf81b85063f65e93fb512e60effa95b0be49bfc54/ruff-0.15.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a4386ba2cd6c0f4ff75252845906acc7c7c8e1ac567b7bc3d373686ac8c222ba", size = 10187434, upload-time = "2026-02-26T20:03:54.656Z" }, + { url = "https://files.pythonhosted.org/packages/85/cc/cc220fd9394eff5db8d94dec199eec56dd6c9f3651d8869d024867a91030/ruff-0.15.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2496488bdfd3732747558b6f95ae427ff066d1fcd054daf75f5a50674411e75", size = 10535456, upload-time = "2026-02-26T20:03:52.738Z" }, + { url = "https://files.pythonhosted.org/packages/fa/0f/bced38fa5cf24373ec767713c8e4cadc90247f3863605fb030e597878661/ruff-0.15.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f1c4893841ff2d54cbda1b2860fa3260173df5ddd7b95d370186f8a5e66a4ac", size = 10287772, upload-time = "2026-02-26T20:04:08.138Z" }, + { url = "https://files.pythonhosted.org/packages/2b/90/58a1802d84fed15f8f281925b21ab3cecd813bde52a8ca033a4de8ab0e7a/ruff-0.15.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:820b8766bd65503b6c30aaa6331e8ef3a6e564f7999c844e9a547c40179e440a", size = 11049051, upload-time = "2026-02-26T20:04:03.53Z" }, + { url = "https://files.pythonhosted.org/packages/d2/ac/b7ad36703c35f3866584564dc15f12f91cb1a26a897dc2fd13d7cb3ae1af/ruff-0.15.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9fb74bab47139c1751f900f857fa503987253c3ef89129b24ed375e72873e85", size = 11890494, upload-time = "2026-02-26T20:04:10.497Z" }, + { url = "https://files.pythonhosted.org/packages/93/3d/3eb2f47a39a8b0da99faf9c54d3eb24720add1e886a5309d4d1be73a6380/ruff-0.15.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f80c98765949c518142b3a50a5db89343aa90f2c2bf7799de9986498ae6176db", size = 11326221, upload-time = "2026-02-26T20:04:12.84Z" }, + { url = "https://files.pythonhosted.org/packages/ff/90/bf134f4c1e5243e62690e09d63c55df948a74084c8ac3e48a88468314da6/ruff-0.15.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:451a2e224151729b3b6c9ffb36aed9091b2996fe4bdbd11f47e27d8f2e8888ec", size = 11168459, upload-time = "2026-02-26T20:04:00.969Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e5/a64d27688789b06b5d55162aafc32059bb8c989c61a5139a36e1368285eb/ruff-0.15.4-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:a8f157f2e583c513c4f5f896163a93198297371f34c04220daf40d133fdd4f7f", size = 11104366, upload-time = "2026-02-26T20:03:48.099Z" }, + { url = "https://files.pythonhosted.org/packages/f1/f6/32d1dcb66a2559763fc3027bdd65836cad9eb09d90f2ed6a63d8e9252b02/ruff-0.15.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:917cc68503357021f541e69b35361c99387cdbbf99bd0ea4aa6f28ca99ff5338", size = 10510887, upload-time = "2026-02-26T20:03:45.771Z" }, + { url = "https://files.pythonhosted.org/packages/ff/92/22d1ced50971c5b6433aed166fcef8c9343f567a94cf2b9d9089f6aa80fe/ruff-0.15.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e9737c8161da79fd7cfec19f1e35620375bd8b2a50c3e77fa3d2c16f574105cc", size = 10285939, upload-time = "2026-02-26T20:04:22.42Z" }, + { url = "https://files.pythonhosted.org/packages/e6/f4/7c20aec3143837641a02509a4668fb146a642fd1211846634edc17eb5563/ruff-0.15.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:291258c917539e18f6ba40482fe31d6f5ac023994ee11d7bdafd716f2aab8a68", size = 10765471, upload-time = "2026-02-26T20:03:58.924Z" }, + { url = "https://files.pythonhosted.org/packages/d0/09/6d2f7586f09a16120aebdff8f64d962d7c4348313c77ebb29c566cefc357/ruff-0.15.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3f83c45911da6f2cd5936c436cf86b9f09f09165f033a99dcf7477e34041cbc3", size = 11263382, upload-time = "2026-02-26T20:04:24.424Z" }, + { url = "https://files.pythonhosted.org/packages/1b/fa/2ef715a1cd329ef47c1a050e10dee91a9054b7ce2fcfdd6a06d139afb7ec/ruff-0.15.4-py3-none-win32.whl", hash = "sha256:65594a2d557d4ee9f02834fcdf0a28daa8b3b9f6cb2cb93846025a36db47ef22", size = 10506664, upload-time = "2026-02-26T20:03:50.56Z" }, + { url = "https://files.pythonhosted.org/packages/d0/a8/c688ef7e29983976820d18710f955751d9f4d4eb69df658af3d006e2ba3e/ruff-0.15.4-py3-none-win_amd64.whl", hash = "sha256:04196ad44f0df220c2ece5b0e959c2f37c777375ec744397d21d15b50a75264f", size = 11651048, upload-time = "2026-02-26T20:04:17.191Z" }, + { url = "https://files.pythonhosted.org/packages/3e/0a/9e1be9035b37448ce2e68c978f0591da94389ade5a5abafa4cf99985d1b2/ruff-0.15.4-py3-none-win_arm64.whl", hash = "sha256:60d5177e8cfc70e51b9c5fad936c634872a74209f934c1e79107d11787ad5453", size = 10966776, upload-time = "2026-02-26T20:03:56.908Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +]