tsl-devkit/lsp-server/src/provider/text_document/document_symbol.cppm

44 lines
1.2 KiB
C++

module;
export module lsp.provider.text_document.document_symbol;
import spdlog;
import std;
import lsp.protocol;
import lsp.codec.facade;
import lsp.provider.base.interface;
export namespace lsp::provider::text_document
{
class DocumentSymbol : public AutoRegisterProvider<DocumentSymbol, IRequestProvider>
{
public:
static constexpr std::string_view kMethod = "textDocument/documentSymbol";
static constexpr std::string_view kProviderName = "TextDocumentDocumentSymbol";
DocumentSymbol() = default;
std::string ProvideResponse(const protocol::RequestMessage& request, ExecutionContext& context) override;
};
}
namespace lsp::provider::text_document
{
std::string DocumentSymbol::ProvideResponse(const protocol::RequestMessage& request, [[maybe_unused]] ExecutionContext& context)
{
spdlog::debug("TextDocumentDocumentSymbolProvider: 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
}
}