Files
tsl-devkit/lsp-server/src/provider/initialize/initialize.hpp
T
2025-12-05 21:03:18 +08:00

24 lines
805 B
C++

#pragma once
#include "../base/interface.hpp"
namespace lsp::provider
{
class Initialize : public IRequestProvider
{
public:
Initialize() = default;
std::string ProvideResponse(const protocol::RequestMessage& request, ExecutionContext& context) override;
std::string GetMethod() const override;
std::string GetProviderName() const override;
private:
protocol::InitializeResult BuildInitializeResult();
protocol::TextDocumentSyncOptions BuildTextDocumentSyncOptions();
protocol::CompletionOptions BuildCompletionOptions();
protocol::SemanticTokensOptions BuildSemanticTokenOptions();
void ProcessWorkspaceFolder(const std::vector<protocol::WorkspaceFolder>& workspace_folders, ExecutionContext& context);
};
}