feat: add provider system
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
||||
local M = {}
|
||||
|
||||
M.defaults = {
|
||||
servers = {},
|
||||
providers = {},
|
||||
}
|
||||
|
||||
M.options = {}
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user