aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-08-26 15:54:30 +0200
committerGitHub <noreply@github.com>2023-08-26 15:54:30 +0200
commite1602c868f938877057cb6f45e50859cb55cad96 (patch)
tree6d1fd9a32a84009a45f3cc78f3b560e70d05c484 /lua
parentchore(main): release 1.7.0 (#1455) (diff)
downloadmason-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.lua29
-rw-r--r--lua/mason/ui/components/header.lua14
-rw-r--r--lua/mason/ui/components/help/init.lua2
-rw-r--r--lua/mason/ui/instance.lua2
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)),