From 6bf7c841735b7f092c6ea04e0c5ff35ddacad019 Mon Sep 17 00:00:00 2001 From: David Ibia Date: Sun, 3 Mar 2024 14:10:03 +0100 Subject: [PATCH] feat(open-project-folder.lua): add Lua script to open project root folder based on OS feat(open-project-folder.lua): add key mapping to open project root folder in Neovim --- lua/absolute/helpers/open-project-folder.lua | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 lua/absolute/helpers/open-project-folder.lua 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)