feat: add provider system

This commit is contained in:
2026-06-26 16:45:04 +02:00
parent 15467ba8f0
commit 79572a45dd
4 changed files with 51 additions and 1 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
local M = {}
M.defaults = {
servers = {},
providers = {},
}
M.options = {}
+26
View File
@@ -0,0 +1,26 @@
local M = {}
local config = require('chai.config')
local provider_instances = {}
-- lazy loads providers of course
function M.get_provider(name)
if provider_instances[name] ~= nil then
return provider_instances[name]
end
if config.options.providers[name] == nil then
error('unknown provider')
end
local provider_config = config.options.providers[name]
local provider = require('chai.providers.' .. provider_config.type)
local provider_instance = provider.init(provider_config)
provider_instances[name] = provider_instance
return provider_instance
end
return M
+12
View File
@@ -0,0 +1,12 @@
local M
local GiteaProvider = {}
function M.init(config)
local provider = vim.deepcopy(GiteaProvider)
provider.config = config
return provider
end
return M
+12
View File
@@ -0,0 +1,12 @@
local M
local GithubProvider = {}
function M.init(config)
local provider = vim.deepcopy(GithubProvider)
provider.config = config
return provider
end
return M