---@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