feat(mapping): plug and expose API (#346)
Signed-off-by: Aaron Pham <contact@aarnphm.xyz>
This commit is contained in:
27
lua/avante/api.lua
Normal file
27
lua/avante/api.lua
Normal file
@@ -0,0 +1,27 @@
|
||||
local Utils = require("avante.utils")
|
||||
|
||||
---@class avante.ApiToggle
|
||||
---@operator call(): boolean
|
||||
---@field debug ToggleBind.wrap
|
||||
---@field hint ToggleBind.wrap
|
||||
---
|
||||
---@class avante.Api
|
||||
---@field ask fun(): boolean
|
||||
---@field edit fun(): nil
|
||||
---@field refresh fun(): nil
|
||||
---@field toggle avante.ApiToggle
|
||||
|
||||
return setmetatable({}, {
|
||||
__index = function(t, k)
|
||||
local module = require("avante")
|
||||
---@class AvailableApi: ApiCaller
|
||||
---@field api? boolean
|
||||
local has = module[k]
|
||||
if type(has) ~= "table" or not has.api then
|
||||
Utils.warn(k .. " is not a valid avante's API method", { once = true })
|
||||
return
|
||||
end
|
||||
t[k] = has
|
||||
return t[k]
|
||||
end,
|
||||
}) --[[@as avante.Api]]
|
||||
Reference in New Issue
Block a user