From 72a286eecb8bbbf14d216f1bbf6d099c55edd8e7 Mon Sep 17 00:00:00 2001 From: azpsen Date: Wed, 31 Jan 2024 12:00:36 -0600 Subject: [PATCH] plugin and keybind updates --- .config/nvim/init.lua | 77 +++++++++++++++++++++++++++++---- .config/nvim/lua/treesitter.lua | 18 ++++++-- 2 files changed, 84 insertions(+), 11 deletions(-) diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index a3e026a..8ab57a9 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -1,3 +1,7 @@ +-------------------------------------------------- +-- BASIC OPTIONS -- +-------------------------------------------------- + vim.g.loaded_netrw = 1 vim.g.loaded_netrwPlugin = 1 @@ -13,8 +17,8 @@ vim.opt.completeopt = noinsert,menuone,noselect -- enable line under/around cursor vim.opt.cursorline = true --- don't require writing files when changin buffers -vim.opt.hidden = true +-- don't require writing files when changing buffers +vim.cmd("set hidden") -- show find/replace preview in split window vim.opt.inccommand = split @@ -41,6 +45,10 @@ vim.cmd("set nocompatible") vim.g.mapleader = " " vim.keymap.set('n', '', '') +-------------------------------------------------- +-- PLUGINS -- +-------------------------------------------------- + -- initialize lazy plugin manager local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then @@ -64,11 +72,19 @@ require("lazy").setup({ { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", + event = { "BufReadPre", "BufNewFile" }, }, -- rainbow delimiters for treesitter "hiphish/rainbow-delimiters.nvim", + -- indent guide lines + { + "lukas-reineke/indent-blankline.nvim", + main = "ibl", + opts = {}, + }, + -- fast comment/uncomment { "numToStr/Comment.nvim", @@ -104,9 +120,9 @@ require("lazy").setup({ }, -- auto match bracket/parenthesis/quote pairs - "jiangmiao/auto-pairs", + "tmsvg/pear-tree", - -- show colors inline + -- show css colors inline "ap/vim-css-color", -- display git add/remove/blame info next to line numbers @@ -129,11 +145,53 @@ require("lazy").setup({ }, }) +-------------------------------------------------- +-- PLUGIN OPTIONS -- +-------------------------------------------------- + -- set theme vim.opt.termguicolors = true -vim.cmd([[colorscheme everforest]]) +vim.cmd([[ colorscheme everforest ]]) vim.opt.background = "dark" +-- add auto-closers for mult-character pairs +vim.g.pear_tree_pairs = { + ['/*'] = { closer = '*/' }, + ['' }, + ['('] = {closer = ')'}, + ['['] = {closer = ']'}, + ['{'] = {closer = '}'}, + ["'"] = {closer = "'"}, + ['"'] = {closer = '"'}, +} + +vim.g.pear_tree_smart_openers = 1 +vim.g.pear_tree_smart_closers = 1 +vim.g.pear_tree_smart_backspace = 1 + +-- set rainbow delimiter colors +require("rainbow-delimiters.setup").setup { + highlight = { + 'RainbowDelimiterGreen', + 'RainbowDelimiterBlue', + 'RainbowDelimiterYellow', + 'RainbowDelimiterOrange', + 'RainbowDelimiterViolet', + 'RainbowDelimiterCyan', + 'RainbowDelimiterRed', + } +} + +-- set indent guide lines to highlight scope +require("ibl").setup() + +-- import treesitter config from ~/.config/nvim/lua/treesitter.lua +require("treesitter") + +-------------------------------------------------- +-- KEYBINDS -- +-------------------------------------------------- + -- open sidebar file tree with e vim.keymap.set('n', 'e', 'NvimTreeToggle') @@ -145,8 +203,11 @@ vim.keymap.set('n', 'bn', 'bnext') vim.keymap.set('n', 'bb', 'bprevious') vim.keymap.set('n', 'bc', 'bd') --- vim.api.nvim_create_user_command('w!!', 'SudaWrite', {}) +-- bind write-as-sudo to :w!! vim.cmd("ca w!! :SudaWrite") --- import treesitter config from ~/.config/nvim/lua/treesitter.lua -require("treesitter") +-- map ctrl-backspace to delete previous word +vim.keymap.set('i', '', '') + +-- map ctrl-delete to delete next word +vim.keymap.set('i', '', 'dw') diff --git a/.config/nvim/lua/treesitter.lua b/.config/nvim/lua/treesitter.lua index 1e4385a..a4f165c 100644 --- a/.config/nvim/lua/treesitter.lua +++ b/.config/nvim/lua/treesitter.lua @@ -7,11 +7,22 @@ end -- configure treesitter treesitter.setup({ -- enable syntax highlighting - highlight = { - enable = true, - }, + highlight = { enable = true }, + -- enable indentation indent = { enable = true }, + + -- enable incremental selection () + incremental_selection = { + enable = true, + keymaps = { + init_selection = "", + node_incremental = "", + scope_incremental = false, + node_decremental = "", + }, + }, + -- ensure these language parsers are installed ensure_installed = { "json", @@ -33,6 +44,7 @@ treesitter.setup({ "regex", "sxhkdrc", "udev", + "requirements", }, -- auto install above language parsers auto_install = true,