aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2025-07-29 21:50:09 +0200
committerGitHub <noreply@github.com>2025-07-29 19:50:09 +0000
commit8465e6e752f2217988887ead42a053dcf74ade54 (patch)
tree9c6139e522dcde31d3369b360d8f7b4499cbb89d
parentdocs: fix sponsors link (#599) (diff)
downloadmason-lspconfig-8465e6e752f2217988887ead42a053dcf74ade54.tar
mason-lspconfig-8465e6e752f2217988887ead42a053dcf74ade54.tar.gz
mason-lspconfig-8465e6e752f2217988887ead42a053dcf74ade54.tar.bz2
mason-lspconfig-8465e6e752f2217988887ead42a053dcf74ade54.tar.lz
mason-lspconfig-8465e6e752f2217988887ead42a053dcf74ade54.tar.xz
mason-lspconfig-8465e6e752f2217988887ead42a053dcf74ade54.tar.zst
mason-lspconfig-8465e6e752f2217988887ead42a053dcf74ade54.zip
perf: cache registry specs (#598)
-rw-r--r--lua/mason-lspconfig/mappings.lua7
1 files changed, 6 insertions, 1 deletions
diff --git a/lua/mason-lspconfig/mappings.lua b/lua/mason-lspconfig/mappings.lua
index c40853f..b35308f 100644
--- a/lua/mason-lspconfig/mappings.lua
+++ b/lua/mason-lspconfig/mappings.lua
@@ -3,10 +3,15 @@ local registry = require "mason-registry"
local M = {}
+local cached_specs = _.lazy(registry.get_all_package_specs)
+registry:on("update:success", function()
+ cached_specs = _.lazy(registry.get_all_package_specs)
+end)
+
function M.get_mason_map()
---@type table<string, string>
local package_to_lspconfig = {}
- for _, pkg_spec in ipairs(registry.get_all_package_specs()) do
+ for _, pkg_spec in ipairs(cached_specs()) do
local lspconfig = vim.tbl_get(pkg_spec, "neovim", "lspconfig")
if lspconfig then
package_to_lspconfig[pkg_spec.name] = lspconfig