diff options
| author | William Boman <william@redwill.se> | 2023-08-26 15:54:30 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-26 15:54:30 +0200 |
| commit | e1602c868f938877057cb6f45e50859cb55cad96 (patch) | |
| tree | 6d1fd9a32a84009a45f3cc78f3b560e70d05c484 /lua | |
| parent | chore(main): release 1.7.0 (#1455) (diff) | |
| download | mason-e1602c868f938877057cb6f45e50859cb55cad96.tar mason-e1602c868f938877057cb6f45e50859cb55cad96.tar.gz mason-e1602c868f938877057cb6f45e50859cb55cad96.tar.bz2 mason-e1602c868f938877057cb6f45e50859cb55cad96.tar.lz mason-e1602c868f938877057cb6f45e50859cb55cad96.tar.xz mason-e1602c868f938877057cb6f45e50859cb55cad96.tar.zst mason-e1602c868f938877057cb6f45e50859cb55cad96.zip | |
feat(ui): add setting to toggle help view (#1468)
Closes #1435.
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/mason/settings.lua | 29 | ||||
| -rw-r--r-- | lua/mason/ui/components/header.lua | 14 | ||||
| -rw-r--r-- | lua/mason/ui/components/help/init.lua | 2 | ||||
| -rw-r--r-- | lua/mason/ui/instance.lua | 2 |
4 files changed, 40 insertions, 7 deletions
diff --git a/lua/mason/settings.lua b/lua/mason/settings.lua index 2409615e..56fbcfb9 100644 --- a/lua/mason/settings.lua +++ b/lua/mason/settings.lua @@ -4,9 +4,11 @@ local M = {} ---@class MasonSettings local DEFAULT_SETTINGS = { + ---@since 1.0.0 -- The directory in which to install packages. install_root_dir = path.concat { vim.fn.stdpath "data", "mason" }, + ---@since 1.0.0 -- Where Mason should put its bin location in your PATH. Can be one of: -- - "prepend" (default, Mason's bin location is put first in PATH) -- - "append" (Mason's bin location is put at the end of PATH) @@ -14,14 +16,17 @@ local DEFAULT_SETTINGS = { ---@type '"prepend"' | '"append"' | '"skip"' PATH = "prepend", + ---@since 1.0.0 -- Controls to which degree logs are written to the log file. It's useful to set this to vim.log.levels.DEBUG when -- debugging issues with package installations. log_level = vim.log.levels.INFO, + ---@since 1.0.0 -- Limit for the maximum amount of packages to be installed at the same time. Once this limit is reached, any further -- packages that are requested to be installed will be put in a queue. max_concurrent_installers = 4, + ---@since 1.0.0 -- [Advanced setting] -- The registries to source packages from. Accepts multiple entries. Should a package with the same name exist in -- multiple registries, the registry listed first will be used. @@ -29,6 +34,7 @@ local DEFAULT_SETTINGS = { "github:mason-org/mason-registry", }, + ---@since 1.0.0 -- The provider implementations to use for resolving supplementary package metadata (e.g., all available versions). -- Accepts multiple entries, where later entries will be used as fallback should prior providers fail. -- Builtin providers are: @@ -40,6 +46,7 @@ local DEFAULT_SETTINGS = { }, github = { + ---@since 1.0.0 -- The template URL to use when downloading assets from GitHub. -- The placeholders are the following (in order): -- 1. The repository (e.g. "rust-lang/rust-analyzer") @@ -49,9 +56,11 @@ local DEFAULT_SETTINGS = { }, pip = { + ---@since 1.0.0 -- Whether to upgrade pip to the latest version in the virtual environment before installing packages. upgrade_pip = false, + ---@since 1.0.0 -- These args will be added to `pip install` calls. Note that setting extra args might impact intended behavior -- and is not recommended. -- @@ -60,52 +69,72 @@ local DEFAULT_SETTINGS = { }, ui = { + ---@since 1.0.0 -- Whether to automatically check for new versions when opening the :Mason window. check_outdated_packages_on_open = true, + ---@since 1.0.0 -- The border to use for the UI window. Accepts same border values as |nvim_open_win()|. border = "none", + ---@since 1.0.0 -- Width of the window. Accepts: -- - Integer greater than 1 for fixed width. -- - Float in the range of 0-1 for a percentage of screen width. width = 0.8, + ---@since 1.0.0 -- Height of the window. Accepts: -- - Integer greater than 1 for fixed height. -- - Float in the range of 0-1 for a percentage of screen height. height = 0.9, icons = { + ---@since 1.0.0 -- The list icon to use for installed packages. package_installed = "◍", + ---@since 1.0.0 -- The list icon to use for packages that are installing, or queued for installation. package_pending = "◍", + ---@since 1.0.0 -- The list icon to use for packages that are not installed. package_uninstalled = "◍", }, keymaps = { + ---@since 1.0.0 -- Keymap to expand a package toggle_package_expand = "<CR>", + ---@since 1.0.0 -- Keymap to install the package under the current cursor position install_package = "i", + ---@since 1.0.0 -- Keymap to reinstall/update the package under the current cursor position update_package = "u", + ---@since 1.0.0 -- Keymap to check for new version for the package under the current cursor position check_package_version = "c", + ---@since 1.0.0 -- Keymap to update all installed packages update_all_packages = "U", + ---@since 1.0.0 -- Keymap to check which installed packages are outdated check_outdated_packages = "C", + ---@since 1.0.0 -- Keymap to uninstall a package uninstall_package = "X", + ---@since 1.0.0 -- Keymap to cancel a package installation cancel_installation = "<C-c>", + ---@since 1.0.0 -- Keymap to apply language filter apply_language_filter = "<C-f>", + ---@since 1.1.0 -- Keymap to toggle viewing package installation log toggle_package_install_log = "<CR>", + ---@since 1.8.0 + -- Keymap to toggle the help view + toggle_help = "g?", }, }, } diff --git a/lua/mason/ui/components/header.lua b/lua/mason/ui/components/header.lua index 5ef764d4..e8f89a52 100644 --- a/lua/mason/ui/components/header.lua +++ b/lua/mason/ui/components/header.lua @@ -17,11 +17,15 @@ return function(state) p.header " mason.nvim ", state.view.is_searching and p.Comment " (search mode, press <Esc> to clear)" or p.none "", }), - Ui.When( - state.view.is_showing_help, - { p.none " press ", p.highlight_secondary "g?", p.none " for package list" }, - { p.none "press ", p.highlight "g?", p.none " for help" } - ), + Ui.When(state.view.is_showing_help, { + p.none " press ", + p.highlight_secondary(settings.current.ui.keymaps.toggle_help), + p.none " for package list", + }, { + p.none "press ", + p.highlight(settings.current.ui.keymaps.toggle_help), + p.none " for help", + }), { p.Comment "https://github.com/williamboman/mason.nvim" }, }, }), diff --git a/lua/mason/ui/components/help/init.lua b/lua/mason/ui/components/help/init.lua index dc1103b4..d61220ea 100644 --- a/lua/mason/ui/components/help/init.lua +++ b/lua/mason/ui/components/help/init.lua @@ -47,7 +47,7 @@ end ---@param state InstallerUiState local function GenericHelp(state) local keymap_tuples = { - { "Toggle help", "g?" }, + { "Toggle help", settings.current.ui.keymaps.toggle_help }, { "Toggle package info", settings.current.ui.keymaps.toggle_package_expand }, { "Toggle package installation log", settings.current.ui.keymaps.toggle_package_install_log }, { "Apply language filter", settings.current.ui.keymaps.apply_language_filter }, diff --git a/lua/mason/ui/instance.lua b/lua/mason/ui/instance.lua index 439a2158..c8f7856b 100644 --- a/lua/mason/ui/instance.lua +++ b/lua/mason/ui/instance.lua @@ -21,7 +21,7 @@ require "mason.ui.colors" ---@param state InstallerUiState local function GlobalKeybinds(state) return Ui.Node { - Ui.Keybind("g?", "TOGGLE_HELP", nil, true), + Ui.Keybind(settings.current.ui.keymaps.toggle_help, "TOGGLE_HELP", nil, true), Ui.Keybind("q", "CLOSE_WINDOW", nil, true), Ui.When(not state.view.language_filter, Ui.Keybind("<Esc>", "CLOSE_WINDOW", nil, true)), Ui.When(state.view.language_filter, Ui.Keybind("<Esc>", "CLEAR_LANGUAGE_FILTER", nil, true)), |
