From 1030fab4ea5bff24bccb83922df54ab9cfddea98 Mon Sep 17 00:00:00 2001 From: Evan Reichard Date: Fri, 26 Apr 2024 11:39:10 -0400 Subject: [PATCH] feat(nvim): git blame --- home.nix | 2 +- nvim/config/lua/diffview-config.lua | 5 ++++- nvim/config/lua/git-signs.lua | 16 ++++++++++++++++ nvim/config/lua/init.lua | 1 + nvim/config/lua/lsp-config.lua | 8 ++++++++ nvim/config/lua/lualine-config.lua | 6 +++--- nvim/config/lua/which-key-config.lua | 11 +++++++++-- nvim/default.nix | 1 + 8 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 nvim/config/lua/git-signs.lua diff --git a/home.nix b/home.nix index 33f7da2..c1289af 100644 --- a/home.nix +++ b/home.nix @@ -27,6 +27,7 @@ in home.packages = with pkgs; [ (nerdfonts.override { fonts = [ "Meslo" ]; }) android-tools + awscli2 bashInteractive gitAndTools.gh google-cloud-sdk @@ -50,7 +51,6 @@ in }; # Misc Programs - programs.awscli.enable = true; programs.htop.enable = true; programs.jq.enable = true; programs.k9s.enable = true; diff --git a/nvim/config/lua/diffview-config.lua b/nvim/config/lua/diffview-config.lua index dca6369..c941eb6 100644 --- a/nvim/config/lua/diffview-config.lua +++ b/nvim/config/lua/diffview-config.lua @@ -1,3 +1,6 @@ vim.keymap.set('n', 'go', 'DiffviewOpen') -vim.keymap.set('n', 'gc', 'DiffviewClose') +vim.keymap.set('n', 'gO', 'DiffviewOpen origin/main...HEAD') vim.keymap.set('n', 'gh', 'DiffviewFileHistory') +vim.keymap.set('n', 'gH', + 'DiffviewFileHistory --range=origin..HEAD') +vim.keymap.set('n', 'gc', 'DiffviewClose') diff --git a/nvim/config/lua/git-signs.lua b/nvim/config/lua/git-signs.lua new file mode 100644 index 0000000..ded6ae5 --- /dev/null +++ b/nvim/config/lua/git-signs.lua @@ -0,0 +1,16 @@ +require('gitsigns').setup { + on_attach = function(bufnr) + local gitsigns = require('gitsigns') + + local function map(mode, l, r, opts) + opts = opts or {} + opts.buffer = bufnr + vim.keymap.set(mode, l, r, opts) + end + + map('n', 'gb', gitsigns.toggle_current_line_blame) + map('n', 'gB', function() + gitsigns.blame_line {full = true} + end) + end +} diff --git a/nvim/config/lua/init.lua b/nvim/config/lua/init.lua index 606e668..25068dc 100644 --- a/nvim/config/lua/init.lua +++ b/nvim/config/lua/init.lua @@ -5,6 +5,7 @@ require('cmp-config') require('comment-config') require('dap-config') require('diffview-config') +require('git-signs') require('leap-config') require('lsp-config') require('lsp-lines-config') diff --git a/nvim/config/lua/lsp-config.lua b/nvim/config/lua/lsp-config.lua index 04d79f1..395b80a 100644 --- a/nvim/config/lua/lsp-config.lua +++ b/nvim/config/lua/lsp-config.lua @@ -1,3 +1,11 @@ +------------------------------------------------------ +------------------- Custom Settings ------------------ +------------------------------------------------------ +vim.api.nvim_create_autocmd("FileType", { + pattern = "go", + callback = function() vim.bo.textwidth = 120 end +}) + ------------------------------------------------------ -------------------- Built-in LSP -------------------- ------------------------------------------------------ diff --git a/nvim/config/lua/lualine-config.lua b/nvim/config/lua/lualine-config.lua index 6e809dd..11af6fe 100644 --- a/nvim/config/lua/lualine-config.lua +++ b/nvim/config/lua/lualine-config.lua @@ -15,7 +15,7 @@ local function execute_command() local spawn_opts = { detached = true, stdio = {nil, stdout, nil}, - args = {"-c", "gh pr checks | awk '{ print $2 }'"} + args = {"-c", "gh pr checks | awk -F'\t' '{ print $2 }'"} } vim.loop.spawn("bash", spawn_opts, @@ -29,14 +29,14 @@ vim.fn.timer_start(300000, execute_command) -- Return status from cache function pr_status() --    - --    + --     -- -- PENDING COLOR - #d29922 -- PASS COLOR - #3fb950 -- FAIL COLOR - #f85149 return cached_pr_status:gsub("\n", ""):gsub("fail", " "):gsub("pass", " ") - :gsub("pending", " "):sub(1, -2) + :gsub("pending", " "):gsub("skipping", " "):sub(1, -2) end require('lualine').setup({ diff --git a/nvim/config/lua/which-key-config.lua b/nvim/config/lua/which-key-config.lua index 21da344..a3c5149 100644 --- a/nvim/config/lua/which-key-config.lua +++ b/nvim/config/lua/which-key-config.lua @@ -23,9 +23,16 @@ wk.register({ }, g = { name = "DiffView", - o = {"DiffviewOpen", "Open Diff"}, + o = {"DiffviewOpen", "Open Diff - Current"}, + O = {"DiffviewOpen origin/main...HEAD", "Open Diff - Main"}, + h = {"DiffviewFileHistory", "Diff History"}, + H = { + "DiffviewFileHistory --range=origin..HEAD", + "Diff History - Main" + }, c = {"DiffviewClose", "Close Diff"}, - h = {"DiffviewFileHistory", "Diff History"} + b = {"Git Blame Line"}, + B = {"Git Blame Full"} }, f = { name = "Find - Telescope", diff --git a/nvim/default.nix b/nvim/default.nix index 05f0c09..2053fd7 100644 --- a/nvim/default.nix +++ b/nvim/default.nix @@ -31,6 +31,7 @@ in aerial-nvim # Code Outline comment-nvim # Code Comments diffview-nvim # Diff View + gitsigns-nvim # Git Blame leap-nvim # Quick Movement markdown-preview-nvim # Markdown Preview neo-tree-nvim # File Explorer