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