chore: make public api consistent
Some checks failed
CI / Luacheck (pull_request) Successful in 1m2s
Conventional Tools Commitlint / Commitlint (pull_request) Successful in 35s
CI / Cargo Format (pull_request) Successful in 18s
CI / StyLua (pull_request) Failing after 4s
CI / Build and test (pull_request) Successful in 2m2s

Summary:

Right now we have two ways to access the public api we have `require('ivy')`
and `vim.ivy. Each way has a different api that will cause some confusion.

Now both apis are the same so anyone that wants to integrate with ivy can do so
without having to figure out what one they need to use.

Test Plan:

The unit tests cover most of the work, I have also been using this locally for
quite some time now with now issues.
This commit is contained in:
Ade Attwood 2024-07-21 15:46:57 +01:00
parent f3585c8cde
commit ea6727db40
3 changed files with 19 additions and 4 deletions

View file

@ -1,9 +1,7 @@
local window = require "ivy.window"
local prompt = require "ivy.prompt"
local utils = require "ivy.utils"
local controller = {}
controller.action = utils.actions
controller.items = nil
controller.callback = nil

View file

@ -1,11 +1,28 @@
local controller = require "ivy.controller"
local libivy = require "ivy.libivy"
local config = require "ivy.config"
local utils = require "ivy.utils"
local register_backend = require "ivy.register_backend"
local ivy = {}
ivy.action = utils.actions
ivy.utils = utils
ivy.match = libivy.ivy_match
ivy.run = controller.run
ivy.register_backend = register_backend
ivy.checkpoint = controller.checkpoint
ivy.paste = controller.paste
ivy.complete = controller.complete
ivy.destroy = controller.destroy
ivy.input = controller.input
ivy.next = controller.next
ivy.previous = controller.previous
ivy.search = controller.search
-- Private variable to check if ivy has been setup, this is to prevent multiple
-- setups of ivy. This is only exposed for testing purposes.
---@private

View file

@ -1,9 +1,9 @@
local controller = require "ivy.controller"
local api = require "ivy"
-- Put the controller in to the vim global so we can access it in mappings
-- better without requires. You can call controller commands like `vim.ivy.xxx`.
-- luacheck: ignore
vim.ivy = controller
vim.ivy = api
vim.paste = (function(overridden)
return function(lines, phase)