Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F33567
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/lua/ivy/controller.lua b/lua/ivy/controller.lua
index 0af4afa..5c26303 100644
--- a/lua/ivy/controller.lua
+++ b/lua/ivy/controller.lua
@@ -1,90 +1,90 @@
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
controller.run = function(name, items, callback)
controller.callback = callback
controller.items = items
window.initialize()
window.set_items { { content = "-- Loading ---" } }
vim.api.nvim_buf_set_name(window.get_buffer(), name)
controller.input ""
end
controller.input = function(char)
prompt.input(char)
controller.update(prompt.text())
end
controller.search = function(value)
prompt.set(value)
controller.update(prompt.text())
end
controller.update = function(text)
vim.schedule(function()
window.set_items(controller.items(text))
vim.cmd "syntax clear IvyMatch"
if #text > 0 then
-- Escape characters so they do not throw an error when vim tries to use
-- the "text" as a regex
- local escaped_text = string.gsub(text, "([-/])", "\\%1")
+ local escaped_text = string.gsub(text, "([-/\\])", "\\%1")
vim.cmd("syntax match IvyMatch '[" .. escaped_text .. "]'")
end
end)
end
controller.complete = function(action)
vim.api.nvim_set_current_win(window.origin)
controller.callback(window.get_current_selection(), action)
controller.destroy()
end
controller.checkpoint = function()
vim.api.nvim_set_current_win(window.origin)
controller.callback(window.get_current_selection(), controller.action.CHECKPOINT)
vim.api.nvim_set_current_win(window.window)
end
controller.next = function()
local max = vim.api.nvim_buf_line_count(window.buffer) - 1
if window.index == max then
return
end
window.index = window.index + 1
window.update()
end
controller.previous = function()
if window.index == 0 then
return
end
window.index = window.index - 1
window.update()
end
controller.origin = function()
return vim.api.nvim_win_get_buf(window.origin)
end
controller.destroy = function()
controller.items = nil
controller.callback = nil
window.destroy()
prompt.destroy()
end
return controller
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Tue, Dec 16, 7:54 PM (1 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
8957
Default Alt Text
(2 KB)
Attached To
Mode
R1 ivy.nvim
Attached
Detach File
Event Timeline
Log In to Comment