aboutsummaryrefslogtreecommitdiffstats
path: root/doc
Commit message (Collapse)AuthorAgeFilesLines
* docs: rework Installation & Setup sections, and other minor adjustments (#1951)William Boman2025-05-201-1/+1
|
* docs: update references to mason-org/mason.nvim (#1925)William Boman2025-05-061-43/+5
|
* feat(ui): support 'winborder'William Boman2025-04-211-1/+2
|
* chore!: update required Neovim version to 0.10.0William Boman2025-02-191-2/+2
|
* refactor!: change Package APIWilliam Boman2025-02-191-504/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes the following public APIs: **(_breaking_) Events on the `Package` class** The `uninstall:success` event on the `Package` class now receives an `InstallReceipt` as argument, instead of an `InstallHandle`. This receipt is an in-memory representation of what was uninstalled. There's also a new `uninstall:failed` event for situations where uninstallation for some reason fails. Note: this also applies to the registry events (i.e. `package:uninstall:success` and `package:uninstall:failed`). --- **(_breaking_) `Package:uninstall()` is now asynchronous and receives two new arguments, similarly to `Package:install()`** While package uninstallations remain synchronous under the hood, the public API has been changed from synchronous -> asynchronous. Users of this method are recommended to provide a callback in situations where code needs to execute after uninstallation fully completes. --- **(_breaking_) `Package:get_install_path()` has been removed. --- **`Package:install()` now takes an optional callback** This callback allows consumers to be informed whether installation was successful or not without having to go through a different, low-level, API. See below for a comparison between the old and new APIs: ```lua -- before local handle = pkg:install() handle:once("closed", function () -- ... end) -- after pkg:install({}, function (success, result) -- ... end) ```
* refactor: standardize constructors and improve inheritance constructionWilliam Boman2025-02-191-4/+4
|
* refactor!: refactor installer internals and add new Package class methods ↵William Boman2025-02-191-17/+24
| | | | | | | | | | | | | | | | | | | (#1523) This contains the following changes: 1) `Package:install()` now accepts a second, optional, callback argument which is called when installation finishes (successfully or not). 2) Adds a `Package:is_installing()` method. This contains the following breaking changes: 1) `Package:install()` will now error when called while an installation is already ongoing. Use the new `Package:is_installing()` method to check whether an installation is already running. This also refactors large portions of the tests by removing test globals, removing async_test, and adding the `mason-test` Lua module instead. Test helpers via globals are problematic to work with due to not being detected through tools like the Lua language server without additional configuration. This has been replaced with a Lua module `mason-test`. `async_test` has also been removed in favour of explicitly making use of the `mason-core.async` API. These changes stands for a significant portion of the diff.
* feat!: upgrade minimum required neovim version to 0.9.0 (#1517)William Boman2025-02-161-2/+2
|
* refactor!: consolidate Lua registry sources and the Package API (#1498)William Boman2025-02-162-64/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **This removes the following APIs:** - `Package:check_new_version()`. Instead use the new `Package:get_latest_version()`. **This has a breaking change in the following APIs:** - `Package:get_installed_version()` now no longer takes a callback but instead returns the installed version or `nil` if not installed. <details> <summary>To handle these breaking changes in plugins, leverage the `mason.version` module, for example:</summary> ```lua local mason_version = require("mason.version") local registry = require("mason-registry") local pkg = registry.get_package("rust-analyzer") if mason_version.MAJOR_VERSION < 2 then -- before pkg:check_new_version(function (success, new_version) -- … end) pkg:get_installed_version(function (success, installed_version) -- … end) else -- after local new_version = pkg:get_latest_version() local installed_version = pkg:get_installed_version() fi ``` </details> --- <details> <summary>This change also introduces breaking changes for Lua registry sources, by consolidating the package schema with the registry.</summary> The following is an example of a package defined in a Lua registry, following the new schema: ```lua local Pkg = require("mason-core.package") return Pkg.new { schema = "registry+v1", name = "ripgrep", description = "ripgrep recursively searches directories for a regex pattern while respecting your gitignore.", homepage = "https://github.com/BurntSushi/ripgrep", licenses = { Pkg.License.MIT }, languages = {}, categories = {}, source = { id = "pkg:mason/ripgrep@13.0.0", ---@param ctx InstallContext ---@param purl Purl install = function(ctx, purl) -- Arbitrary installation code. end, }, bin = { rg = "./bin/rg", }, } ``` </details>
* feat(ui): add backdrop (#1759)Hung Vu2025-02-151-0/+4
| | | | | | | | | | | | | | | Adds a backdrop for the Mason window. Can be disabled by setting the `ui.backdrop` option: ```lua require("mason").setup { ui = { backdrop = 100 } } ``` The backdrop is not displayed if `'termguicolors'` is not enabled or if Neovim is transparent. Co-authored-by: William Boman <william@redwill.se>
* docs: update default settings docs (#1470)William Boman2023-08-261-0/+32
|
* docs: update help docs (#1370)William Boman2023-06-271-7/+8
|
* feat(registry): add .get_all_package_specs() (#1247)William Boman2023-04-221-2/+10
| | | | This is a faster method than .get_all_packages() due to the fact that it only loads package specifications without instantiating mason-core.package instances. Useful for situations where one only needs to read spec data.
* chore: remove lua:mason-registry.index registry entry (#1243)William Boman2023-04-211-1/+0
|
* docs: update default settings (#1114)William Boman2023-03-191-0/+1
|
* fix(doc): duplicate helptag (#1099)William Boman2023-03-141-1/+1
| | | Closes #1098.
* feat: add registry.refresh() method (#1096)William Boman2023-03-141-0/+64
|
* style: enforce import order (#1092)William Boman2023-03-121-17/+17
| | | | | * chore(workflows): update dependencies * style: enforce import order
* feat: add github registry source capabilities (#1091)William Boman2023-03-122-10/+30
|
* feat: configurable registries (#1016)William Boman2023-02-201-16/+23
|
* docs: fix default value for `ui.height` (#914)WilliamHsieh2023-01-161-2/+10
|
* feat(ui): customizable window height and width (#906)Zeng2023-01-151-0/+2
|
* docs(reference): add section regarding registry events (#848)William Boman2023-01-041-0/+32
|
* feat(registry): add has_package() method (#847)William Boman2023-01-041-0/+10
|
* fix(powershell): use pwsh if available (#782)William Boman2022-12-211-2/+2
|
* Revert "chore: use pwsh instead of powershell (#706)" (#769)William Boman2022-12-191-1/+1
| | | This reverts commit e64dffb84e84e67836a05707a95b1d81fe698481.
* docs: add more helpfile tips (#716)William Boman2022-12-021-0/+2
| | | Probably helpful for some people.
* docs: some general improvements (#715)William Boman2022-12-021-16/+37
|
* chore: use pwsh instead of powershell (#706)William Boman2022-11-291-1/+1
|
* docs: annotate language blocks for syntax highlighting (#686)William Boman2022-11-231-32/+34
|
* feat(pip): add setting to upgrade pip before installing packages (#671)William Boman2022-11-161-0/+3
| | | Closes #616.
* docs: update mason-errors help section (#646)William Boman2022-11-081-11/+18
|
* feat: add provider interface (#601)William Boman2022-10-301-0/+9
|
* docs: improve quickstart (#592)William Boman2022-10-231-7/+43
|
* feat: add setting to control PATH modification (#514)William Boman2022-10-061-28/+35
| | | Closes #509.
* docs: add some more vimdocs (#429)William Boman2022-09-151-17/+41
|
* docs(reference): add some more notes to `Package:check_new_version()` (#352)William Boman2022-08-281-12/+40
|
* chore: add cbfmt config (#328)William Boman2022-08-251-10/+10
|
* docs: note that event handlers may be executed outside of the main loop (#297)William Boman2022-08-151-0/+6
|
* feat(ui): check for new package versions when opening :Mason (#285)William Boman2022-08-121-10/+13
|
* docs: change to a more appropriate word (#268)Rafael Madriz2022-08-081-1/+1
| | | | | In this case, using `packages` instead of `languages` makes more sense. In the example given, we're not installing just "languages" but also other packages (a formatter)
* docs: add :help mason.nvim to README (#259)William Boman2022-08-061-10/+11
|
* docs: add section describing how to use packages (#206)William Boman2022-07-311-0/+20
|
* docs: add CONTRIBUTING.md, SECURITY.md and update doc/reference.md (#181)William Boman2022-07-281-1/+108
|
* stable branch releaseWilliam Boman2022-07-241-1/+1
|
* docs: fixup the mason.txt help (#115)William Boman2022-07-221-3/+2
|
* docs: update setup section (#110)William Boman2022-07-221-0/+3
|
* refactor!: extract mason-lspconfig to separate plugin (#109)William Boman2022-07-222-221/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | The rationale behind this is to make boundaries clearer as mason.nvim has no direct relation with lspconfig per se. Also, hopefully, by having it as a separate package like this would encourage more people to write similar extensions (think mason-dap and mason-null-ls). Ideally such extensions wouldn't be required at all, but there are definitely gaps to fill as of today. From now on you'll need to add `williamboman/mason-lspconfig.nvim` as a plugin if you want to use the `mason-lspconfig` extension: ```lua use { { "williamboman/mason.nvim", branch = "alpha" }, "williamboman/mason-lspconfig.nvim", "neovim/nvim-lspconfig", } ``` ```lua Plug "williamboman/mason.nvim", { 'branch': 'alpha' } Plug "williamboman/mason-lspconfig.nvim" Plug "neovim/nvim-lspconfig" ```
* docs: update mason-lspconfig.setup_handlers() docs & add some tests (#94)William Boman2022-07-171-6/+40
|
* docs: add reference link to help (#85)William Boman2022-07-162-2/+10
|