From 6be3662226de11d38525f11379e9f495c90b3968 Mon Sep 17 00:00:00 2001 From: csh Date: Sat, 25 Oct 2025 14:05:35 +0800 Subject: [PATCH] update protocol --- .../src/protocol/detail/diagnostics.hpp | 36 ++++++++++--------- lsp-server/src/protocol/protocol.hpp | 16 +++++++++ 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/lsp-server/src/protocol/detail/diagnostics.hpp b/lsp-server/src/protocol/detail/diagnostics.hpp index 06590c6..0fcc689 100644 --- a/lsp-server/src/protocol/detail/diagnostics.hpp +++ b/lsp-server/src/protocol/detail/diagnostics.hpp @@ -43,32 +43,22 @@ namespace lsp::protocol std::optional data; }; - struct PublishDiagnosticsClientCapabilities + struct ClientDiagnosticsTagOptions { - struct TagSupport - { - std::vector valueSet; - }; - std::optional relatedInformation; - std::optional tagSupport; - std::optional versionSupport; - std::optional codeDescriptionSupport; - std::optional dataSupport; - }; - - struct PublishDiagnosticsParams - { - DocumentUri uri; - std::optional version; - std::vector diagnostics; + std::vector valueSet; }; struct DiagnosticClientCapabilities { std::optional dynamicRegistration; std::optional relatedDocumentSupport; + std::optional relatedInformation; + std::optional tagSupport; + std::optional codeDescriptionSupport; std::optional markupMessageSupport; + std::optional dataSupport; }; + struct DiagnosticOptions : WorkDoneProgressOptions { std::optional identifier; @@ -85,6 +75,18 @@ namespace lsp::protocol std::optional previousResultId; }; + struct PublishDiagnosticsClientCapabilities : DiagnosticClientCapabilities + { + std::optional versionSupport; + }; + + struct PublishDiagnosticsParams + { + DocumentUri uri; + std::optional version; + std::vector diagnostics; + }; + using DocumentDiagnosticReportKind = std::string_view; namespace DocumentDiagnosticReportKindLiterals { diff --git a/lsp-server/src/protocol/protocol.hpp b/lsp-server/src/protocol/protocol.hpp index 4b74bce..c5f063a 100644 --- a/lsp-server/src/protocol/protocol.hpp +++ b/lsp-server/src/protocol/protocol.hpp @@ -298,6 +298,22 @@ namespace glz ); }; + 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 {