aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-registry/sources/lua.lua
Commit message (Collapse)AuthorAgeFilesLines
* feat: associate package instances with registry source and record it in receiptWilliam Boman2025-05-061-1/+8
|
* refactor(registry): change lua registries to not instantiate Package themselvesWilliam Boman2025-05-021-19/+34
| | | | | | | | Instead of having Lua registries instantiate package instances themselves we now do it in the installer of Lua registry sources. This aligns the behaviour of the Lua registry protocol with the other registry protocols.
* refactor(registry): refactor registry initializationWilliam Boman2025-03-031-5/+5
|
* refactor: standardize constructors and improve inheritance constructionWilliam Boman2025-02-191-5/+7
|
* refactor!: consolidate Lua registry sources and the Package API (#1498)William Boman2025-02-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **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(registry): add .get_all_package_specs() (#1247)William Boman2023-04-221-0/+9
| | | | 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.
* feat(registry): pcall require Lua registry packages (#1200)William Boman2023-04-081-1/+8
| | | | The index table may get out of date if a user updates the plugin version without restarting Neovim, causing the `require()` call to error (note, restarting Neovim after plugin updates is always a good idea).
* fix(sources): also set .desc property when updating spec (#1095)William Boman2023-03-141-0/+1
|
* feat: add github registry source capabilities (#1091)William Boman2023-03-121-3/+3
|
* feat(ui): display registries in help window (#1062)William Boman2023-03-051-0/+8
|
* tests: add LuaRegistrySource spec (#1027)William Boman2023-02-231-1/+4
|
* feat: configurable registries (#1016)William Boman2023-02-201-0/+43