42 lines
1.2 KiB
Lua
42 lines
1.2 KiB
Lua
-- 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
|