summaryrefslogtreecommitdiff
path: root/lua/utility
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-09-18 11:39:25 +0200
committerHampusM <hampus@hampusmat.com>2022-09-18 11:39:25 +0200
commit3c238894c5b6f15c5f27cea8bd3785eb0f1ebf0f (patch)
tree68292df2b0cd698484d26057a4faf914e9ea6300 /lua/utility
parentd8fa264ac732286dcf9234bc40e60eeb7e230ca7 (diff)
add config
Diffstat (limited to 'lua/utility')
-rw-r--r--lua/utility/autocmd.lua15
-rw-r--r--lua/utility/git.lua29
-rw-r--r--lua/utility/misc.lua8
3 files changed, 52 insertions, 0 deletions
diff --git a/lua/utility/autocmd.lua b/lua/utility/autocmd.lua
new file mode 100644
index 0000000..948497d
--- /dev/null
+++ b/lua/utility/autocmd.lua
@@ -0,0 +1,15 @@
+function autocmd(event, pattern, command)
+ vim.cmd("autocmd " .. event .. " " .. pattern .. " " .. command)
+end
+
+function augroup(name, autocommands)
+ vim.cmd("augroup " .. name)
+ vim.cmd("autocmd!")
+
+ for _, autocmd_args in ipairs(autocommands) do
+ autocmd(unpack(autocmd_args))
+ end
+
+ vim.cmd("augroup end")
+end
+
diff --git a/lua/utility/git.lua b/lua/utility/git.lua
new file mode 100644
index 0000000..b43ccc5
--- /dev/null
+++ b/lua/utility/git.lua
@@ -0,0 +1,29 @@
+require("utility.misc")
+
+function RepositoryRoot()
+ local current_file = GetCurrentFile()
+
+ if current_file == "fzf" then
+ return ""
+ end
+
+ local super_project_path = vim.fn.system("git -C " .. Dirname(current_file)
+ .. " rev-parse --show-superproject-working-tree")
+
+ if vim.v.shell_error ~= 0 then
+ return ""
+ end
+
+ if super_project_path then
+ return super_project_path
+ end
+
+ local toplevel_path = vim.fn.system("git -C " .. Dirname(current_file)
+ .. " rev-parse --show-toplevel | tr -d '\n'")
+
+ if vim.v.shell_error ~= 0 then
+ return ""
+ end
+
+ return toplevel_path
+end
diff --git a/lua/utility/misc.lua b/lua/utility/misc.lua
new file mode 100644
index 0000000..04ec1fc
--- /dev/null
+++ b/lua/utility/misc.lua
@@ -0,0 +1,8 @@
+function GetCurrentFile()
+ return vim.fn.expand("%")
+end
+
+function Dirname(file_path)
+ return vim.fn.fnamemodify(file_path, ":p:h")
+end
+