From 172990f33e225741b098bdb0ff9a61536b3d92e2 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Thu, 15 Sep 2022 20:52:50 +0200 Subject: Added nvim gitsigns extension, trying to set vimdiff with neovim --- config/git/config.darwin | 2 ++ config/git/config.linux | 10 ++++++++ config/nvim/init.lua | 5 ++++ config/nvim/lua/mappings.lua | 5 ++++ config/nvim/lua/plugins.lua | 55 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 77 insertions(+) diff --git a/config/git/config.darwin b/config/git/config.darwin index 9cb547f..0830442 100644 --- a/config/git/config.darwin +++ b/config/git/config.darwin @@ -13,3 +13,5 @@ defaultBranch = master [core] editor = nvim + +# vim:ft=gitconfig diff --git a/config/git/config.linux b/config/git/config.linux index 3c72be1..96319cb 100644 --- a/config/git/config.linux +++ b/config/git/config.linux @@ -8,6 +8,12 @@ rebase = false [merge] tool = vimdiff + conflictstyle = diff3 +[mergetool] + keepBackup = false + prompt = false +[mergetool "vimdiff"] + cmd = "nvim -d $MERGED $LOCAL $BASE $REMOTE -c 'wincmd J | wincmd ='" [commit] gpgsign = true [init] @@ -18,3 +24,7 @@ prompt = false [diff] tool = bat +[core] + editor = nvim + +# vim:ft=gitconfig diff --git a/config/nvim/init.lua b/config/nvim/init.lua index faa3cf4..e89f4ca 100644 --- a/config/nvim/init.lua +++ b/config/nvim/init.lua @@ -109,4 +109,9 @@ vim.api.nvim_create_autocmd( } ) +vim.cmd [[ highlight link DiffAdd GruvboxGreenSign ]] +vim.cmd [[ highlight link DiffChange GruvboxYellowSign ]] +vim.cmd [[ highlight link DiffDelete GruvboxRedSign ]] +-- vim.cmd [[ highlight DiffText link GruvboxGreenSign ]] + require("mappings") diff --git a/config/nvim/lua/mappings.lua b/config/nvim/lua/mappings.lua index 9b1f638..242b846 100644 --- a/config/nvim/lua/mappings.lua +++ b/config/nvim/lua/mappings.lua @@ -37,3 +37,8 @@ map('n', 'l', 'SidewaysRight', {}) map('n', 'h', 'SidewaysLeft', {}) map('n', 'w', 'ArgWrap', {}) + +-- difftool +map('n', '1', 'diffget LOCAL', {}) +map('n', '2', 'diffget BASE', {}) +map('n', '3', 'diffget REMOTE', {}) diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua index 6eae912..31a9a91 100644 --- a/config/nvim/lua/plugins.lua +++ b/config/nvim/lua/plugins.lua @@ -318,6 +318,22 @@ return require("packer").startup(function() run = ":TSUpdate", config = function() require("nvim-treesitter.configs").setup { + ensure_installed = { + "c", + "python", + "lua", + "rust", + "bash", + "commonlisp", + "cpp", + "glsl", + "haskell", + "json", + "markdown", + "query", + "vim", + "yaml", + }, highlight = { enable = true }, @@ -385,6 +401,45 @@ return require("packer").startup(function() end } + use { + "lewis6991/gitsigns.nvim", + tag = 'release', + config = function() + require("gitsigns").setup { + signcolumn = false, + numhl = true, + + on_attach = function(bufnr) + local opts = { silent = true, noremap = true, expr = true } + -- local map = function(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end + local function map(mode, l, r) + opts.buffer = bufnr + vim.keymap.set(mode, l, r, opts) + end + local gs = package.loaded.gitsigns + map( + "n", + "]c", + function() + if vim.wo.diff then return "]c" end + vim.schedule(function() gs.next_hunk() end) + return "" + end + ) + map( + "n", + "[c", + function() + if vim.wo.diff then return "[c" end + vim.schedule(function() gs.prev_hunk() end) + return "" + end + ) + end + } + end + } + -- remote files and lsp use { "chipsenkbeil/distant.nvim", -- cgit