Jelajahi Sumber

a lot of git changes

Noah Vogt 3 hari lalu
induk
melakukan
a7f45c7068

+ 1 - 0
dot-config/nvim/coc-settings.json

@@ -1,4 +1,5 @@
 {
+   "semanticTokens.enable": true,
    "codeLens.enable": true,
    "codeLens.position": "eol",
    "coc.preferences.formatOnType": true,

+ 1 - 0
dot-config/nvim/general/auto.vim

@@ -96,3 +96,4 @@ augroup END
 " ugly fix fo the vimspector log file
 augroup fixVimSpectorLogFile
 autocmd User VimspectorDebugEnded call system("mv ~/.vimspector.log " . $XDG_CACHE_HOME."/vim/")
+augroup END

+ 0 - 1
dot-config/nvim/general/basic.vim

@@ -1,6 +1,5 @@
 " set vim paths
 set undodir="~/.cache/vim/undo"
-set runtimepath+="~/.config/vim"
 
 " make :find recursive
 set path+=**

+ 25 - 11
dot-config/nvim/init.vim

@@ -1,38 +1,52 @@
 " noah's $VIMINIT
 
-" get basic (set)tings
+" 1. Essential Neovim 0.11+ fixes and environment setup
+lua << EOF
+-- Ensure site directory is in rtp for Treesitter
+vim.opt.runtimepath:prepend(vim.fn.expand("~/.local/share/nvim/site"))
+vim.opt.runtimepath:prepend(vim.fn.stdpath("data") .. "/site")
+
+-- Disable built-in LSP mappings (using native LSP in lsp.lua)
+local builtins = { 'grn', 'gra', 'grr', 'gri', 'grt' }
+for _, k in ipairs(builtins) do
+  pcall(vim.keymap.del, 'n', k, { builtin = true })
+end
+
+-- Disable built-in commentary to favor tpope/vim-commentary
+vim.g.loaded_commentary = 1
+EOF
+
+" 2. get basic (set)tings
 source $XDG_CONFIG_HOME/nvim/general/basic.vim
 " get plugins
 source $XDG_CONFIG_HOME/nvim/vim-plug/plugins.vim
-" get plugin configs
+
+" 3. get plugin configs
 source $XDG_CONFIG_HOME/nvim/plug-conf/fern.vim
 source $XDG_CONFIG_HOME/nvim/plug-conf/emmet.vim
 source $XDG_CONFIG_HOME/nvim/plug-conf/ctrlp.vim
 source $XDG_CONFIG_HOME/nvim/plug-conf/sneak.vim
 source $XDG_CONFIG_HOME/nvim/plug-conf/airline.vim
 source $XDG_CONFIG_HOME/nvim/plug-conf/startify.vim
-source $XDG_CONFIG_HOME/nvim/plug-conf/editorconfig.vim
 source $XDG_CONFIG_HOME/nvim/plug-conf/wilder.vim
 source $XDG_CONFIG_HOME/nvim/plug-conf/vcoolor.vim
 source $XDG_CONFIG_HOME/nvim/plug-conf/better-whitespace.vim
 source $XDG_CONFIG_HOME/nvim/plug-conf/vimspector.vim
+
+" 4. Lua configurations
 lua require 'treesitter'
+lua require 'lsp'
+lua require 'gitsigns-conf'
 lua require 'indent-blankline'
 lua require 'telescope'
 lua require 'whichkey'
 lua require 'colorizer'.setup()
-" get theme
+
+" 5. get theme, keybinds, and autocommands
 source $XDG_CONFIG_HOME/nvim/theme/theme.vim
-" get keybinds
 source $XDG_CONFIG_HOME/nvim/keys/bindings.vim
 source $XDG_CONFIG_HOME/nvim/keys/tex-macros.vim
-" get autocommands
 source $XDG_CONFIG_HOME/nvim/general/auto.vim
 
-" fix black (python formatter)
-let g:black_virtualenv = ''
-let g:black_use_virtualenv = 0
-
-
 " enable intelligent indentation
 filetype plugin indent on

+ 16 - 58
dot-config/nvim/keys/bindings.vim

@@ -43,28 +43,24 @@ vnoremap <leader>Y "+Y
 nmap <leader>p "+p
 nmap <leader>P "+P
 
-" Use <c-space> to trigger completion.
-inoremap <silent><expr> <c-space> coc#refresh()
-
 " Use `[g` and `]g` to navigate diagnostics
-nmap <silent> [g <Plug>(coc-diagnostic-prev)
-nmap <silent> ]g <Plug>(coc-diagnostic-next)
+nnoremap <silent> [g <cmd>lua vim.diagnostic.goto_prev()<CR>
+nnoremap <silent> ]g <cmd>lua vim.diagnostic.goto_next()<CR>
 
-" Remap keys for gotos
-nmap <silent> gd <Plug>(coc-definition)
-nmap <silent> gy <Plug>(coc-type-definition)
-nmap <silent> gi <Plug>(coc-implementation)
-nmap <silent> gr <Plug>(coc-references)
+" Use <leader>d to manually open diagnostic popup
+nnoremap <leader>d <cmd>lua vim.diagnostic.open_float()<CR>
 
-nmap <leader>rn <Plug>(coc-rename)
+" Remap keys for gotos
+nnoremap <silent> gd <cmd>lua vim.lsp.buf.definition()<CR>
+nnoremap <silent> gy <cmd>lua vim.lsp.buf.type_definition()<CR>
+nnoremap <silent> gi <cmd>lua vim.lsp.buf.implementation()<CR>
+nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR>
 
-vmap <leader>f  <Plug>(coc-format-selected)
+nnoremap <leader>rn <cmd>lua vim.lsp.buf.rename()<CR>
 
 " switch (back and forth) to (and from) the last opened file
 nmap <leader>b <c-^><cr>
 
-nmap <leader>f  <Plug>(coc-format-selected)
-
 noremap <silent> <Leader>f :Fern . -drawer -reveal=% -toggle -width=35<CR><C-w>=
 
 function! FernInit() abort
@@ -97,14 +93,9 @@ function! FernInit() abort
   nmap <buffer><nowait> > <Plug>(fern-action-enter)
 endfunction
 
-" use (shift-)TAB to autocomplete w/ coc
-inoremap <expr> <Tab> coc#pum#visible() ? coc#pum#next(1) : "\<Tab>"
-inoremap <expr> <S-Tab> coc#pum#visible() ? coc#pum#prev(1) : "\<S-Tab>"
-" use Ctrl + Space to trigger autocomplete box
-inoremap <silent><expr> <c-space> coc#refresh()
-
 " Use `:Format` to format current buffer
-command! -nargs=0 Format :call CocAction('format')
+command! -nargs=0 Format :lua require("conform").format()
+cabbrev Black Format
 
 " Go to tab by number
 noremap <leader>1 1gt
@@ -118,19 +109,6 @@ noremap <leader>8 8gt
 noremap <leader>9 9gt
 noremap <leader>0 :tablast<cr>
 
-" Applying codeAction to the selected region.
-" Example: `<leader>aap` for current paragraph
-xmap <leader>a  <Plug>(coc-codeaction-selected)
-nmap <leader>a  <Plug>(coc-codeaction-selected)
-
-" Remap keys for applying codeAction to the current buffer.
-nmap <leader>ac  <Plug>(coc-codeaction)
-" Apply AutoFix to problem on the current line.
-nmap <leader>qf  <Plug>(coc-fix-current)
-
-" Run the Code Lens action on the current line.
-nmap <leader>cl  <Plug>(coc-codelens-action)
-
 " auto center view when walking through searches
 nnoremap n nzzzv
 nnoremap N Nzzzv
@@ -141,15 +119,6 @@ nmap <leader>g :TagbarToggle<CR>
 " please write
 cmap w!! w !doas tee %
 
-" navigate chunks of current buffer
-nmap [h <Plug>(coc-git-prevchunk)
-nmap ]h <Plug>(coc-git-nextchunk)
-
-" navigate conflicts of current buffer
-nmap [c <Plug>(coc-git-prevconflict)
-nmap ]c <Plug>(coc-git-nextconflict)
-
-
 function! WinMove(key)
     let t:curwin = winnr()
     exec "wincmd ".a:key
@@ -189,25 +158,14 @@ nnoremap <leader>cw :StripWhitespace<CR>
 nnoremap ]w :NextTrailingWhitespace<CR>
 nnoremap [w :PrevTrailingWhitespace<CR>
 
-" trigger snippet expand
-imap <C-l> <Plug>(coc-snippets-expand)
-
-" select text for visual placeholder of snippet
-vmap <C-j> <Plug>(coc-snippets-select)
-
-" jump to next placeholder
-let g:coc_snippet_next = '<c-n>'
-
-" jump to previous placeholder
-let g:coc_snippet_prev = '<c-b>'
-
-" for both expand and jump (make expand higher priority.)
-imap <C-j> <Plug>(coc-snippets-expand-jump)
+" spell jump
+nnoremap ]s ]s
+nnoremap [s [s
 
 nnoremap <leader>da :call vimspector#Launch()<CR>
 nnoremap <leader>dc :call GotoWindow(g:vimspector_session_windows.code)<CR>
 nnoremap <leader>dv :call GotoWindow(g:vimspector_session_windows.variables)<CR>
-nnoremap <leader>dw :call GotoWindow(g:vimspector_session_windows.watches)<CR>
+nnoremap <leader>dw :call vimspector#ClearBreakpoints()<CR>
 nnoremap <leader>ds :call GotoWindow(g:vimspector_session_windows.stack_trace)<CR>
 nnoremap <leader>do :call GotoWindow(g:vimspector_session_windows.output)<CR>
 nnoremap <leader>di :call AddToWatch()<CR>

+ 108 - 0
dot-config/nvim/lua/lsp.lua

@@ -0,0 +1,108 @@
+local blink = require('blink.cmp')
+local lspconfig = require('lspconfig')
+
+-- 1. Setup blink.cmp
+blink.setup({
+  keymap = { 
+    preset = 'default',
+    ['<CR>'] = { 'accept', 'fallback' },
+    ['<Tab>'] = { 'select_next', 'fallback' },
+    ['<S-Tab>'] = { 'select_prev', 'fallback' },
+  },
+  snippets = { preset = 'luasnip' },
+  appearance = {
+    use_nvim_cmp_as_default = true,
+    nerd_font_variant = 'mono'
+  },
+  sources = {
+    default = { 'lsp', 'path', 'buffer', 'snippets' },
+  },
+  signature = { enabled = true }
+})
+
+-- Load custom snippets from ~/.config/nvim/snips
+require("luasnip.loaders.from_vscode").lazy_load({ paths = { "~/.config/nvim/snips" } })
+require("luasnip.loaders.from_snipmate").lazy_load({ paths = { "~/.config/nvim/snips" } })
+
+-- 2. Define on_attach
+local on_attach = function(client, bufnr)
+  -- Keymaps are handled globally in bindings.vim
+end
+
+-- 3. Configure Servers using Neovim 0.11 API where possible
+local capabilities = blink.get_lsp_capabilities()
+
+-- Basic servers
+local servers = { 'pyright', 'bashls', 'html', 'cssls', 'jdtls' }
+for _, server in ipairs(servers) do
+  vim.lsp.config(server, {
+    capabilities = capabilities,
+    on_attach = on_attach,
+  })
+  vim.lsp.enable(server)
+end
+
+-- Custom Veridian setup (Verilog)
+vim.lsp.config('veridian', {
+  cmd = { 'veridian' },
+  filetypes = { 'systemverilog', 'verilog' },
+  capabilities = capabilities,
+  on_attach = on_attach,
+})
+vim.lsp.enable('veridian')
+
+-- Custom CCLS setup (C/C++)
+vim.lsp.config('ccls', {
+  init_options = {
+    cache = { directory = "/tmp/ccls-cache" },
+    client = { snippetSupport = true }
+  },
+  root_patterns = { ".ccls-root", "compile_commands.json", ".git" },
+  capabilities = capabilities,
+  on_attach = on_attach,
+})
+vim.lsp.enable('ccls')
+
+-- 4. Formatting (Replaces coc's formatOnSave)
+local conform = require("conform")
+conform.setup({
+  formatters_by_ft = {
+    python = { "black" },
+    java = { "google-java-format" },
+    sh = { "shfmt" },
+  },
+  format_on_save = {
+    timeout_ms = 500,
+    lsp_fallback = true,
+  },
+})
+
+-- 5. Linting (Replaces coc's pylint and shellcheck)
+local lint = require("lint")
+lint.linters_by_ft = {
+  python = { "pylint" },
+  sh = { "shellcheck" },
+}
+vim.api.nvim_create_autocmd({ "BufWritePost" }, {
+  callback = function()
+    lint.try_lint()
+  end,
+})
+
+-- 6. Diagnostics config
+vim.diagnostic.config({
+  virtual_text = true,
+  signs = true,
+  update_in_insert = false,
+  underline = true,
+  severity_sort = true,
+  float = { border = 'rounded' },
+})
+
+-- 7. Diagnostic & Spell Highlighting
+vim.api.nvim_set_hl(0, 'DiagnosticUnderlineError', { undercurl = true, sp = '#ff0000' })
+vim.api.nvim_set_hl(0, 'DiagnosticUnderlineWarn',  { undercurl = true, sp = '#ff8800' })
+vim.api.nvim_set_hl(0, 'SpellBad',   { undercurl = true, sp = '#ffff00' })
+vim.api.nvim_set_hl(0, 'SpellCap',   { undercurl = true, sp = '#ffff00' })
+vim.api.nvim_set_hl(0, 'SpellLocal', { undercurl = true, sp = '#ffff00' })
+vim.api.nvim_set_hl(0, 'SpellRare',  { undercurl = true, sp = '#ffff00' })

+ 31 - 135
dot-config/nvim/lua/treesitter.lua

@@ -1,137 +1,33 @@
--- 1. Use the configs module if it exists, otherwise use the new core
-local ok, configs = pcall(require, "nvim-treesitter.configs")
-
-if ok then
-    -- If you are on a version that still has configs
-    configs.setup({
-        ensure_installed = {
-        "c",
-        "lua",
-        "java",
-        "python",
-        "bash",
-        "html",
-        "css",
-        "javascript",
-        "bibtex",
-        "cmake",
-        "cpp",
-        "latex",
-        "perl",
-        "regex",
-        "toml",
-        "yaml"
-        },
-        highlight = { enable = true },
-    })
-else
-    -- THE NEW WAY: If configs is missing, use the internal install module
-    local install = require('nvim-treesitter.install')
-    
-    -- This replaces ensure_installed
-    install.prefer_git = true
-    -- To install specific parsers via code:
-    -- require('nvim-treesitter.command').smart_install({ "lua", "python" })
-    
-    -- Enable highlighting globally the new Neovim way
-    vim.api.nvim_create_autocmd('FileType', {
-        callback = function()
-            local lang = vim.treesitter.language.get_lang(vim.bo.filetype)
-            if lang then
-                pcall(vim.treesitter.start)
-            end
-        end,
-    })
+local status, configs = pcall(require, "nvim-treesitter.configs")
+if not status then
+    return
 end
--- local ts = require('nvim-treesitter')
-
--- -- 1. Manually install parsers (replaces ensure_installed)
--- ts.install({
---         "c",
---         "lua",
---         "java",
---         "python",
---         "bash",
---         "html",
---         "css",
---         "javascript",
---         "bibtex",
---         "cmake",
---         "cpp",
---         "latex",
---         "perl",
---         "regex",
---         "toml",
---         "yaml"
--- })
-
--- -- 2. Enable Highlighting (Now done via Neovim API, not Treesitter setup)
--- vim.api.nvim_create_autocmd('FileType', {
---   callback = function()
---     pcall(vim.treesitter.start)
---   end,
--- })
--- require'nvim-treesitter.configs'.setup {
---     ensure_installed = {
---         "c",
---         "lua",
---         "java",
---         "python",
---         "bash",
---         "html",
---         "css",
---         "javascript",
---         "bibtex",
---         "cmake",
---         "cpp",
---         "latex",
---         "perl",
---         "regex",
---         "toml",
---         "yaml"
---     },
-
---   -- Install parsers synchronously (only applied to `ensure_installed`)
---   sync_install = false,
-
---   highlight = {
---     enable = true,
-
---     disable = {"rust"},
-
---     -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
---     -- Using this option may slow down your editor, and you may see some duplicate highlights.
---     additional_vim_regex_highlighting = false,
---     },
-
---     refactor = {
---         highlight_definitions = {
---             enable = true,
---             -- Set to false if you have an `updatetime` of ~100.
---             clear_on_cursor_move = false,
---         },
-
---         highlight_current_scope = { 
---             -- very annonying per default, maybe has its use when its unclear
---             enable = false
---         },
-
---         smart_rename = {
---             enable = true,
---             keymaps = {
---                 smart_rename = "grr",
---             },
---         },
 
---         navigation = {
---             enable = true,
---             keymaps = {
---                 goto_definition = "gnd",
---                 list_definitions = "gnD",
---                 list_definitions_toc = "gO",
---                 goto_next_usage = "<A-n>",
---                 goto_previous_usage = "<A-p>",
---             },
---         },
---     },
--- }
+require('nvim-treesitter.install').prefer_git = true
+
+configs.setup {
+    ensure_installed = {
+        "c", "lua", "java", "python", "bash", "html", "css", "javascript",
+        "bibtex", "cmake", "cpp", "latex", "perl", "regex", "toml", "yaml"
+    },
+
+    highlight = {
+        enable = true,
+        -- Merges Treesitter with Regex highlighting for maximum color richness
+        additional_vim_regex_highlighting = { "python" },
+    },
+
+    indent = {
+        enable = true
+    },
+}
+
+-- Force Treesitter to start for major filetypes to bypass any legacy syntax overrides
+vim.api.nvim_create_autocmd({ "FileType" }, {
+    callback = function()
+        local lang = vim.treesitter.language.get_lang(vim.bo.filetype)
+        if lang then
+            pcall(vim.treesitter.start)
+        end
+    end,
+})

+ 19 - 53
dot-config/nvim/lua/whichkey.lua

@@ -1,57 +1,23 @@
-require("which-key").setup {
-  plugins = {
-    marks = true, -- shows a list of your marks on ' and `
-    registers = true, -- shows your registers on " in NORMAL or <C-r> in INSERT mode
-    spelling = {
-      enabled = true, -- show WhichKey when pressing z=
-      suggestions = 50, -- amount of shown suggestions
-    },
+local wk = require("which-key")
 
-    -- the presets plugin, adds help for a bunch of default keybindings in Neovim
-    presets = {
-      operators = true, -- adds help for operators like d, y, ... and registers them for motion / text object completion
-      motions = true, -- adds help for motions
-      text_objects = true, -- help for text objects triggered after entering an operator
-      windows = true, -- default bindings on <c-w>
-      nav = true, -- misc bindings to work with windows
-      z = true, -- bindings for folds, spelling and others prefixed with z
-      g = true, -- bindings for prefixed with g
-    },
+wk.setup({
+  preset = "classic",
+  win = {
+    no_overlap = true,
+    padding = { 1, 2 }, -- top, right, bottom, left
+    title = true,
+    title_pos = "center",
+    zindex = 1000,
   },
-  -- add operators that will trigger motion and text object completion
-  -- to enable all native operators, set the preset / operators plugin above
-  -- operators = { gc = "Comments" },
-  icons = {
-    breadcrumb = "»", -- symbol used in the command line area that shows your active key combo
-    separator = "➜", -- symbol used between a key and it's label
-    group = "+", -- symbol prepended to a group
-  },
-  -- popup_mappings = {
-  --   scroll_down = '<c-d>', -- binding to scroll down inside the popup
-  --   scroll_up = '<c-u>', -- binding to scroll up inside the popup
-  -- },
-  -- window = {
-  --   border = "none", -- none, single, double, shadow
-  --   position = "bottom", -- bottom, top
-  --   margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left]
-  --   padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left]
-  --   winblend = 0
-  -- },
   layout = {
-    height = { min = 4, max = 25 }, -- min and max height of the columns
-    width = { min = 20, max = 50 }, -- min and max width of the columns
-    spacing = 3, -- spacing between columns
-    align = "left", -- align columns left, center or right
+    width = { min = 20, max = 50 },
+    spacing = 3,
+    align = "left",
+  },
+  icons = {
+    breadcrumb = "»",
+    separator = "➜",
+    group = "+",
   },
-  -- ignore_missing = false, -- enable this to hide mappings for which you didn't specify a label
-  -- hidden = { "<silent>", "<cmd>", "<Cmd>", "<CR>", "call", "lua", "^:", "^ "}, -- hide mapping boilerplate
-  show_help = true, -- show help message on the command line when the popup is visible
-  -- triggers = "auto", -- automatically setup triggers
-  -- triggers_blacklist = {
-  --   -- list of mode / prefixes that should never be hooked by WhichKey
-  --   -- this is mostly relevant for key maps that start with a native binding
-  --   -- most people should not need to change this
-  --   i = { "j", "k" },
-  --   v = { "j", "k" },
-  -- },
-}
+  show_help = true,
+})

+ 35 - 5
dot-config/nvim/theme/theme.vim

@@ -1,7 +1,37 @@
-colorscheme onedark
+lua << EOF
+require('onedark').setup {
+    style = 'darker',
+    transparent = false,
+    term_colors = true,
+    code_style = {
+        comments = 'italic',
+        keywords = 'none',
+        functions = 'none',
+        strings = 'none',
+        variables = 'none'
+    },
+}
+require('onedark').load()
+
+-- Force colors for diagnostics and spell check underlines
+vim.api.nvim_set_hl(0, 'DiagnosticUnderlineError', { undercurl = true, sp = '#ff0000' })
+vim.api.nvim_set_hl(0, 'DiagnosticUnderlineWarn',  { undercurl = true, sp = '#ff8800' })
+vim.api.nvim_set_hl(0, 'SpellBad',   { undercurl = true, sp = '#ffff00' })
+vim.api.nvim_set_hl(0, 'SpellCap',   { undercurl = true, sp = '#ffff00' })
+vim.api.nvim_set_hl(0, 'SpellLocal', { undercurl = true, sp = '#ffff00' })
+vim.api.nvim_set_hl(0, 'SpellRare',  { undercurl = true, sp = '#ffff00' })
+
+-- GitSigns with background colors for better visibility
+-- (Colors adjusted for onedark darker palette)
+vim.api.nvim_set_hl(0, 'GitSignsAdd', { fg = '#98c379', bg = '#2e3f34' })
+vim.api.nvim_set_hl(0, 'GitSignsChange', { fg = '#e5c07b', bg = '#3e3d32' })
+vim.api.nvim_set_hl(0, 'GitSignsDelete', { fg = '#e06c75', bg = '#3f2e2e' })
+
+-- Also color the line numbers for git changes (numhl)
+vim.api.nvim_set_hl(0, 'GitSignsAddNr', { fg = '#98c379', bold = true })
+vim.api.nvim_set_hl(0, 'GitSignsChangeNr', { fg = '#e5c07b', bold = true })
+vim.api.nvim_set_hl(0, 'GitSignsDeleteNr', { fg = '#e06c75', bold = true })
+EOF
+
 let g:airline_theme='onedark'
 set background=dark
-
-" make background transparent
-"hi Normal ctermbg=none
-"hi NonText ctermbg=none

+ 14 - 23
dot-config/nvim/vim-plug/plugins.vim

@@ -12,9 +12,8 @@ function! UpdateRemotePlugins(...)
 call plug#begin('~/.cache/vim/plugged')
 
 " colorshemes
-Plug 'morhetz/gruvbox'
+Plug 'navarasu/onedark.nvim'
 Plug 'itchyny/landscape.vim'
-Plug 'joshdick/onedark.vim'
 
 " fuzzy find files
 Plug 'ctrlpvim/ctrlp.vim'
@@ -30,9 +29,6 @@ Plug 'lambdalisue/glyph-palette.vim'
 " and a floating, scrollable preview window
 Plug 'yuki-yano/fern-preview.vim'
 
-" asynchronous lint engine
-"Plug 'dense-analysis/ale'
-
 " nice statusline for vim
 Plug 'vim-airline/vim-airline'
 " plus themes
@@ -40,22 +36,22 @@ Plug 'vim-airline/vim-airline-themes'
 
 " some git integration
 Plug 'tpope/vim-fugitive'
+Plug 'lewis6991/gitsigns.nvim'
+
+" native LSP support
+Plug 'neovim/nvim-lspconfig'
+" modern completion engine
+Plug 'Saghen/blink.cmp'
+" snippet support
+Plug 'L3MON4D3/LuaSnip'
 
-" intellisense
-Plug 'neoclide/coc.nvim', {'branch': 'release'}
+" formatting and linting
+Plug 'stevearc/conform.nvim'
+Plug 'mfussenegger/nvim-lint'
 
 " auto disable search highlighting
 Plug 'romainl/vim-cool'
 
-" graphical debugger
-"Plug 'puremourning/vimspector'
-
-" use when there are too many parentheses
-"Plug 'kien/rainbow_parentheses.vim'
-
-" auto close pairs, etc.
-Plug 'jiangmiao/auto-pairs'
-
 " easy commenting
 Plug 'tpope/vim-commentary'
 
@@ -78,11 +74,9 @@ Plug 'tpope/vim-surround'
 
 " use treesitter inside nvim
 Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
-" w/ refactoring capabilites
-Plug 'nvim-treesitter/nvim-treesitter-refactor'
 
 " adds indentation guides to all lines
-Plug 'lukas-reineke/indent-blankline.nvim', { 'tag': 'v2.20.8' }
+Plug 'lukas-reineke/indent-blankline.nvim'
 
 " highly extensible fuzzy finder
 Plug 'nvim-telescope/telescope.nvim'
@@ -106,14 +100,11 @@ Plug 'ntpeters/vim-better-whitespace'
 " access an external colorpicker directly from neovim
 Plug 'KabbAmine/vCoolor.vim'
 
-" repo for some code snippets
-Plug 'honza/vim-snippets'
-
 " easier buffer resizing
 Plug 'ahonn/resize.vim'
 
 " fast colorizer
-Plug 'norcalli/nvim-colorizer.lua'
+Plug 'NvChad/nvim-colorizer.lua'
 
 " for android dev
 Plug 'hsanson/vim-android'