From c4ddbfc40cb61fd796e15ce100528673fd943dac Mon Sep 17 00:00:00 2001 From: iofq Date: Thu, 25 May 2023 05:23:10 -0500 Subject: [PATCH] polish git, mini config --- config/lua/colors.lua | 8 +++++ config/lua/git-conf.lua | 30 +++++++++++++++++++ config/lua/gitsigns-conf.lua | 32 -------------------- config/lua/mini-conf.lua | 42 ++++++++++++++++++++++++++ config/lua/nvim-conf.lua | 54 ++++------------------------------ config/lua/oil-conf.lua | 2 +- config/lua/telescope-conf.lua | 16 ++-------- config/lua/toggleterm-conf.lua | 3 +- config/minimal-init.lua | 10 ++++--- flake.nix | 9 +++--- 10 files changed, 102 insertions(+), 104 deletions(-) create mode 100644 config/lua/colors.lua create mode 100644 config/lua/git-conf.lua delete mode 100644 config/lua/gitsigns-conf.lua diff --git a/config/lua/colors.lua b/config/lua/colors.lua new file mode 100644 index 0000000..a46e555 --- /dev/null +++ b/config/lua/colors.lua @@ -0,0 +1,8 @@ +require("rose-pine").setup({ + variant = "moon", + disable_background = true, + disable_italics = true, + disable_float_background = true +}) + +vim.cmd.colorscheme "rose-pine-main" diff --git a/config/lua/git-conf.lua b/config/lua/git-conf.lua new file mode 100644 index 0000000..f809a97 --- /dev/null +++ b/config/lua/git-conf.lua @@ -0,0 +1,30 @@ +require('gitsigns').setup{ + signcolumn = false, + numhl = true, + on_attach = function() + local gs = package.loaded.gitsigns + 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('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', 'gd', gs.diffthis) + vim.keymap.set('n', 'gD', function() gs.diffthis('~') end) + vim.keymap.set('n', 'gt', gs.toggle_deleted) + -- Navigation + vim.keymap.set('n', ']g', function() + if vim.wo.diff then return ']c' end + vim.schedule(function() gs.next_hunk() end) + return '' + end, {expr=true}) + + vim.keymap.set('n', '[g', function() + if vim.wo.diff then return '[c' end + vim.schedule(function() gs.prev_hunk() end) + return '' + end, {expr=true}) end +} + +require("neogit").setup() diff --git a/config/lua/gitsigns-conf.lua b/config/lua/gitsigns-conf.lua deleted file mode 100644 index 8604d88..0000000 --- a/config/lua/gitsigns-conf.lua +++ /dev/null @@ -1,32 +0,0 @@ -require('gitsigns').setup{ - signs = { - add = { text = '✓'}, - change = { text = '↔'}, - delete = { text = '✗'}, - }, - signcolumn = auto, - on_attach = function() - vim.wo.signcolumn = "yes" - vim.cmd [[ hi SignColumn ctermbg=none]] - vim.cmd [[ hi GitSignsAdd ctermbg=none]] - vim.cmd [[ hi GitSignsDelete ctermbg=none]] - vim.cmd [[ hi GitSignsChange ctermbg=none]] - end -} - -require("neogit").setup({ - disable_context_highlighting = true -}) -vim.cmd [[ hi DiffAdd ctermbg=none ]] -vim.cmd [[ hi DiffDelete ctermbg=none ]] -vim.cmd [[ hi DiffContext ctermbg=none ]] -vim.cmd [[ hi NeogitHunkHeader ctermbg=none ]] -vim.cmd [[ hi NeogitHunkHeader ctermbg=none ]] - -require("rose-pine").setup({ - variant = "moon", - disable_background = true, - disable_float_background = true -}) - -vim.cmd.colorscheme "rose-pine" diff --git a/config/lua/mini-conf.lua b/config/lua/mini-conf.lua index 9a8da39..5d476fa 100644 --- a/config/lua/mini-conf.lua +++ b/config/lua/mini-conf.lua @@ -1,6 +1,46 @@ +-- gc gcc require('mini.comment').setup() +-- alt hjkl require('mini.move').setup() + +-- Add surrounding with sa +-- Delete surrounding with sd. +-- Replace surrounding with sr. +-- Find surrounding with sf or sF (move cursor right or left). +-- Highlight surrounding with sh. +-- 'f' - function call (string of alphanumeric symbols or '_' or '.' followed by balanced '()'). In "input" finds function call, in "output" prompts user to enter function name. +-- 't' - tag. In "input" finds tag with same identifier, in "output" prompts user to enter tag name. +-- All symbols in brackets '()', '[]', '{}', '<>". +-- '?' - interactive. Prompts user to enter left and right parts. require('mini.surround').setup() + +-- :Trim +require('mini.trailspace').setup() +vim.api.nvim_create_user_command('Trim', + function() + require("mini.trailspace").trim() + end, {} +) + +-- prefix \ +-- `b` - |'background'|. +-- `c` - |'cursorline'|. +-- `C` - |'cursorcolumn'|. +-- `d` - diagnostic (via |vim.diagnostic.enable()| and |vim.diagnostic.disable()|). +-- `h` - |'hlsearch'| (or |v:hlsearch| to be precise). +-- `i` - |'ignorecase'|. +-- `l` - |'list'|. +-- `n` - |'number'|. +-- `r` - |'relativenumber'|. +-- `s` - |'spell'|. +-- `w` - |'wrap'|. +require('mini.basics').setup({ + mappings = { + windows = true + } +}) + +-- gS require('mini.splitjoin').setup({ detect = { separator = '[,;\n]' @@ -10,6 +50,8 @@ require('mini.splitjoin').setup({ require('mini.pairs').setup() vim.cmd([[ hi MiniCursorwordCurrent ctermfg=240 ]]) +-- f F t T +require('mini.jump').setup() require('mini.jump2d').setup({ mappings = { start_jumping = 's' } }) diff --git a/config/lua/nvim-conf.lua b/config/lua/nvim-conf.lua index be99a74..bd2be05 100644 --- a/config/lua/nvim-conf.lua +++ b/config/lua/nvim-conf.lua @@ -1,74 +1,49 @@ --- vim settings +-- vim settings ++ mini.nvim.basics ---------------------------------------- -vim.opt.autoindent = true -vim.opt.background = "light" vim.opt.backspace = "indent,eol,start" -vim.opt.backup = false -vim.opt.breakindent = true vim.opt.clipboard = "unnamedplus" -- use system clipboard vim.opt.completeopt = "menuone" -vim.opt.cursorline = true vim.opt.expandtab = true -- insert tabs as spaces -vim.opt.guicursor = "" -- fixes alacritty changing cursor -vim.opt.hidden = true -- dont save when switching buffers -vim.opt.hlsearch = true -vim.opt.ignorecase = true -- ignore case in searches vim.opt.inccommand = "split" -- incremental live completion -vim.opt.incsearch = true vim.opt.laststatus = 1 vim.opt.list = true vim.opt.listchars:append("trail:·") vim.opt.listchars:append("leadmultispace:╎ ") -vim.opt.mouse = "a" vim.opt.nrformats:append("alpha") -- let Ctrl-a do letters as well -vim.opt.number = true -vim.opt.pastetoggle = "" vim.opt.path:append("**") -- enable fuzzy :find ing vim.opt.relativenumber = true vim.opt.shadafile = "NONE" -- disable shada vim.opt.shiftwidth = 0 -- >> shifts by tabstop vim.opt.showmatch = true -- highlight matching brackets -vim.opt.signcolumn= "number" -vim.opt.smartcase = true -- unless capital query -vim.opt.smartindent = true -- indent according to lang +vim.opt.showmode = true vim.opt.softtabstop = -1 -- backspace removes tabstop -vim.opt.splitbelow = true -vim.opt.splitright = true vim.opt.swapfile = false vim.opt.tabstop = 4 -- 4 space tabs -vim.opt.termguicolors = true -vim.opt.undofile = true -- enable auto save of undos vim.opt.updatetime = 250 -- decrease update time vim.opt.virtualedit = "onemore" -vim.opt.wildmenu = true -vim.g.netrw_banner = 0 -- disable annoying banner -vim.g.netrw_altv = 1 -- open splits to the right -vim.g.netrw_liststyle = 3 -- tree view vim.g.fzf_layout = { window = { width = 0.9, height = 0.6 } } vim.g.indent_blankline_use_treesitter = true --- highlight indents -vim.cmd([[ hi Whitespace ctermfg=240 ]]) --- highlight floats +-- no highlight floats vim.cmd([[ hi NormalFloat ctermbg=none ]]) + -- mappings ---------------------------------------- local remap = function(type, key, value) vim.api.nvim_set_keymap(type,key,value,{noremap = true, silent = true}); end + remap("i", "wq", "l") remap("v", "wq", "l") remap("n","gr", "gT") -remap("i", "{", "{}O") -remap("i", "(", "()O") -remap("n", "", "nohlsearchdiffupdate") remap("n","n", "nzz") remap("n", "N", "Nzz") remap("n", "Y", "y$") remap("n","[", ":put!=repeat([''],v:count)']+1") remap("n","]", ":put =repeat([''],v:count)'[-1") +remap("n","M", "m0i`0") -- autocmd ---------------------------------------- @@ -77,20 +52,3 @@ vim.api.nvim_create_autocmd("VimEnter", { command = "silent !mkdir -p " .. undopath, group = vim.api.nvim_create_augroup("Init", {}), }) - -local toggle_rel_num = vim.api.nvim_create_augroup("ToggleRelNum", {}) -vim.api.nvim_create_autocmd("InsertEnter", { - command = "set norelativenumber", - group = toggle_rel_num, -}) -vim.api.nvim_create_autocmd("InsertLeave", { - command = "set relativenumber", - group = toggle_rel_num, -}) -vim.api.nvim_create_autocmd("TextYankPost", { - callback = function() - vim.highlight.on_yank({ higroup = "Visual" }) - end, - group = vim.api.nvim_create_augroup("YankHighlight", {}), -}) - diff --git a/config/lua/oil-conf.lua b/config/lua/oil-conf.lua index 8085f83..80cada3 100644 --- a/config/lua/oil-conf.lua +++ b/config/lua/oil-conf.lua @@ -11,4 +11,4 @@ oil.setup({ ["wq"] = "actions.close" } }) -vim.keymap.set("n", "c", oil.open, {noremap = true, silent = true}); +vim.keymap.set("n", "c", oil.toggle_float, {noremap = true, silent = true}); diff --git a/config/lua/telescope-conf.lua b/config/lua/telescope-conf.lua index 6b23bbc..08d2b13 100644 --- a/config/lua/telescope-conf.lua +++ b/config/lua/telescope-conf.lua @@ -5,11 +5,10 @@ vim.keymap.set("n", "fg", telescope.git_files, {noremap = true, silent = 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", "fd", telescope.lsp_definitions, {noremap = true, silent = true}) vim.keymap.set("n", "", 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}) --- fix highlighting -vim.cmd([[ hi telescopeselection ctermfg=242 ctermbg=252 ]]) local telescope = require("telescope") telescope.setup({ @@ -32,20 +31,11 @@ telescope.setup({ mappings = { i = { ["wq"] = require("telescope.actions").close, + [""] = require("telescope.actions").close, [""] = require("telescope.actions").move_selection_previous, [""] = require("telescope.actions").move_selection_next, }, }, }, - pickers = { - find_files = { - hidden = true, - find_command = { 'rg', '--files', '--iglob', '!.git', '--hidden' } - }, - git_files = { - hidden = true, - find_command = { 'rg', '--files', '--iglob', '!.git', '--hidden' } - }, - } }) telescope.load_extension("fzf") diff --git a/config/lua/toggleterm-conf.lua b/config/lua/toggleterm-conf.lua index 0b066f9..49ac716 100644 --- a/config/lua/toggleterm-conf.lua +++ b/config/lua/toggleterm-conf.lua @@ -1,5 +1,4 @@ require("toggleterm").setup{ - open_mapping = [[t]], - shade_terminals = true, + open_mapping = [[]], size = vim.o.lines * 0.4 } diff --git a/config/minimal-init.lua b/config/minimal-init.lua index 80bd323..c15c163 100644 --- a/config/minimal-init.lua +++ b/config/minimal-init.lua @@ -1,6 +1,8 @@ -require("nvim-conf") -require("telescope-conf") -require("toggleterm-conf") +require("colors") require("mini-conf") -require("gitsigns-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.nix b/flake.nix index 4ce672a..c95e387 100644 --- a/flake.nix +++ b/flake.nix @@ -29,25 +29,25 @@ vimAlias = true; withRuby = false; withPython3 = false; - extraMakeWrapperArgs = ''--prefix PATH : "${pkgs.lib.makeBinPath dependancies}"''; }; dependancies = with pkgs; [ ripgrep + lazygit ]; full-dependancies = with pkgs; [ - go gopls - ]; + ] ++ dependancies; neovim-with-deps = recursiveMerge [ pkgs.neovim-unwrapped { buildInputs = dependancies; } ]; neovim-with-full-deps = recursiveMerge [ pkgs.neovim-unwrapped - { buildInputs = dependancies ++ full-dependancies; } + { buildInputs = full-dependancies; } ]; in rec { packages.full = pkgs.wrapNeovim neovim-with-full-deps (base // { + extraMakeWrapperArgs = ''--prefix PATH : "${pkgs.lib.makeBinPath full-dependancies}"''; configure = { customRC = '' @@ -64,6 +64,7 @@ }; }); packages.minimal = pkgs.wrapNeovim neovim-with-deps (base // { + extraMakeWrapperArgs = ''--prefix PATH : "${pkgs.lib.makeBinPath dependancies}"''; configure = { customRC = ''