module; import glaze; export module lsp.protocol; import std; // Aggregated LSP protocol module (facade with serialization metadata) // This module re-exports lsp.protocol.types and all protocol submodules // Note: transform.* modules are NOT re-exported to avoid circular dependencies export import lsp.protocol.types; // Import all protocol submodules for glaze metadata import lsp.protocol.window.progress; import lsp.protocol.initialize.configuration; import lsp.protocol.initialize.capabilities; import lsp.protocol.workspace.workspace; import lsp.protocol.workspace.file_operations; import lsp.protocol.workspace.notebook; import lsp.protocol.text_document.document_sync; import lsp.protocol.text_document.completion; import lsp.protocol.text_document.code_actions; import lsp.protocol.text_document.diagnostics; import lsp.protocol.text_document.document_features; import lsp.protocol.text_document.formatting; import lsp.protocol.text_document.inline_features; import lsp.protocol.text_document.navigation; import lsp.protocol.text_document.rename; import lsp.protocol.text_document.semantic_tokens; import lsp.protocol.text_document.signature_help; import lsp.protocol.text_document.symbols; // Glaze meta specializations (from legacy protocol.hpp) namespace glz { template<> struct meta { using T = lsp::protocol::RequestMessage; static constexpr auto value = glz::object( &T::jsonrpc, &T::id, &T::method, &T::params); }; template<> struct meta { using T = lsp::protocol::ResponseError; static constexpr auto value = glz::object(&T::jsonrpc, &T::code, &T::message, &T::data); }; template<> struct meta { using T = lsp::protocol::ResponseMessage; static constexpr auto value = glz::object(&T::jsonrpc, &T::id, &T::result, &T::error); }; template<> struct meta { using T = lsp::protocol::NotificationMessage; static constexpr auto value = glz::object(&T::jsonrpc, &T::method, &T::params); }; template<> struct meta { using T = lsp::protocol::CancelParams; static constexpr auto value = glz::object(&T::id); }; template<> struct meta { using T = lsp::protocol::AnnotatedTextEdit; static constexpr auto value = glz::object(&T::range, &T::newText, &T::annotationId); }; template<> struct meta { using T = lsp::protocol::InitializeParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::processId, &T::clientInfo, &T::locale, &T::rootPath, &T::rootUri, &T::initializationOptions, &T::capabilities, &T::trace, &T::workspaceFolders); }; template<> struct meta { using T = lsp::protocol::CodeActionOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::codeActionKinds, &T::resolveProvider); }; template<> struct meta { using T = lsp::protocol::CodeActionRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::codeActionKinds, &T::resolveProvider); }; template<> struct meta { using T = lsp::protocol::CodeActionParams; static constexpr auto value = glz::object(&T::textDocument, &T::position, &T::workDoneToken, &T::partialResultToken, &T::textDocument, &T::range, &T::context); }; template<> struct meta { using T = lsp::protocol::DocumentColorOptions; static constexpr auto value = glz::object(&T::workDoneProgress); }; template<> struct meta { using T = lsp::protocol::DocumentColorRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::id); }; template<> struct meta { using T = lsp::protocol::DocumentColorParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::textDocument); }; template<> struct meta { using T = lsp::protocol::ColorPresentationParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::textDocument, &T::color, &T::range); }; template<> struct meta { using T = lsp::protocol::CompletionOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::triggerCharacters, &T::allCommitCharacters, &T::resolveProvider, &T::completionItem); }; template<> struct meta { using T = lsp::protocol::CompletionRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::triggerCharacters, &T::allCommitCharacters, &T::resolveProvider, &T::completionItem); }; template<> struct meta { using T = lsp::protocol::CompletionParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::textDocument, &T::position, &T::context); }; template<> struct meta { using T = lsp::protocol::ExecuteCommandOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::commands); }; template<> struct meta { using T = lsp::protocol::ExecuteCommandRegistrationOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::commands); }; template<> struct meta { using T = lsp::protocol::ExecuteCommandParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::arguments); }; template<> struct meta { using T = lsp::protocol::DiagnosticOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::interFileDependencies, &T::workspaceDiagnostics); }; template<> struct meta { using T = lsp::protocol::DiagnosticRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::id, &T::workDoneProgress, &T::interFileDependencies, &T::workspaceDiagnostics); }; template<> struct meta { using T = lsp::protocol::DiagnosticParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::textDocument, &T::identifier, &T::previousResultId); }; template<> struct meta { using T = lsp::protocol::PublishDiagnosticsClientCapabilities; static constexpr auto value = glz::object(&T::dynamicRegistration, &T::relatedDocumentSupport, &T::relatedInformation, &T::tagSupport, &T::codeDescriptionSupport, &T::markupMessageSupport, &T::dataSupport, &T::versionSupport); }; template<> struct meta { using T = lsp::protocol::RelatedFullDocumentDiagnosticReport; static constexpr auto value = glz::object(&T::kind, &T::resultId, &T::items, &T::relatedDocuments); }; template<> struct meta { using T = lsp::protocol::RelatedUnchangedDocumentDiagnosticReport; static constexpr auto value = glz::object(&T::kind, &T::resultId, &T::relatedDocuments); }; template<> struct meta { using T = lsp::protocol::WorkspaceDiagnosticParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::identifier, &T::previousResultIds); }; template<> struct meta { using T = lsp::protocol::WorkspaceFullDocumentDiagnosticReport; static constexpr auto value = glz::object(&T::kind, &T::resultId, &T::items, &T::uri, &T::version); }; template<> struct meta { using T = lsp::protocol::WorkspaceUnchangedDocumentDiagnosticReport; static constexpr auto value = glz::object(&T::kind, &T::resultId, &T::uri, &T::version); }; template<> struct meta { using T = lsp::protocol::DocumentHighlightOptions; static constexpr auto value = glz::object(&T::workDoneProgress); }; template<> struct meta { using T = lsp::protocol::DocumentHighlightRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress); }; template<> struct meta { using T = lsp::protocol::DocumentHighlightParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::textDocument, &T::position); }; template<> struct meta { using T = lsp::protocol::DocumentLinkOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::resolveProvider); }; template<> struct meta { using T = lsp::protocol::DocumentLinkRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::resolveProvider); }; template<> struct meta { using T = lsp::protocol::DocumentLinkParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::textDocument); }; template<> struct meta { using T = lsp::protocol::HoverOptions; static constexpr auto value = glz::object(&T::workDoneProgress); }; template<> struct meta { using T = lsp::protocol::HoverRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress); }; template<> struct meta { using T = lsp::protocol::HoverParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::textDocument, &T::position); }; template<> struct meta { using T = lsp::protocol::CodeLensOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::resolveProvider); }; template<> struct meta { using T = lsp::protocol::CodeLensRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::resolveProvider); }; template<> struct meta { using T = lsp::protocol::CodeLensParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::textDocument); }; template<> struct meta { using T = lsp::protocol::FoldingRangeOptions; static constexpr auto value = glz::object(&T::workDoneProgress); }; template<> struct meta { using T = lsp::protocol::FoldingRangeRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::id); }; template<> struct meta { using T = lsp::protocol::FoldingRangeParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::textDocument); }; template<> struct meta { using T = lsp::protocol::SelectionRangeOptions; static constexpr auto value = glz::object(&T::workDoneProgress); }; template<> struct meta { using T = lsp::protocol::SelectionRangeRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::id); }; template<> struct meta { using T = lsp::protocol::SelectionRangeParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::textDocument, &T::positions); }; template<> struct meta { using T = lsp::protocol::WorkspaceSymbolOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::resolveProvider); }; template<> struct meta { using T = lsp::protocol::InlayHintOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::resolveProvider); }; template<> struct meta { using T = lsp::protocol::InlayHintRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::resolveProvider, &T::id); }; template<> struct meta { using T = lsp::protocol::InlineValueRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::id); }; template<> struct meta { using T = lsp::protocol::TypeHierarchyRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::id); }; template<> struct meta { using T = lsp::protocol::MonikerRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress); }; template<> struct meta { using T = lsp::protocol::LinkedEditingRangeRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::id); }; template<> struct meta { using T = lsp::protocol::SemanticTokensOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::legend, &T::range, &T::full); }; template<> struct meta { using T = lsp::protocol::SemanticTokensRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::legend, &T::range, &T::full, &T::id); }; template<> struct meta { using T = lsp::protocol::CallHierarchyRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::id); }; template<> struct meta { using T = lsp::protocol::RenameOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::prepareProvider); }; template<> struct meta { using T = lsp::protocol::RenameRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::prepareProvider); }; template<> struct meta { using T = lsp::protocol::RenameParams; static constexpr auto value = glz::object(&T::textDocument, &T::position, &T::workDoneToken, &T::newName); }; template<> struct meta { using T = lsp::protocol::PrepareRenameParams; static constexpr auto value = glz::object(&T::textDocument, &T::position, &T::workDoneToken); }; template<> struct meta { using T = lsp::protocol::LinkedEditingRangeParams; static constexpr auto value = glz::object(&T::textDocument, &T::position, &T::workDoneToken, &T::partialResultToken); }; template<> struct meta { using T = lsp::protocol::DocumentOnTypeFormattingOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::firstTriggerCharacter, &T::moreTriggerCharacter); }; template<> struct meta { using T = lsp::protocol::DocumentRangeFormattingOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::rangesSupport); }; template<> struct meta { using T = lsp::protocol::DocumentSymbolOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::label); }; template<> struct meta { using T = lsp::protocol::ImplementationRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::id); }; template<> struct meta { using T = lsp::protocol::SignatureHelpOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::triggerCharacters, &T::retriggerCharacters); }; template<> struct meta { using T = lsp::protocol::DeclarationRegistrationOptions; static constexpr auto value = glz::object(&T::workDoneProgress, &T::documentSelector, &T::id); }; template<> struct meta { using T = lsp::protocol::TypeDefinitionRegistrationOptions; static constexpr auto value = glz::object(&T::documentSelector, &T::workDoneProgress, &T::id); }; template<> struct meta { using T = lsp::protocol::DeclarationParams; static constexpr auto value = glz::object(&T::textDocument, &T::position, &T::workDoneToken, &T::partialResultToken); }; template<> struct meta { using T = lsp::protocol::DefinitionParams; static constexpr auto value = glz::object(&T::textDocument, &T::position, &T::workDoneToken, &T::partialResultToken); }; template<> struct meta { using T = lsp::protocol::TypeDefinitionParams; static constexpr auto value = glz::object(&T::textDocument, &T::position, &T::workDoneToken); }; template<> struct meta { using T = lsp::protocol::ImplementationParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken); }; template<> struct meta { using T = lsp::protocol::ReferenceContext; static constexpr auto value = glz::object(&T::includeDeclaration); }; template<> struct meta { using T = lsp::protocol::ReferenceParams; static constexpr auto value = glz::object(&T::textDocument, &T::position, &T::workDoneToken, &T::partialResultToken, &T::context); }; template<> struct meta { using T = lsp::protocol::CallHierarchyParams; static constexpr auto value = glz::object(&T::textDocument, &T::position, &T::workDoneToken); }; template<> struct meta { using T = lsp::protocol::CallHierarchyIncomingCallsParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::item); }; template<> struct meta { using T = lsp::protocol::CallHierarchyOutgoingCallsParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::item); }; template<> struct meta { using T = lsp::protocol::TypeHierarchyParams; static constexpr auto value = glz::object(&T::textDocument, &T::position, &T::workDoneToken); }; template<> struct meta { using T = lsp::protocol::TypeHierarchyPrepareParams; static constexpr auto value = glz::object(&T::textDocument, &T::position, &T::workDoneToken); }; template<> struct meta { using T = lsp::protocol::TypeHierarchySupertypesParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::item); }; template<> struct meta { using T = lsp::protocol::TypeHierarchySubtypesParams; static constexpr auto value = glz::object(&T::workDoneToken, &T::partialResultToken, &T::item); }; template<> struct meta { using T = lsp::protocol::NotebookDocumentSyncRegistrationOptions; static constexpr auto value = glz::object(&T::notebookSelector, &T::save, &T::id); }; template<> struct meta { using T = lsp::protocol::VersionedTextDocumentIdentifier; static constexpr auto value = glz::object(&T::uri, &T::version); }; }