module; export module lsp.provider.text_document.selection_range; import spdlog; import std; import lsp.protocol; import lsp.codec.facade; import lsp.provider.base.interface; export namespace lsp::provider::text_document { class SelectionRange : public AutoRegisterProvider { public: static constexpr std::string_view kMethod = "textDocument/selectionRange"; static constexpr std::string_view kProviderName = "TextDocumentSelectionRange"; SelectionRange() = default; std::string ProvideResponse(const protocol::RequestMessage& request, ExecutionContext& context) override; }; } namespace lsp::provider::text_document { std::string SelectionRange::ProvideResponse(const protocol::RequestMessage& request, [[maybe_unused]] ExecutionContext& context) { spdlog::debug("TextDocumentSelectionRangeProvider: Providing response for method {}", request.method); // TODO: Implement the actual request handling logic // 1. Parse request parameters // 2. Process the request using appropriate services // 3. Return formatted response return "{}"; // Placeholder response } }