From c5082c1a7201956226eb435914bceeb9679de73b Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Tue, 17 Sep 2024 23:43:23 +0200 Subject: [PATCH 1/4] feat(neovim): add keybingings for fzf-lua --- .../home-manager/cli/neovim/files/fzf-lua.lua | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/modules/home-manager/cli/neovim/files/fzf-lua.lua b/modules/home-manager/cli/neovim/files/fzf-lua.lua index a186a12..7cc193c 100644 --- a/modules/home-manager/cli/neovim/files/fzf-lua.lua +++ b/modules/home-manager/cli/neovim/files/fzf-lua.lua @@ -1 +1,33 @@ -require('fzf-lua').setup() +require('fzf-lua').setup({ + previewers = { + builtin = { + extensions = { + ['png'] = { "chafa" }, + ['jpg'] = { "chafa" }, + ['svg'] = { "chafa" }, + } + } + }, + files = { + cwd_prompt_shorten_len = 20 + } +}) + +vim.keymap.set('n', 'fb', function() require('fzf-lua').buffers() end, {desc='open [b]uffers'}) +vim.keymap.set('n', 'ff', function() require('fzf-lua').files() end, {desc='[r]esume last command'}) +vim.keymap.set('n', 'fr', function() require('fzf-lua').files() end, {desc='[f]iles'}) + +-- git related keymaps +vim.keymap.set('n', 'fgb', function() require('fzf-lua').git_branches() end, {desc='Git [b]ranches'}) +vim.keymap.set('n', 'fgc', function() require('fzf-lua').git_commits() end, {desc='Git [c]ommits'}) +vim.keymap.set('n', 'fgC', function() require('fzf-lua').git_bcommits() end, {desc='Git current buffer [C]ommits'}) +vim.keymap.set('n', 'fgf', function() require('fzf-lua').git_files() end, {desc='Git [f]iles'}) +vim.keymap.set('n', 'fgs', function() require('fzf-lua').git_stash() end, {desc='Git [s]tash'}) +vim.keymap.set('n', 'fgS', function() require('fzf-lua').git_status() end, {desc='Git [S]tash'}) + +-- grep related keymaps +vim.keymap.set('n', 'fGb', function() require('fzf-lua').grep_curbuf() end, {desc='grep in current [b]uffer'}) +vim.keymap.set('n', 'fGc', function() require('fzf-lua').grep_cword() end, {desc='grep word under the [c]ursor'}) +vim.keymap.set('n', 'fGg', function() require('fzf-lua').grep() end, {desc='[g]rep'}) +vim.keymap.set('n', 'fGl', function() require('fzf-lua').live_grep() end, {desc='[l]ive grep'}) +vim.keymap.set('n', 'fGr', function() require('fzf-lua').grep_last() end, {desc='[r]erun last grep'}) From 91c922a2ec8070128704a27e9f8b3a4a1482b18c Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Tue, 17 Sep 2024 23:44:24 +0200 Subject: [PATCH 2/4] feat(neovim): improve which-key display --- modules/home-manager/cli/neovim/files/whichkey.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/home-manager/cli/neovim/files/whichkey.lua b/modules/home-manager/cli/neovim/files/whichkey.lua index a3cf600..0fdd5b8 100644 --- a/modules/home-manager/cli/neovim/files/whichkey.lua +++ b/modules/home-manager/cli/neovim/files/whichkey.lua @@ -1,4 +1,10 @@ -- Which-key -- local wk = require 'which-key' --- wk.register() +wk.add({ + {'n', group = 'NeoTree'}, + {'f', group = 'fzf-lua'}, + {'fg', group = 'fzf-lua Git'}, + {'fG', group = 'fzf-lua Grep'}, + {'g', group = 'Gitsign'}, +}) From c139cce5104000c9a624bcfc0579fe2363875a20 Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Tue, 17 Sep 2024 23:45:20 +0200 Subject: [PATCH 3/4] chore(neovim): rework whichkey help for neotree --- modules/home-manager/cli/neovim/files/neotree.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/home-manager/cli/neovim/files/neotree.lua b/modules/home-manager/cli/neovim/files/neotree.lua index da3b336..c252b7f 100644 --- a/modules/home-manager/cli/neovim/files/neotree.lua +++ b/modules/home-manager/cli/neovim/files/neotree.lua @@ -19,7 +19,7 @@ neotree.setup({ } }) -vim.keymap.set('n', 'nc', ':Neotree close', {desc='Neotree [C]lose'}) -vim.keymap.set('n', 'nf', ':Neotree focus filesystem', {desc='Neotree [F]ocus'}) -vim.keymap.set('n', 'nb', ':Neotree focus buffers', {desc='Neotree Nvim [B]uffers'}) -vim.keymap.set('n', 'ng', ':Neotree focus git_status', {desc='Neotree [G]it status'}) +vim.keymap.set('n', 'nc', ':Neotree close', {desc='Neotree [c]lose'}) +vim.keymap.set('n', 'nf', ':Neotree focus filesystem', {desc='Neotree [f]ocus'}) +vim.keymap.set('n', 'nb', ':Neotree focus buffers', {desc='Neotree Nvim [b]uffers'}) +vim.keymap.set('n', 'ng', ':Neotree focus git_status', {desc='Neotree [g]it status'}) From a9e75d7933cc577974a4186dc800d060cd5e06af Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Wed, 18 Sep 2024 00:15:18 +0200 Subject: [PATCH 4/4] feat(neovim): add lsp_line plugin --- modules/home-manager/cli/neovim/default.nix | 5 +++++ modules/home-manager/cli/neovim/files/lsp-line.lua | 2 ++ 2 files changed, 7 insertions(+) create mode 100644 modules/home-manager/cli/neovim/files/lsp-line.lua diff --git a/modules/home-manager/cli/neovim/default.nix b/modules/home-manager/cli/neovim/default.nix index 1960e4f..1528061 100644 --- a/modules/home-manager/cli/neovim/default.nix +++ b/modules/home-manager/cli/neovim/default.nix @@ -87,6 +87,11 @@ in } ''; } + { + plugin = lsp_lines-nvim; + type = "lua"; + config = (builtins.readFile ./files/lsp-line.lua); + } { plugin = nvim-lspconfig; type = "lua"; diff --git a/modules/home-manager/cli/neovim/files/lsp-line.lua b/modules/home-manager/cli/neovim/files/lsp-line.lua new file mode 100644 index 0000000..d10b0bc --- /dev/null +++ b/modules/home-manager/cli/neovim/files/lsp-line.lua @@ -0,0 +1,2 @@ +require('lsp_lines').setup() +vim.diagnostic.config({ virtual_lines = true })