tangled
alpha
login
or
join now
robinwobin.dev
/
artio.nvim
3
fork
atom
minimal extui fuzzy finder for neovim
3
fork
atom
overview
issues
pulls
pipelines
fix(view): merge opts fn
robinwobin.dev
3 months ago
ff6cffcb
71279ded
+11
-21
1 changed file
expand all
collapse all
unified
split
lua
artio
view.lua
+11
-21
lua/artio/view.lua
···
27
---@class artio.View
28
---@field picker artio.Picker
29
---@field closed boolean
0
30
---@field win artio.View.win
31
---@field preview_win integer
32
local View = {}
···
37
return setmetatable({
38
picker = picker,
39
closed = false,
0
40
win = {
41
height = 0,
42
},
···
134
135
local ext_winhl = "Search:,CurSearch:,IncSearch:"
136
137
-
function View:setopts()
0
138
local opts = {
139
win = {
140
eventignorewin = "all,-FileType,-InsertCharPre,-TextChangedI,-CursorMovedI",
···
152
},
153
}
154
155
-
---@type table<'win'|'buf'|'g',table<string,any>>
156
-
self.opts = {}
157
-
158
for level, o in pairs(opts) do
159
self.opts[level] = self.opts[level] or {}
160
local props = {
···
164
}
165
166
for name, value in pairs(o) do
167
-
self.opts[level][name] = vim.api.nvim_get_option_value(name, props)
168
-
vim.api.nvim_set_option_value(name, value, props)
169
-
end
170
-
end
171
-
end
172
-
173
-
function View:revertopts()
174
-
for level, o in pairs(self.opts) do
175
-
for name, value in pairs(o) do
176
-
vim.api.nvim_set_option_value(name, value, {
177
-
scope = level == "g" and "global" or "local",
178
-
buf = level == "buf" and ext.bufs.cmd or nil,
179
-
win = level == "win" and ext.wins.cmd or nil,
180
-
})
181
end
182
end
183
end
···
203
ext.check_targets()
204
205
self.prev_show = cmdline.cmdline_show
206
-
207
-
self.augroup = vim.api.nvim_create_augroup("artio:view", {})
208
209
vim.schedule(function()
210
vim.api.nvim_create_autocmd({ "CmdlineLeave", "ModeChanged" }, {
···
289
vim.cmd.stopinsert()
290
291
-- prepare state
292
-
self:revertopts()
293
294
-- reset state
295
self:clear()
···
27
---@class artio.View
28
---@field picker artio.Picker
29
---@field closed boolean
30
+
---@field opts table<'win'|'buf'|'g',table<string,any>>
31
---@field win artio.View.win
32
---@field preview_win integer
33
local View = {}
···
38
return setmetatable({
39
picker = picker,
40
closed = false,
41
+
opts = {},
42
win = {
43
height = 0,
44
},
···
136
137
local ext_winhl = "Search:,CurSearch:,IncSearch:"
138
139
+
---@param restore? boolean
140
+
function View:setopts(restore)
141
local opts = {
142
win = {
143
eventignorewin = "all,-FileType,-InsertCharPre,-TextChangedI,-CursorMovedI",
···
155
},
156
}
157
0
0
0
158
for level, o in pairs(opts) do
159
self.opts[level] = self.opts[level] or {}
160
local props = {
···
164
}
165
166
for name, value in pairs(o) do
167
+
if restore then
168
+
vim.api.nvim_set_option_value(name, self.opts[level][name], props)
169
+
else
170
+
self.opts[level][name] = vim.api.nvim_get_option_value(name, props)
171
+
vim.api.nvim_set_option_value(name, value, props)
172
+
end
0
0
0
0
0
0
0
0
173
end
174
end
175
end
···
195
ext.check_targets()
196
197
self.prev_show = cmdline.cmdline_show
0
0
198
199
vim.schedule(function()
200
vim.api.nvim_create_autocmd({ "CmdlineLeave", "ModeChanged" }, {
···
279
vim.cmd.stopinsert()
280
281
-- prepare state
282
+
self:setopts(true)
283
284
-- reset state
285
self:clear()