aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-07-17 14:41:49 +0200
committerGitHub <noreply@github.com>2022-07-17 14:41:49 +0200
commit99c69b16bc5a0a4e5bbaa5ad4d11911ca59235e1 (patch)
treec9544773baa4f0e5ea925dc09a8086d8f0d9a087 /lua/mason-core
parentchore: update generated code (#89) (diff)
downloadmason-99c69b16bc5a0a4e5bbaa5ad4d11911ca59235e1.tar
mason-99c69b16bc5a0a4e5bbaa5ad4d11911ca59235e1.tar.gz
mason-99c69b16bc5a0a4e5bbaa5ad4d11911ca59235e1.tar.bz2
mason-99c69b16bc5a0a4e5bbaa5ad4d11911ca59235e1.tar.lz
mason-99c69b16bc5a0a4e5bbaa5ad4d11911ca59235e1.tar.xz
mason-99c69b16bc5a0a4e5bbaa5ad4d11911ca59235e1.tar.zst
mason-99c69b16bc5a0a4e5bbaa5ad4d11911ca59235e1.zip
feat(ui): bring focus to the installation section when :MasonInstall (#90)
Diffstat (limited to 'lua/mason-core')
-rw-r--r--lua/mason-core/ui/display.lua14
1 files changed, 12 insertions, 2 deletions
diff --git a/lua/mason-core/ui/display.lua b/lua/mason-core/ui/display.lua
index 7a61d766..2bae3d81 100644
--- a/lua/mason-core/ui/display.lua
+++ b/lua/mason-core/ui/display.lua
@@ -195,7 +195,7 @@ end
---@param filetype string
function M.new_view_only_win(name, filetype)
local namespace = vim.api.nvim_create_namespace(("installer_%s"):format(name))
- local bufnr, renderer, mutate_state, get_state, unsubscribe, win_id, window_mgmt_augroup, autoclose_augroup, registered_keymaps, registered_keybinds, registered_effect_handlers
+ local bufnr, renderer, mutate_state, get_state, unsubscribe, win_id, window_mgmt_augroup, autoclose_augroup, registered_keymaps, registered_keybinds, registered_effect_handlers, sticky_cursor
local has_initiated = false
---@type WindowOpts
local window_opts = {}
@@ -261,7 +261,6 @@ function M.new_view_only_win(name, filetype)
win_width = win_width,
}
local cursor_pos_pre_render = vim.api.nvim_win_get_cursor(win_id)
- local sticky_cursor
if output then
sticky_cursor = output.sticky_cursors.line_map[cursor_pos_pre_render[1]]
end
@@ -501,6 +500,17 @@ function M.new_view_only_win(name, filetype)
assert(win_id ~= nil, "Window has not been opened, cannot get cursor.")
return vim.api.nvim_win_get_cursor(win_id)
end,
+ ---@param tag any
+ set_sticky_cursor = function(tag)
+ if output then
+ local new_sticky_cursor_line = output.sticky_cursors.id_map[tag]
+ if new_sticky_cursor_line then
+ sticky_cursor = tag
+ local cursor = vim.api.nvim_win_get_cursor(win_id)
+ vim.api.nvim_win_set_cursor(win_id, { new_sticky_cursor_line, cursor[2] })
+ end
+ end
+ end,
}
end