Administrador de paquetes portátiles para Neovim que se ejecuta en todas partes Neovim se ejecuta.
Instale y administre fácilmente servidores LSP, servidores DAP, revestimientos y formateros.
:help mason.nvim
Última versión: v1.10.0
:h mason-introduction
mason.nvim
es un complemento Neovim que le permite administrar fácilmente las herramientas de editor externos, como servidores LSP, servidores DAP, linters y formatters a través de una sola interfaz. Se ejecuta en todas partes neovim (a través de Linux, macOS, Windows, etc.), con solo un pequeño conjunto de requisitos externos necesarios.
Los paquetes se instalan en el directorio de datos de Neovim ( :h standard-path
) de forma predeterminada. Los ejecutables están vinculados a un solo bin/
directorio, que mason.nvim
agregará a la ruta de Neovim durante la configuración, lo que permite un acceso sin problemas desde Neovim Builtins (shell, terminal, etc.), así como otros complementos de terceros.
Para obtener una lista de todos los paquetes disponibles, consulte https://mason-registry.dev/registry/list.
:h mason-how-to-use-packages
Aunque muchos paquetes se pueden usar perfectamente fuera de la caja a través de Neovim Builtins, se recomienda usar otros complementos de terceros para integrarlos aún más. Se recomiendan los siguientes complementos:
lspconfig
& mason-lspconfig.nvim
nvim-dap
y nvim-dap-ui
null-ls.nvim
o nvim-lint
null-ls.nvim
o formatter.nvim
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
:h mason-requirements
mason.nvim
relaja los requisitos mínimos al intentar múltiples utilidades diferentes (por ejemplo, wget
, curl
e Invoke-WebRequest
son todos los sustitutos perfectos). Los requisitos mínimos recomendados son:
>= 0.7.0
git(1)
curl(1)
o wget(1)
unzip(1)
tar(1)
o gtar(1)
dependiendo de la plataforma)gzip(1)
Tenga en cuenta que mason.nvim
se lanzará regularmente a los administradores de paquetes externos, como cargo
y npm
. Dependiendo de su uso personal, algunos de estos también deberán instalarse. Consulte :checkhealth mason
para obtener una lista completa.
use {
" williamboman/mason.nvim "
}
{
" williamboman/mason.nvim "
}
Plug ' williamboman/mason.nvim '
:h mason-quickstart
require ( " mason " ). setup ()
mason.nvim
está optimizado para cargar lo menos posible durante la configuración. No se recomienda la carga lento del complemento, o de alguna manera aplazando la configuración.
Consulte la sección de configuración para obtener información sobre qué configuraciones están disponibles.
Consulte el wiki para obtener una lista de extensiones de terceros.
mason-lspconfig.nvim
- Recomendado para su uso con lspconfig
:h mason-commands
:Mason
- Abre una ventana de estado gráfico:MasonUpdate
- actualizaciones todos los registros administrados:MasonInstall <package> ...
- instala/reinstala los paquetes proporcionados:MasonUninstall <package> ...
- desinstala los paquetes proporcionados:MasonUninstallAll
- Desinstala todos los paquetes:MasonLog
- Abre el archivo de registro mason.nvim
en una nueva ventana de pestaña El registro de paquetes principales de Mason se encuentra en Mason-Org/Mason-Registry. Antes de que se puedan utilizar paquetes, el registro debe descargarse. Esto se hace automáticamente para usted cuando se usa los diferentes comandos de Mason (por ejemplo :MasonInstall
), pero también se puede hacer manualmente utilizando el comando :MasonUpdate
.
Si está utilizando las API LUA de Mason para acceder a los paquetes, se recomienda utilizar las funciones :h mason-registry.refresh()
y/o :h mason-registry.update()
para garantizar que tenga la última información del paquete antes de recuperar paquetes .
:h mason-settings
Opcionalmente, puede configurar cierto comportamiento de mason.nvim
al llamar a la función .setup()
. Consulte la configuración predeterminada para obtener una lista de todas las configuraciones disponibles.
Ejemplo:
require ( " mason " ). setup ({
ui = {
icons = {
package_installed = " ✓ " ,
package_pending = " ➜ " ,
package_uninstalled = " ✗ "
}
}
})
--- @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)
-- - "skip" (doesn't modify PATH)
--- @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.
registries = {
" 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:
-- - mason.providers.registry-api - uses the https://api.mason-registry.dev API
-- - mason.providers.client - uses only client-side tooling to resolve metadata
providers = {
" mason.providers.registry-api " ,
" mason.providers.client " ,
},
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")
-- 2. The release version (e.g. "v0.3.0")
-- 3. The asset name (e.g. "rust-analyzer-v0.3.0-x86_64-unknown-linux-gnu.tar.gz")
download_url_template = " https://github.com/%s/releases/download/%s/%s " ,
},
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.
--
-- Example: { "--proxy", "https://proxyserver" }
install_args = {},
},
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? " ,
},
},
}
:help mason.nvim
!