From dec61653987f584822f87515281e9f82aaac972f Mon Sep 17 00:00:00 2001 From: ben Date: Sat, 3 May 2025 14:25:55 -0700 Subject: old neovim config --- config/nvim-archive/external_settings/plugins.vim | 536 ++++++++++++++++++++++ 1 file changed, 536 insertions(+) create mode 100644 config/nvim-archive/external_settings/plugins.vim (limited to 'config/nvim-archive/external_settings/plugins.vim') diff --git a/config/nvim-archive/external_settings/plugins.vim b/config/nvim-archive/external_settings/plugins.vim new file mode 100644 index 0000000..131b03d --- /dev/null +++ b/config/nvim-archive/external_settings/plugins.vim @@ -0,0 +1,536 @@ +" https://github.com/junegunn/vim-plug +call plug#begin(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/plugged"')) + + +" <-- Syntax Highlighting--> + Plug 'ap/vim-css-color' " Enable CSS syntax + Plug 'roobert/tailwindcss-colorizer-cmp.nvim' " CSS Colorizer + Plug 'bfrg/vim-cpp-modern' " C/C++ Syntax Highlighting + Plug 'kien/rainbow_parentheses.vim' + Plug 'uiiaoo/java-syntax.vim' " Syntax Highlighting for Java + "Plug 'lukas-reineke/indent-blankline.nvim' + Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} + Plug 'folke/todo-comments.nvim' + " <-- END Syntax High lighting--> + + " <-- Colour Schemes --> + Plug 'NLKNguyen/papercolor-theme' + Plug 'sts10/vim-pink-moon' + Plug 'rafi/awesome-vim-colorschemes' + Plug 'catppuccin/nvim', { 'as': 'catppuccin' } + Plug 'chriskempson/base16-vim' + Plug 'justinmk/vim-syntax-extra' + " <-- END Colour Schemes --> + + " <-- Completion and linting --> + Plug 'neoclide/coc.nvim', {'branch': 'release'} " Auto Completion + Plug 'dense-analysis/ale' " Real time Linting + " Plug 'tpope/vim-surround' " Change what something is surrounded by + Plug 'kylechui/nvim-surround' + Plug 'alvan/vim-closetag' " Close HTML tags + Plug 'gennaro-tedesco/nvim-commaround' " Toggle Comments in visual block + Plug 'roobert/search-replace.nvim' " Replace searched for text + " <-- END Completion and linting --> + + " <-- Navigation --> + "Plug 'ms-jpq/chadtree', {'branch': 'chad', 'do': 'python3 -m chadtree deps'} " File Manager + "Plug 'preservim/nerdtree' " File Manager + ""Plug 'tiagofumo/vim-nerdtree-syntax-highlight' " NERDTree Syntax Addon + Plug 'TheBlob42/drex.nvim' " Directory Explorer + Plug 'elihunter173/dirbuf.nvim' " Directory Buffer + Plug 'mg979/vim-visual-multi', {'branch': 'master'} " More cursers in visual mode + Plug 'junegunn/fzf.vim' + Plug 'nvim-lua/plenary.nvim' + Plug 'nvim-telescope/telescope.nvim' ", { 'tag': '0.1.8' } + Plug 'nvim-tree/nvim-tree.lua' + Plug 's1n7ax/nvim-terminal' + " <-- END Navigation --> + + " <-- MISC --> + " https://github.com/ThePrimeagen/git-worktree.nvim + Plug 'ThePrimeagen/vim-be-good' + " Plug 'ryanoasis/vim-devicons' + Plug 'voldikss/vim-floaterm' " Terminal + Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' } " Live markdown preview in browser + Plug 'strboul/urlview.vim' " Open URLS + Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } + " Plug 'ibhagwan/fzf-lua' + Plug 'vimwiki/vimwiki' " Note taking in vim + Plug 'mbbill/undotree' " Undo history tree + "Plug 'epwalsh/obsidian.nvim' + " <-- END MISC --> + + " <-- Plugin Dependencies --> + Plug 'nvim-lua/plenary.nvim' + " <-- END Plugin Dependencies --> + + " <-- Git Integration --> + Plug 'sindrets/diffview.nvim' + Plug 'lewis6991/gitsigns.nvim' + Plug 'tpope/vim-fugitive' + " <-- END Git Integration --> + + + " <-- Dependencies --> + Plug 'nvim-lua/plenary.nvim' + " <-- END Dependencies --> + + + "https://github.com/Zeioth/compiler.nvim + "https://github.com/rmagatti/goto-preview + "https://github.com/SmiteshP/nvim-navbuddy + + + " + " + " + " + + call plug#end() + + +" <----- Plugin Configs -----> " + + + + + + +" <----- nvim-terminal -----> " +" :lua require('nvim-terminal').setup() + +lua << EOF + + +vim.o.hidden = false +require('nvim-terminal').setup({ + window = { + -- Do `:h :botright` for more information + -- NOTE: width or height may not be applied in some "pos" + position = 'botright', + + -- Do `:h split` for more information + split = 'sp', + + -- Width of the terminal + width = 50, + + -- Height of the terminal + height = 15, + }, + + -- keymap to disable all the default keymaps + disable_default_keymaps = false, + + -- keymap to toggle open and close terminal window + toggle_keymap = ';', + + -- increase the window height by when you hit the keymap + window_height_change_amount = 2, + + -- increase the window width by when you hit the keymap + window_width_change_amount = 2, + + -- keymap to increase the window width + increase_width_keymap = '+', + + -- keymap to decrease the window width + decrease_width_keymap = '-', + + -- keymap to increase the window height + increase_height_keymap = '+', + + -- keymap to decrease the window height + decrease_height_keymap = '-', + + terminals = { + -- keymaps to open nth terminal + {keymap = '1'}, + {keymap = '2'}, + {keymap = '3'}, + {keymap = '4'}, + {keymap = '5'}, + }, + +}) +EOF + +tnoremap +" <----- END nvim-terminal -----> " + + + +lua << EOF +require('gitsigns').setup { + signs = { + add = { text = '┃' }, + change = { text = '┃' }, + delete = { text = '_' }, + topdelete = { text = '‾' }, + changedelete = { text = '~' }, + untracked = { text = '┆' }, + }, + -- ... include other configurations as needed +} +EOF + + +"<----- indent-blankline -----> " +"lua << EOF +"require("ibl").setup() +"EOF + +" au BufEnter *.* :IBLToggleScope +" <----- END indent-blankline -----> " + + +"<----- vim-surround -----> " +lua << EOF +require("nvim-surround").setup() +EOF +"<----- END vim-surround -----> " + + +" <----- todo-comments -----> " +lua << EOF +require('todo-comments').setup { + signs = true, -- show icons in the signs column + sign_priority = 8, -- sign priority + -- keywords recognized as todo comments + keywords = { + FIX = { + icon = " ", -- icon used for the sign, and in search results + color = "error", -- can be a hex color, or a named color (see below) + alt = { "FIXME", "BUG", "FIXIT", "ISSUE"}, -- a set of other keywords that all map to this FIX keywords + -- signs = false, -- configure signs for some keywords individually + }, + TODO = { icon = " ", color = "info" }, + HACK = { icon = " ", color = "warning" }, + WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } }, + PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } }, + NOTE = { icon = " ", color = "hint", alt = { "INFO" } }, + TEST = { icon = "⏲ ", color = "test", alt = { "TESTING", "PASSED", "FAILED" } }, + DEBUG = { icon = "🐛", color = "info"}, + FIX = { icon = "🔧", color = "#FF00FF"}, + }, + gui_style = { + fg = "NONE", -- The gui style to use for the fg highlight group. + bg = "BOLD", -- The gui style to use for the bg highlight group. + }, + merge_keywords = true, -- when true, custom keywords will be merged with the defaults + -- highlighting of the line containing the todo comment + -- * before: highlights before the keyword (typically comment characters) + -- * keyword: highlights of the keyword + -- * after: highlights after the keyword (todo text) + highlight = { + multiline = true, -- enable multine todo comments + multiline_pattern = "^.", -- lua pattern to match the next multiline from the start of the matched keyword + multiline_context = 10, -- extra lines that will be re-evaluated when changing a line + before = "", -- "fg" or "bg" or empty + keyword = "wide", -- "fg", "bg", "wide", "wide_bg", "wide_fg" or empty. (wide and wide_bg is the same as bg, but will also highlight surrounding characters, wide_fg acts accordingly but with fg) + after = "fg", -- "fg" or "bg" or empty + pattern = [[.*<(KEYWORDS)\s*:]], -- pattern or table of patterns, used for highlighting (vim regex) + comments_only = true, -- uses treesitter to match keywords in comments only + max_line_len = 400, -- ignore lines longer than this + exclude = {}, -- list of file types to exclude highlighting + }, + -- list of named colors where we try to extract the guifg from the + -- list of highlight groups or use the hex color if hl not found as a fallback + colors = { + error = { "DiagnosticError", "ErrorMsg", "#DC2626" }, + warning = { "DiagnosticWarn", "WarningMsg", "#FBBF24" }, + info = { "DiagnosticInfo", "#2563EB" }, + hint = { "DiagnosticHint", "#10B981" }, + default = { "Identifier", "#7C3AED" }, + test = { "Identifier", "#FF00FF" } + }, + search = { + command = "rg", + args = { + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + }, + -- regex that will be used to match keywords. + -- don't replace the (KEYWORDS) placeholder + pattern = [[\b(KEYWORDS):]], -- ripgrep regex + -- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. You'll likely get false positives + }, +} + +vim.keymap.set("n", "]t", function() + require("todo-comments").jump_next() +end, { desc = "Next todo comment" }) + +vim.keymap.set("n", "[t", function() + require("todo-comments").jump_prev() +end, { desc = "Previous todo comment" }) + +-- You can also specify a list of valid jump keywords + +vim.keymap.set("n", "]t", function() + require("todo-comments").jump_next({keywords = { "ERROR", "WARNING" }}) +end, { desc = "Next error/warning todo comment" }) +EOF +" <----- END todo-comments -----> " + + +" <----- Telescope -----> " +" <----- END Telescope -----> " + + +" <----- Nvim Tree -----> " +lua << EOF +-- disable netrw at the very start of your init.lua +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 + +-- optionally enable 24-bit colour +vim.opt.termguicolors = true + +-- empty setup using defaults +require("nvim-tree").setup() + +-- OR setup with some options +require("nvim-tree").setup({ + sort = { + sorter = "case_sensitive", + }, + view = { + width = 30, + }, + renderer = { + group_empty = true, + }, + filters = { + dotfiles = true, + }, +}) +EOF + +" <----- END Nvim Tree -----> " + + + +" --- Float Term --- " +nmap t :FloatermNew +nmap Tr :FloatermNew --autoclose=0 gcc % -o %< && ./%< +"FloatermNew --height=0.6 --width=0.4 --wintype=float --name=floaterm1 --position=topleft --autoclose=2 ranger --cmd="cd ~" +" - END Float Term - " + + + + +" --- quick scope --- " +let g:qs_highlight_on_keys = ['f', 'F'] +" - END scope - " + + +" --- Chad Tree --- " +nnoremap v CHADopen +" --- END Chad Tree--- " + +" --- NERD Tree --- " +nnoremap n :NERDTreeFocus +nnoremap :NERDTree +nnoremap :NERDTreeToggle +nnoremap :NERDTreeFind + +" autocmd VimEnter * NERDTree | wincmd p +" --- END NERD Tree --- " + +" --- nvim-cursorword --- " +"hi default CursorWord cterm=underline gui=underline +" --- END nvim-cursorword --- " + + + + +" --- Linting --- " +let g:ale_linters = { + \ 'python': ['pylint'], + \ 'cpp': ['clang'], + \ 'c': ['clang'] +\} +" --- END Linting ---- " + + + + + +" --- Coc --- " + +" Coc Extensions +let g:coc_global_extensions = [ + \ 'coc-css', + \ 'coc-html', + \ 'coc-clangd', + "\ 'coc-java', + \ 'coc-pairs', + \ 'coc-vimtex', + \ 'coc-snippets', + \ 'coc-highlight' +\ ] + +let g:coc_enable_diagnostic_sign = 1 + + + +" Always show the signcolumn, otherwise it would shift the text each time +" diagnostics appear/become resolved +set signcolumn=yes + +" Use tab for trigger completion with characters ahead and navigate +" NOTE: There's always complete item selected by default, you may want to enable +" no select by `"suggest.noselect": true` in your configuration file +" NOTE: Use command ':verbose imap ' to make sure tab is not mapped by +" other plugin before putting this into your config +inoremap + \ coc#pum#visible() ? coc#pum#next(1) : + \ CheckBackspace() ? "\" : + \ coc#refresh() +inoremap coc#pum#visible() ? coc#pum#prev(1) : "\" + +" Make to accept selected completion item or notify coc.nvim to format +" u breaks current undo, please make your own choice +inoremap coc#pum#visible() ? coc#pum#confirm() + \: "\u\\=coc#on_enter()\" + +function! CheckBackspace() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' +endfunction + +" Use to trigger completion +if has('nvim') + inoremap coc#refresh() +else + inoremap coc#refresh() +endif + +" Use `[g` and `]g` to navigate diagnostics +" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list +nmap [g (coc-diagnostic-prev) +nmap ]g (coc-diagnostic-next) + +" GoTo code navigation +nmap gd (coc-definition) +nmap gy (coc-type-definition) +nmap gi (coc-implementation) +nmap gr (coc-references) + +" Use K to show documentation in preview window +nnoremap K :call ShowDocumentation() + +function! ShowDocumentation() + if CocAction('hasProvider', 'hover') + call CocActionAsync('doHover') + else + call feedkeys('K', 'in') + endif +endfunction + +" Highlight the symbol and its references when holding the cursor +autocmd CursorHold * silent call CocActionAsync('highlight') + +" Symbol renaming +nmap rn (coc-rename) + +" Formatting selected code +xmap f (coc-format-selected) +nmap f (coc-format-selected) + +augroup mygroup + autocmd! + " Setup formatexpr specified filetype(s) + autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') + " Update signature help on jump placeholder + autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') +augroup end + +" Applying code actions to the selected code block +" Example: `aap` for current paragraph +xmap a (coc-codeaction-selected) +nmap a (coc-codeaction-selected) + +" Remap keys for applying code actions at the cursor position +nmap ac (coc-codeaction-cursor) +" Remap keys for apply code actions affect whole buffer +nmap as (coc-codeaction-source) +" Apply the most preferred quickfix action to fix diagnostic on the current line +nmap qf (coc-fix-current) + +" Remap keys for applying refactor code actions +nmap re (coc-codeaction-refactor) +xmap r (coc-codeaction-refactor-selected) +nmap r (coc-codeaction-refactor-selected) + +" Run the Code Lens action on the current line +nmap cl (coc-codelens-action) + +" Map function and class text objects +" NOTE: Requires 'textDocument.documentSymbol' support from the language server +xmap if (coc-funcobj-i) +omap if (coc-funcobj-i) +xmap af (coc-funcobj-a) +omap af (coc-funcobj-a) +xmap ic (coc-classobj-i) +omap ic (coc-classobj-i) +xmap ac (coc-classobj-a) +omap ac (coc-classobj-a) + +" Remap and to scroll float windows/popups +if has('nvim-0.4.0') || has('patch-8.2.0750') + nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" +endif + +" Use CTRL-S for selections ranges +" Requires 'textDocument/selectionRange' support of language server +nmap (coc-range-select) +xmap (coc-range-select) + +" Add `:Format` command to format current buffer +command! -nargs=0 Format :call CocActionAsync('format') + +" Add `:Fold` command to fold current buffer +command! -nargs=? Fold :call CocAction('fold', ) + +" Add `:OR` command for organize imports of the current buffer +command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') + +" Add (Neo)Vim's native statusline support +" NOTE: Please see `:h coc-status` for integrations with external plugins that +" provide custom statusline: lightline.vim, vim-airline +set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} + +" Mappings for CoCList +" Show all diagnostics +nnoremap a :CocList diagnostics +" Manage extensions +nnoremap e :CocList extensions +" Show commands +nnoremap c :CocList commands +" Find symbol of current document +nnoremap o :CocList outline +" Search workspace symbols +nnoremap s :CocList -I symbols +" Do default action for next item +nnoremap j :CocNext +" Do default action for previous item +nnoremap k :CocPrev +" Resume latest coc list +nnoremap p :CocListResume + + + +" - END Coc - " + + +" <----- END Plugin Configs -----> " -- cgit v1.2.3