diff --git a/lua/absolute/helpers/init.lua b/lua/absolute/helpers/init.lua new file mode 100644 index 0000000..a156749 --- /dev/null +++ b/lua/absolute/helpers/init.lua @@ -0,0 +1 @@ +require("absolute.helpers.open-project-folder") diff --git a/lua/absolute/helpers/open-project-folder.lua b/lua/absolute/helpers/open-project-folder.lua new file mode 100644 index 0000000..95fd43b --- /dev/null +++ b/lua/absolute/helpers/open-project-folder.lua @@ -0,0 +1,30 @@ +local current_os = require("absolute.utils.detect-os") +local get_git_root = require("absolute.utils.get-git-root") + +local os_name = current_os.detect() +local supported_os = current_os.supported + +function Open_project_root() + local project_root = get_git_root() + + if os_name == supported_os.MACOS then + vim.fn.jobstart("open " .. project_root, { detach = true }) + return + end + + if os_name == supported_os.UNIX then + vim.fn.jobstart("xdg-open " .. project_root, { detach = true }) + return + end + + if os_name == supported_os.WINDOWS then + vim.fn.jobstart("explorer " .. project_root, { detach = true }) + return + end +end + +local opts = { noremap = true, silent = true } + +opts.desc = "Open project root" + +vim.api.nvim_set_keymap("n", "op", "lua Open_project_root()", opts)