diff --git a/config/init.lua b/config/init.lua index cad3a73..8414969 100644 --- a/config/init.lua +++ b/config/init.lua @@ -1,3 +1,6 @@ require("minimal-init") require("nvim-treesitter-conf") require("lsp-conf") +require("colors") +require("git-conf") +require("oil-conf") diff --git a/config/lua/git-conf.lua b/config/lua/git-conf.lua index c8017dc..e11b066 100644 --- a/config/lua/git-conf.lua +++ b/config/lua/git-conf.lua @@ -6,10 +6,13 @@ require('gitsigns').setup{ vim.keymap.set("n", "gg", gs.preview_hunk) vim.keymap.set('n', 'gs', gs.stage_hunk) vim.keymap.set('n', 'gr', gs.reset_hunk) + vim.keymap.set('v', 'gs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end) + vim.keymap.set('v', 'gr', function() gs.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end) vim.keymap.set('n', 'gu', gs.undo_stage_hunk) vim.keymap.set('n', 'gS', gs.stage_buffer) vim.keymap.set('n', 'gR', gs.reset_buffer) vim.keymap.set('n', 'gb', function() gs.blame_line{full=true} end) + vim.keymap.set('n', 'gb', gs.toggle_current_line_blame) vim.keymap.set('n', 'gd', gs.diffthis) vim.keymap.set('n', 'gD', function() gs.diffthis('~') end) vim.keymap.set('n', 'gt', gs.toggle_deleted) @@ -24,5 +27,6 @@ require('gitsigns').setup{ if vim.wo.diff then return '[c' end vim.schedule(function() gs.prev_hunk() end) return '' - end, {expr=true}) end + end, {expr=true}) + end } diff --git a/config/lua/lsp-conf.lua b/config/lua/lsp-conf.lua index 407aa14..5880906 100644 --- a/config/lua/lsp-conf.lua +++ b/config/lua/lsp-conf.lua @@ -29,18 +29,15 @@ vim.api.nvim_create_autocmd('LspAttach', { -- See `:help vim.lsp.*` for documentation on any of the below functions local opts = { buffer = ev.buf } vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) - vim.keymap.set('n', 'dD', vim.lsp.buf.declaration, opts) vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) - vim.keymap.set({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, opts) + vim.keymap.set({ 'n', 'v' }, 'ac', vim.lsp.buf.code_action, opts) vim.keymap.set("n", "dd", "Telescope lsp_definitions", { buffer = bufnr }) vim.keymap.set("n", "di", "Telescope lsp_implementations", { buffer = bufnr }) vim.keymap.set("n", "dr", "Telescope lsp_references", { buffer = bufnr }) vim.keymap.set("n", "dt", "Telescope lsp_type_definitions", { buffer = bufnr }) vim.keymap.set("n", "ds", "Telescope lsp_document_symbols", { buffer = bufnr }) - vim.keymap.set("n", "dS", "Telescope lsp_dynamic_workspace_symbols", { buffer = bufnr }) vim.keymap.set('n', 'df', function() vim.lsp.buf.format { async = true } end, opts) - end, }) diff --git a/config/lua/mini-conf.lua b/config/lua/mini-conf.lua index d8bae90..e98605e 100644 --- a/config/lua/mini-conf.lua +++ b/config/lua/mini-conf.lua @@ -2,10 +2,8 @@ require('mini.ai').setup() -- gc gcc require('mini.comment').setup() --- alt hjkl -require('mini.move').setup() --- Add surrounding with sa +-- Add surrounding with sa -- Delete surrounding with sd. -- Replace surrounding with sr. -- Find surrounding with sf or sF (move cursor right or left). @@ -49,7 +47,18 @@ require('mini.splitjoin').setup({ } }) -require('mini.pairs').setup() +require('mini.pairs').setup( +{ + modes = { insert = true, command = false, terminal = false }, + mappings = { + ['['] = { action = 'open', pair = '[]', neigh_pattern = '[^\\].' }, + ['{'] = { action = 'open', pair = '{}', neigh_pattern = '[^\\].' }, + + [']'] = { action = 'close', pair = '[]', neigh_pattern = '[^\\].' }, + ['}'] = { action = 'close', pair = '{}', neigh_pattern = '[^\\].' }, + }, +} +) vim.cmd([[ hi MiniCursorwordCurrent ctermfg=240 ]]) -- f F t T @@ -72,5 +81,9 @@ require('mini.completion').setup({ info = { height = 25, width = 80, border = 'single' }, signature = { height = 25, width = 80, border = 'single' }, }, + lsp_completion = { + source_func = 'completefunc', + auto_setup = true, + }, fallback_action = "" }) diff --git a/config/lua/nvim-treesitter-conf.lua b/config/lua/nvim-treesitter-conf.lua index 559c7f5..ad245c7 100644 --- a/config/lua/nvim-treesitter-conf.lua +++ b/config/lua/nvim-treesitter-conf.lua @@ -32,10 +32,10 @@ require("nvim-treesitter.configs").setup { swap = { enable = true, swap_next = { - ["p]"] = "@parameter.inner", + ["A]"] = "@parameter.inner", }, swap_previous = { - ["p["] = "@parameter.inner", + ["A["] = "@parameter.inner", }, }, }, incremental_selection = { diff --git a/config/lua/telescope-conf.lua b/config/lua/telescope-conf.lua index 08d2b13..b733c37 100644 --- a/config/lua/telescope-conf.lua +++ b/config/lua/telescope-conf.lua @@ -3,12 +3,10 @@ vim.keymap.set("n", "fb", telescope.buffers, {noremap = true, silent = t vim.keymap.set("n", "ff", telescope.find_files, {noremap = true, silent = true}) vim.keymap.set("n", "fg", telescope.git_files, {noremap = true, silent = true}) vim.keymap.set("n", "fv", telescope.command_history, {noremap = true, silent = true}) -vim.keymap.set("n", "", telescope.live_grep, {noremap = true, silent = true}) -vim.keymap.set("n", "8", telescope.grep_string, {noremap = true, silent = true}) -vim.keymap.set("n", "", telescope.resume, {noremap = true, silent = true}) +vim.keymap.set("n", "fa", telescope.live_grep, {noremap = true, silent = true}) +vim.keymap.set("n", "f8", telescope.grep_string, {noremap = true, silent = true}) +vim.keymap.set("n", "f", telescope.resume, {noremap = true, silent = true}) vim.keymap.set("n", "fs", telescope.git_status, {noremap = true, silent = true}) -vim.keymap.set("n", "fd", telescope.lsp_definitions, {noremap = true, silent = true}) -vim.keymap.set("n", "fr", telescope.lsp_references, {noremap = true, silent = true}) local telescope = require("telescope") telescope.setup({ diff --git a/config/lua/toggleterm-conf.lua b/config/lua/toggleterm-conf.lua index 49ac716..0b22131 100644 --- a/config/lua/toggleterm-conf.lua +++ b/config/lua/toggleterm-conf.lua @@ -1,4 +1,5 @@ require("toggleterm").setup{ open_mapping = [[]], - size = vim.o.lines * 0.4 + direction = "float", + close_on_exit = true, } diff --git a/config/minimal-init.lua b/config/minimal-init.lua index c15c163..5a828bf 100644 --- a/config/minimal-init.lua +++ b/config/minimal-init.lua @@ -1,8 +1,5 @@ -require("colors") require("mini-conf") require("toggleterm-conf") require("telescope-conf") -require("git-conf") -require("oil-conf") -- include our config last to override require("nvim-conf") diff --git a/flake.lock b/flake.lock index c3d8025..87c6826 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", "owner": "numtide", "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", "type": "github" }, "original": { @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1703499205, - "narHash": "sha256-lF9rK5mSUfIZJgZxC3ge40tp1gmyyOXZ+lRY3P8bfbg=", + "lastModified": 1705666311, + "narHash": "sha256-VYdSQm7zq3AStyHhRr3SBCTA8fVzrl6WtIlXTs2Wlts=", "owner": "nixos", "repo": "nixpkgs", - "rev": "e1fa12d4f6c6fe19ccb59cac54b5b3f25e160870", + "rev": "a455c5fb3ee513e2f443838a0e84d52b035adb67", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index d067005..2300728 100644 --- a/flake.nix +++ b/flake.nix @@ -46,22 +46,21 @@ pkgs.neovim-unwrapped { buildInputs = full-dependencies; } ]; + baseRC = '' + lua << EOF + package.path = "${self}/config/?.lua;" .. "${self}/config/lua/?.lua;" .. package.path + vim.o.runtimepath = "${self}/config," .. vim.o.runtimepath + ''; in rec { packages.full = pkgs.wrapNeovim neovim-with-full-deps (base // { withPython3 = true; extraMakeWrapperArgs = ''--prefix PATH : "${pkgs.lib.makeBinPath full-dependencies}"''; configure = { customRC = - '' - lua << EOF - package.path = "${self}/config/?.lua;" .. "${self}/config/lua/?.lua;" .. package.path - vim.o.runtimepath = "${self}/config," .. vim.o.runtimepath - '' + baseRC + pkgs.lib.readFile ./config/init.lua - + '' - EOF - ''; - packages.plugins = with pkgs.vimPlugins; { + + ''EOF''; + packages.plugins = { start = plugins.base ++ plugins.extra; }; }; @@ -70,16 +69,10 @@ extraMakeWrapperArgs = ''--prefix PATH : "${pkgs.lib.makeBinPath dependencies}"''; configure = { customRC = - '' - lua << EOF - package.path = "${self}/config/?.lua;" .. "${self}/config/lua/?.lua;" .. package.path - vim.o.runtimepath = "${self}/config," .. vim.o.runtimepath - '' + baseRC + pkgs.lib.readFile ./config/minimal-init.lua - + '' - EOF - ''; - packages.plugins = with pkgs.vimPlugins; { + + ''EOF''; + packages.plugins = { start = plugins.base; }; }; diff --git a/plugins.nix b/plugins.nix index 1549d06..055b19b 100644 --- a/plugins.nix +++ b/plugins.nix @@ -5,14 +5,13 @@ telescope-fzf-native-nvim toggleterm-nvim mini-nvim + ]; + extra = with pkgs.vimPlugins; [ + rose-pine gitsigns-nvim oil-nvim - rose-pine nvim-lspconfig nvim-treesitter.withAllGrammars nvim-treesitter-textobjects ]; - extra = with pkgs.vimPlugins; [ - vim-nix - ]; }