feat(provider): add compile-time registry

This commit is contained in:
csh
2025-12-21 22:21:46 +08:00
parent f54050bad2
commit 2c1c1d8a88
82 changed files with 751 additions and 1001 deletions
@@ -16,14 +16,14 @@ namespace transform = lsp::codec;
export namespace lsp::provider
{
class Initialize : public IRequestProvider
class Initialize : public AutoRegisterProvider<Initialize, IRequestProvider>
{
public:
static constexpr std::string_view kMethod = "initialize";
static constexpr std::string_view kProviderName = "Initialize";
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();
@@ -37,15 +37,9 @@ export namespace lsp::provider
namespace lsp::provider
{
std::string Initialize::GetMethod() const
{
return "initialize";
}
std::string Initialize::GetProviderName() const
{
return "Initialize";
}
std::string Initialize::ProvideResponse(const protocol::RequestMessage& request, ExecutionContext& context)
{
@@ -172,4 +166,4 @@ namespace lsp::provider
spdlog::debug("Initiated loading for {} workspace folder(s)", workspace_folders.size());
}
}
}