From f1e58d3ce7ab3bdb3036b791811896a0220703ad Mon Sep 17 00:00:00 2001 From: William Boman Date: Fri, 13 Oct 2023 01:53:41 +0200 Subject: refactor(path): use InstallLocation to produce paths, remove static path methods --- lua/mason-registry/init.lua | 11 +++++++---- lua/mason-registry/sources/github.lua | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'lua/mason-registry') diff --git a/lua/mason-registry/init.lua b/lua/mason-registry/init.lua index a407ad4f..9842748b 100644 --- a/lua/mason-registry/init.lua +++ b/lua/mason-registry/init.lua @@ -1,4 +1,5 @@ local EventEmitter = require "mason-core.EventEmitter" +local InstallLocation = require "mason-core.installer.location" local Optional = require "mason-core.optional" local _ = require "mason-core.functional" local fs = require "mason-core.fs" @@ -20,6 +21,7 @@ local sources = require "mason-registry.sources" local M = setmetatable({}, { __index = EventEmitter }) EventEmitter.init(M) +---@type fun(location: InstallLocation): table local scan_install_root do @@ -37,13 +39,14 @@ do end) ) + ---@param location InstallLocation ---@return table - scan_install_root = function() + scan_install_root = function(location) if cached_dirs then return cached_dirs end log.trace "Scanning installation root dir" - local ok, entries = pcall(fs.sync.readdir, path.package_prefix()) + local ok, entries = pcall(fs.sync.readdir, location:package()) if not ok then log.debug("Failed to scan installation root dir", entries) -- presume installation root dir has not been created yet (i.e., no packages installed) @@ -63,7 +66,7 @@ end ---modules required to load. ---@param package_name string function M.is_installed(package_name) - return scan_install_root()[package_name] == true + return scan_install_root(InstallLocation.global())[package_name] == true end ---Returns an instance of the Package class if the provided package name exists. This function errors if a package cannot be found. @@ -93,7 +96,7 @@ local get_packages = _.map(M.get_package) ---Returns all installed package names. This is a fast function that doesn't load any extra modules. ---@return string[] function M.get_installed_package_names() - return _.keys(scan_install_root()) + return _.keys(scan_install_root(InstallLocation.global())) end ---Returns all installed package instances. This is a slower function that loads more modules. diff --git a/lua/mason-registry/sources/github.lua b/lua/mason-registry/sources/github.lua index fce5077f..81ccaf56 100644 --- a/lua/mason-registry/sources/github.lua +++ b/lua/mason-registry/sources/github.lua @@ -1,3 +1,4 @@ +local InstallLocation = require "mason-core.installer.location" local Optional = require "mason-core.optional" local Result = require "mason-core.result" local _ = require "mason-core.functional" @@ -31,7 +32,7 @@ GitHubRegistrySource.__index = GitHubRegistrySource ---@param spec GitHubRegistrySourceSpec function GitHubRegistrySource.new(spec) - local root_dir = path.concat { path.registry_prefix(), "github", spec.namespace, spec.name } + local root_dir = InstallLocation.global():registry(path.concat { "github", spec.namespace, spec.name }) return setmetatable({ id = spec.id, spec = spec, -- cgit v1.2.3-70-g09d2