diff options
Diffstat (limited to '')
| -rw-r--r-- | lua/null-browser/defaults/vi.lua | 10 | ||||
| -rw-r--r-- | lua/null-browser/extras/dmenu.lua | 15 | ||||
| -rw-r--r-- | lua/null-browser/utils.lua | 2 |
3 files changed, 17 insertions, 10 deletions
diff --git a/lua/null-browser/defaults/vi.lua b/lua/null-browser/defaults/vi.lua index c3775bb..22f3bba 100644 --- a/lua/null-browser/defaults/vi.lua +++ b/lua/null-browser/defaults/vi.lua @@ -60,9 +60,13 @@ function M.initialize() -- Search web.keymap.set('n', '<c-f>', function() - config.menu:input({ prompt = 'Search:', query = web.search.get_text() }, function(err, input) - if err then return end - web.search.set_text(input) + local view = web.view.current() + config.menu:input({ prompt = 'Search:', call_on_input = true, query = web.search.get_text() }, function(err, input) + if err then + web.search.set_text('', { view = view }) + else + web.search.set_text(input, { view = view }) + end end) end) web.keymap.set('n', '<esc>', function() web.search.reset() end) diff --git a/lua/null-browser/extras/dmenu.lua b/lua/null-browser/extras/dmenu.lua index 5d660bb..360a78e 100644 --- a/lua/null-browser/extras/dmenu.lua +++ b/lua/null-browser/extras/dmenu.lua @@ -11,6 +11,7 @@ function Dmenu:new(opts) prompt = nil, query = nil, select_last_line = true, + call_on_input = false, transform_output = nil, } local obj = {} @@ -39,12 +40,10 @@ function Dmenu:prepare_options(opts) table.insert(args, options.query) end - return { - command = options.command, + return web.utils.table_merge({}, options, { args = args, - select_last_line = options.select_last_line, transform_output = options.transform_output or function(s) return s end, - } + }) end function Dmenu:select(list, opts, callback) @@ -63,14 +62,18 @@ function Dmenu:select(list, opts, callback) local result = options.transform_output(selection) if code == 0 then - callback(nil, result) + callback(nil, result, true) else - callback('[dmenu] Exit with status code: ' .. code, result) + callback('[dmenu] Exit with status code: ' .. code, result, true) end end) web.uv.read_start(stdout, function(_, data) if data then + if options.call_on_input then + callback(nil, data, false) + end + if options.select_last_line then selection = data else diff --git a/lua/null-browser/utils.lua b/lua/null-browser/utils.lua index 4b1790a..30f67ee 100644 --- a/lua/null-browser/utils.lua +++ b/lua/null-browser/utils.lua @@ -58,7 +58,7 @@ function web.utils.string_trim(str) return res end ---- Merge multiple tables +--- Merge multiple tables into the first table --- @param tbl table --- @return table function web.utils.table_merge(tbl, ...) |
