diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-06-19 18:34:13 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-06-19 18:34:13 +0900 |
| commit | 307fceea38b7352a79b0bdb87025a34b76973867 (patch) | |
| tree | 382eb3e6a11973bc2c6ba33eee14d43ec2a9566b /ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/git.lua | |
| parent | b66f68b8c014a3041c936ee9de1b57db5bcb50fb (diff) | |
updates
Diffstat (limited to 'ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/git.lua')
| -rw-r--r-- | ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/git.lua | 215 |
1 files changed, 0 insertions, 215 deletions
diff --git a/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/git.lua b/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/git.lua deleted file mode 100644 index 1f18b61..0000000 --- a/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/git.lua +++ /dev/null @@ -1,215 +0,0 @@ -return { - { - "moyiz/git-dev.nvim", - event = "VeryLazy", - opts = {}, - config = function() - require("git-dev").setup() - - local function copy_git_repo_url() - -- Get the Git repository root - local git_root = vim.fn.system("git rev-parse --show-toplevel"):gsub("\n", "") - if git_root == "" then - vim.notify("Not inside a Git repository", vim.log.levels.WARN) - return nil - end - - -- Get the remote URL - local remote_url = vim.fn.system("git config --get remote.origin.url"):gsub("\n", "") - if remote_url == "" then - vim.notify("No remote URL found", vim.log.levels.WARN) - return nil - end - - -- Convert SSH URL to HTTPS if needed - if remote_url:match("^git@") then - remote_url = remote_url:gsub("git@", "https://"):gsub(":", "/") - end - - -- Remove `.git` from the remote URL - remote_url = remote_url:gsub("%.git$", "") - - -- Get the relative path of the current file - local file_path = vim.fn.expand("%:~:.") - if file_path == "" then - vim.notify("No file currently open", vim.log.levels.WARN) - return nil - end - - -- Get the relative path to the repository root - local relative_path = - vim.fn.system("git ls-files --full-name " .. vim.fn.shellescape(file_path)):gsub("\n", "") - - -- Combine the remote URL with the relative file path - local full_url = remote_url .. "/" .. relative_path - - -- Copy to clipboard - vim.fn.setreg("+", full_url) - vim.notify("Copied to clipboard: " .. full_url, vim.log.levels.INFO) - - return full_url - end - - -- Keybinding to copy the Git repository URL - vim.keymap.set("n", "<leader>cg", function() - copy_git_repo_url() - end, { desc = "Copy git repository URL to clipboard" }) - - -- Function to open a repository from the clipboard - vim.keymap.set("n", "<leader>eg", function() - local url = vim.fn.getreg("+") -- Get URL from clipboard - if not url or url == "" then - vim.notify("Clipboard is empty. Copy a valid URL first.", vim.log.levels.WARN) - return - end - if url:match("^https://") then - require("git-dev").open(url) - else - vim.notify("Not a valid URL: " .. url, vim.log.levels.ERROR) - end - end, { desc = "Open Git repository from clipboard" }) - end, - }, - { - "lewis6991/gitsigns.nvim", - opts = { - signs = { - add = { text = "▎" }, - change = { text = "▎" }, - delete = { text = "" }, - topdelete = { text = "" }, - changedelete = { text = "▎" }, - untracked = { text = "▎" }, - }, - signs_staged = { - add = { text = "▎" }, - change = { text = "▎" }, - delete = { text = "" }, - topdelete = { text = "" }, - changedelete = { text = "▎" }, - }, - on_attach = function(buffer) - local gs = package.loaded.gitsigns - - local function map(mode, l, r, desc) - vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc }) - end - - -- stylua: ignore start - map("n", "]h", function() - if vim.wo.diff then - vim.cmd.normal({ "]c", bang = true }) - else - gs.nav_hunk("next") - end - end, "Next hunk") - map("n", "[h", function() - if vim.wo.diff then - vim.cmd.normal({ "[c", bang = true }) - else - gs.nav_hunk("prev") - end - end, "Previous hunk") - map("n", "]H", function() gs.nav_hunk("last") end, "Last hunk") - map("n", "[H", function() gs.nav_hunk("first") end, "First hunk") - map({ "n", "v" }, "<leader>gs", ":Gitsigns stage_hunk<CR>", "Stage hunk") - map({ "n", "v" }, "<leader>gr", ":Gitsigns reset_hunk<CR>", "Reset hunk") - map("n", "<leader>gS", gs.stage_buffer, "Stage buffer") - map("n", "<leader>gu", gs.undo_stage_hunk, "Undo stage hunk") - map("n", "<leader>gR", gs.reset_buffer, "Reset buffer") - map("n", "<leader>gpv", gs.preview_hunk_inline, "Preview hunk inline") - map("n", "<leader>gb", function() gs.blame_line({ full = true }) end, "Blame line") - map("n", "<leader>gB", function() gs.blame() end, "Blame buffer") - map("n", "<leader>gd", gs.diffthis, "Diff this") - map("n", "<leader>gD", function() gs.diffthis("~") end, "Diff this ~") - -- map("n", "<leader>gD", function() gs.diffthis("@") end, "Diff this @") - map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", "GitSigns select hunk") - map("n", "<leader>gtb", gs.toggle_current_line_blame, "Toggle line blame") - map("n", "<leader>gtd", gs.toggle_deleted, "Toggle delete") - end, - }, - init = function() - local wk = require("which-key") - wk.add({ - mode = { "n", "v", "x" }, - { "<leader>g", group = "Git" }, - { "<leader>gt", group = "Toggle" }, - }) - end, - }, - { - "kdheepak/lazygit.nvim", - cmd = { - "LazyGit", - "LazyGitConfig", - "LazyGitCurrentFile", - "LazyGitFilter", - "LazyGitFilterCurrentFile", - }, - -- optional for floating window border decoration - dependencies = { - "nvim-lua/plenary.nvim", - }, - -- setting the keybinding for LazyGit with 'keys' is recommended in - -- order to load the plugin when the command is run for the first time - keys = { - { "<leader>gg", "<cmd>LazyGit<cr>", desc = "Lazygit" }, - }, - }, - { - "mbbill/undotree", - config = function() - vim.keymap.set("n", "<leader>gu", vim.cmd.UndotreeToggle, { desc = "Undo tree" }) - end, - }, - { - "tpope/vim-fugitive", - config = function() - local TheSiahxyz_Fugitive = vim.api.nvim_create_augroup("TheSiahxyz_Fugitive", {}) - local autocmd = vim.api.nvim_create_autocmd - autocmd("BufWinEnter", { - group = TheSiahxyz_Fugitive, - pattern = "*", - callback = function() - if vim.bo.ft ~= "fugitive" then - return - end - - local bufnr = vim.api.nvim_get_current_buf() - vim.keymap.set("n", "<leader>P", function() - vim.cmd.Git("push") - end, { buffer = bufnr, remap = false, desc = "Git push" }) - vim.keymap.set("n", "<leader>p", function() - vim.cmd.Git({ "pull", "--rebase" }) - end, { buffer = bufnr, remap = false, desc = "Git pull" }) - vim.keymap.set( - "n", - "<leader>o", - ":Git push -u origin ", - { buffer = bufnr, remap = false, desc = "Git push origin" } - ) - vim.keymap.set( - "n", - "<leader>h", - ":Git push home ", - { buffer = bufnr, remap = false, desc = "Git push home" } - ) - end, - }) - autocmd("FileType", { - group = TheSiahxyz_Fugitive, - pattern = "fugitive", - callback = function(event) - vim.bo[event.buf].buflisted = false - vim.keymap.set("n", "q", "<cmd>close<cr>", { buffer = event.buf, silent = true }) - end, - }) - end, - keys = { - { mode = "n", "<leader>g<leader>", ":Git ", desc = "Git" }, - { mode = "n", "<leader>gf", vim.cmd.Git, desc = "Git fugitive" }, - { mode = "n", "gm", "<cmd>diffget //2<cr>", desc = "Git diff on my side" }, - { mode = "n", "go", "<cmd>diffget //3<cr>", desc = "Git diff on their side" }, - }, - }, -} |
