Files
cave.nvim/lua/cave/init.lua

50 lines
1.3 KiB
Lua

---@class cave
local cave = {}
cave.Path = require "cave.path"
cave.Util = require "cave.util"
cave.manager = require("cave.manager").new()
function cave.load_project_from_cwd()
local manager = cave.manager
local workspaces = require "workspaces"
local Path = cave.Path
local cwd = Path.cwd()
for project_name, project in pairs(manager:get_projects()) do
if project.dir:samefile(cwd) then workspaces.open(project_name) end
end
end
function cave.setup()
vim.api.nvim_create_user_command(
"ProjectAdd",
function(cmd_opts) cave.manager:add_project(unpack(cmd_opts.fargs)) end,
{
desc = "Add a project (dir?, name?)",
nargs = "*",
complete = "file",
}
)
vim.api.nvim_create_user_command(
"ProjectRemove",
function(cmd_opts) cave.manager:remove_project(unpack(cmd_opts.fargs)) end,
{
desc = "Remove a project (name?)",
nargs = 1,
complete = function(lead) return cave.manager:project_name_complete(lead) end,
}
)
vim.api.nvim_create_user_command(
"ProjectRename",
function(cmd_opts) cave.manager:rename_project(unpack(cmd_opts.fargs)) end,
{
desc = "Rename a project. (old_name, new_name)",
nargs = "+",
complete = function(lead) return cave.manager:project_name_complete(lead) end,
}
)
end
return cave