-- inspired by (and partially yoinked from): github.com/gonstoll/dotfiles local M = { misc = require("core.misc"), folding = require("core.folding"), lsp = require("core.lsp"), color = require("core.color"), snippets = vim.fs.joinpath(vim.fn.stdpath("config"), "lua/core/snippets.lua"), } --- check if the given table contains an item, and return the key value pair if --- it does ---@param self table table ---@param item any item to find ---@return boolean, [any, any]? found true if found table.contains = function(self, item) for k, v in pairs(self) do if v == item then return true, { k, v } end end return false end M.mason = { --- Gets a path to a package in the Mason registry. --- Prefer this to `get_package`, since the package might not always be --- available yet and trigger errors. ---@param pkg string ---@param path? string get_pkg_path = function(pkg, path) pcall(require, "mason") -- make sure Mason is loaded. Will fail when generating docs local root = vim.env.MASON or vim.fs.joinpath(vim.fn.stdpath("data"), "mason") path = path or "" return vim.fs.joinpath(root, "packages", pkg, path) end } return M