From c5aaacf0f9bb440fb5e6c8acb441753ce3d3cad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 26 Mar 2023 18:27:41 +0200 Subject: [PATCH 1/5] refactor(nvim): move options to seperate file --- modules/programs/nvim/default.nix | 6 ++++- modules/programs/nvim/init.lua | 39 ------------------------------- modules/programs/nvim/options.lua | 38 ++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 40 deletions(-) create mode 100644 modules/programs/nvim/options.lua diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index 3a32217..2e09fc8 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -41,7 +41,11 @@ in vimdiffAlias = true; withNodeJs = true; withPython3 = true; - extraLuaConfig = builtins.readFile ./init.lua; + extraLuaConfig = lib.concatLines ( + builtins.map + builtins.readFile + [ ./options.lua ./init.lua ] + ); extraPackages = with pkgs; [ alejandra black diff --git a/modules/programs/nvim/init.lua b/modules/programs/nvim/init.lua index 3a9ce13..a24dc95 100644 --- a/modules/programs/nvim/init.lua +++ b/modules/programs/nvim/init.lua @@ -1,42 +1,3 @@ -vim.g.mapleader = " " -vim.g.maplocalleader = "," - --- FIX to create spell dir if not existent -local spelldir = vim.fn.stdpath("data") .. "/site/spell" -if not vim.loop.fs_stat(spelldir) then - vim.fn.mkdir(spelldir, "p") -end - -vim.opt.autoindent = true -vim.opt.backupdir = { vim.fn.stdpath("state") .. "/nvim/backup/" } -- don't store backup in files dir -vim.opt.clipboard = "unnamedplus" -- sync with system clipboard -vim.opt.conceallevel = 2 -vim.opt.expandtab = true -- spaces instead of tabs -vim.opt.ignorecase = true -vim.opt.mouse = "a" -- mouse for all modes -vim.opt.number = true -vim.opt.relativenumber = true -vim.opt.scrolloff = 4 -- lines of context -vim.opt.shiftround = true -- round indent -vim.opt.shiftwidth = 0 -- use tabstop value -vim.opt.shortmess:append({ c = true }) -vim.opt.signcolumn = "yes" -vim.opt.smartcase = true -vim.opt.splitbelow = true -vim.opt.splitright = true -vim.opt.tabstop = 2 -vim.opt.termguicolors = true -vim.opt.undofile = true -vim.opt.undolevels = 10000 -vim.opt.updatetime = 300 -vim.opt_local.spell = true -vim.opt_local.spelllang = { "en", "de_20" } -- all English regions and new German spelling - -if vim.g.neovide then - vim.opt.guifont = "Fira Code Nerd Font:h10" - vim.g.neovide_scale_factor = 0.7 -end - require("impatient") local wk = require("which-key") diff --git a/modules/programs/nvim/options.lua b/modules/programs/nvim/options.lua new file mode 100644 index 0000000..4ebf278 --- /dev/null +++ b/modules/programs/nvim/options.lua @@ -0,0 +1,38 @@ +vim.g.mapleader = " " +vim.g.maplocalleader = "," + +-- FIX to create spell dir if not existent +local spelldir = vim.fn.stdpath("data") .. "/site/spell" +if not vim.loop.fs_stat(spelldir) then + vim.fn.mkdir(spelldir, "p") +end + +vim.opt.autoindent = true +vim.opt.backupdir = { vim.fn.stdpath("state") .. "/nvim/backup/" } -- don't store backup in files dir +vim.opt.clipboard = "unnamedplus" -- sync with system clipboard +vim.opt.conceallevel = 2 +vim.opt.expandtab = true -- spaces instead of tabs +vim.opt.ignorecase = true +vim.opt.mouse = "a" -- mouse for all modes +vim.opt.number = true +vim.opt.relativenumber = true +vim.opt.scrolloff = 4 -- lines of context +vim.opt.shiftround = true -- round indent +vim.opt.shiftwidth = 0 -- use tabstop value +vim.opt.shortmess:append({ c = true }) +vim.opt.signcolumn = "yes" +vim.opt.smartcase = true +vim.opt.splitbelow = true +vim.opt.splitright = true +vim.opt.tabstop = 2 +vim.opt.termguicolors = true +vim.opt.undofile = true +vim.opt.undolevels = 10000 +vim.opt.updatetime = 300 +vim.opt_local.spell = true +vim.opt_local.spelllang = { "en", "de_20" } -- all English regions and new German spelling + +if vim.g.neovide then + vim.opt.guifont = "Fira Code Nerd Font:h10" + vim.g.neovide_scale_factor = 0.7 +end From 5977d6a7e180cbab6ec1eed3ecf7aee4ad605bd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 26 Mar 2023 18:28:49 +0200 Subject: [PATCH 2/5] feat(nvim): add various keybinds --- modules/programs/nvim/default.nix | 2 +- modules/programs/nvim/init.lua | 6 ++---- modules/programs/nvim/keybinds.lua | 21 +++++++++++++++++++++ 3 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 modules/programs/nvim/keybinds.lua diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index 2e09fc8..74e0c28 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -44,7 +44,7 @@ in extraLuaConfig = lib.concatLines ( builtins.map builtins.readFile - [ ./options.lua ./init.lua ] + [ ./options.lua ./keybinds.lua ./init.lua ] ); extraPackages = with pkgs; [ alejandra diff --git a/modules/programs/nvim/init.lua b/modules/programs/nvim/init.lua index a24dc95..8f97399 100644 --- a/modules/programs/nvim/init.lua +++ b/modules/programs/nvim/init.lua @@ -1,7 +1,5 @@ require("impatient") -local wk = require("which-key") - require("nvim-treesitter.configs").setup({ sync_install = false, auto_install = false, @@ -142,7 +140,7 @@ vim.o.statuscolumn = "%= " .. "%= " -- spacing between end of column and start of text -- Using ufo provider need remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself -wk.register({ +require("which-key").register({ z = { R = { require("ufo").openAllFolds, "Open all folds" }, M = { require("ufo").closeAllFolds, "Close all folds" }, @@ -171,7 +169,7 @@ require("lspsaga").setup({ local lspconfig = require("lspconfig") local on_attach_def = function(_, bufnr) - wk.register({ + require("which-key").register({ K = { "Lspsaga hover_doc ++quiet", "show info" }, [""] = { l = { diff --git a/modules/programs/nvim/keybinds.lua b/modules/programs/nvim/keybinds.lua new file mode 100644 index 0000000..52ae2e2 --- /dev/null +++ b/modules/programs/nvim/keybinds.lua @@ -0,0 +1,21 @@ +-- buffers +require("which-key").register({ + b = { + name = "buffers", + b = { "Telescope buffers", "List buffers" }, + d = { "bd", "Delete buffer" }, + n = { "bnext", "Next buffer" }, + p = { "bprevious", "Previous buffer" }, + }, +}) + +-- Clear search with +require("which-key").register({ + [""] = { "noh", "Escape and clear hlsearch", mode = { "n", "i" } }, +}) + +-- better indenting +require("which-key").register({ + ["<"] = { ""] = { ">gv", "Shift right" }, +}, { mode = "v" }) From a1fc3d39da170eaae11f277430cbeab58e5606aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 26 Mar 2023 18:29:32 +0200 Subject: [PATCH 3/5] feat(nvim): add ( after completion of function --- modules/programs/nvim/plugins/nvim-autopairs.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/programs/nvim/plugins/nvim-autopairs.lua b/modules/programs/nvim/plugins/nvim-autopairs.lua index 4de6add..540723f 100644 --- a/modules/programs/nvim/plugins/nvim-autopairs.lua +++ b/modules/programs/nvim/plugins/nvim-autopairs.lua @@ -1 +1,6 @@ require("nvim-autopairs").setup() + +-- If you want insert `(` after select function or method item +local cmp_autopairs = require("nvim-autopairs.completion.cmp") +local cmp = require("cmp") +cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done()) From 4c93733c44b69f68ef7281d37c37811e1b0ab5e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 26 Mar 2023 18:30:14 +0200 Subject: [PATCH 4/5] feat(nvim): add oil.nvim --- modules/programs/nvim/plugins/oil-nvim.lua | 1 + 1 file changed, 1 insertion(+) create mode 100644 modules/programs/nvim/plugins/oil-nvim.lua diff --git a/modules/programs/nvim/plugins/oil-nvim.lua b/modules/programs/nvim/plugins/oil-nvim.lua new file mode 100644 index 0000000..ee12680 --- /dev/null +++ b/modules/programs/nvim/plugins/oil-nvim.lua @@ -0,0 +1 @@ +require("oil").setup() From d6fbbb945c20da640a0cdae7f83bbb54e00fd739 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 26 Mar 2023 18:38:13 +0200 Subject: [PATCH 5/5] feat(nvim): add bufferline.nvim --- modules/programs/nvim/plugins/bufferline-nvim.lua | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 modules/programs/nvim/plugins/bufferline-nvim.lua diff --git a/modules/programs/nvim/plugins/bufferline-nvim.lua b/modules/programs/nvim/plugins/bufferline-nvim.lua new file mode 100644 index 0000000..d6f74f1 --- /dev/null +++ b/modules/programs/nvim/plugins/bufferline-nvim.lua @@ -0,0 +1,2 @@ +vim.opt.termguicolors = true +require("bufferline").setup()