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
@@ -11,13 +11,13 @@ import lsp.protocol;
export namespace lsp::provider
{
class Initialized : public INotificationProvider
class Initialized : public AutoRegisterProvider<Initialized, INotificationProvider>
{
public:
static constexpr std::string_view kMethod = "initialized";
static constexpr std::string_view kProviderName = "Initialized";
Initialized() = default;
std::string GetMethod() const override;
std::string GetProviderName() const override;
void HandleNotification(const protocol::NotificationMessage& notification, ExecutionContext& context) override;
};
}
@@ -25,19 +25,13 @@ export namespace lsp::provider
namespace lsp::provider
{
std::string Initialized::GetMethod() const
{
return "initialized";
}
std::string Initialized::GetProviderName() const
{
return "Initialized";
}
void Initialized::HandleNotification(const protocol::NotificationMessage& notification, [[maybe_unused]] ExecutionContext& context)
{
spdlog::debug("Initialized notification {}", notification.method);
}
}
}