From b817b79e9e050f79c5bbc2b10ca0e419e2ee1456 Mon Sep 17 00:00:00 2001 From: Alex Pickering Date: Sat, 5 Jul 2025 16:32:44 -0500 Subject: Updates --- nvim/init.vim | 138 ++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 96 insertions(+), 42 deletions(-) (limited to 'nvim/init.vim') diff --git a/nvim/init.vim b/nvim/init.vim index 82291a7..7948a5f 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -4,7 +4,7 @@ set nu set ff=unix "set the highlight column at 80 set colorcolumn=80 -" displace spaces, tabs, and newlines +" display spaces, tabs, and newlines set list set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:» set noexpandtab @@ -46,19 +46,20 @@ Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' " "tab completion -Plug 'williamboman/mason.nvim' -Plug 'williamboman/mason-lspconfig.nvim' +Plug 'mason-org/mason.nvim' +Plug 'mason-org/mason-lspconfig.nvim' +Plug 'mfussenegger/nvim-lint' Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-buffer' Plug 'hrsh7th/cmp-path' Plug 'hrsh7th/cmp-cmdline' Plug 'hrsh7th/nvim-cmp' "Plug 'Shougo/denite.nvim' -"Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } +Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } "Plug 'Shougo/echodoc.vim' -"Plug 'deoplete-plugins/deoplete-jedi' +Plug 'deoplete-plugins/deoplete-jedi' Plug 'neovim/nvim-lspconfig' -"Plug 'deoplete-plugins/deoplete-lsp' +Plug 'deoplete-plugins/deoplete-lsp' " Snippits Plug 'hrsh7th/cmp-vsnip' @@ -69,35 +70,34 @@ Plug 'raimon49/requirements.txt.vim' " Scala tab completion Plug 'nvim-lua/plenary.nvim' -"Plug 'scalameta/nvim-metals' +Plug 'scalameta/nvim-metals' " CSV formatting Plug 'chrisbra/csv.vim' " Lua, Moonscript, Teal -"Plug 'xolox/vim-misc' -"Plug 'xolox/vim-lua-ftplugin' -Plug 'VaiN474/vim-etlua' +Plug 'xolox/vim-misc' +Plug 'xolox/vim-lua-ftplugin' +"Plug 'VaiN474/vim-etlua' Plug 'leafo/moonscript-vim' Plug 'teal-language/vim-teal' -Plug 'S1M0N38/love2d.nvim' +"Plug 'S1M0N38/love2d.nvim' " Treesitter, higlihting Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} " Coq -Plug 'whonore/Coqtail' +"Plug 'whonore/Coqtail' " GLSL -Plug 'tikhomirov/vim-glsl' +"Plug 'tikhomirov/vim-glsl' " Supercollider -Plug 'davidgranstrom/scnvim' +"Plug 'davidgranstrom/scnvim' "Color schemes Plug 'mhartington/oceanic-next' Plug 'vim-scripts/Wombat' -Plug 'zeis/vim-kolor' Plug 'alessandroyorba/despacio' Plug 'alessandroyorba/alduin' Plug 'tomasr/molokai' @@ -106,18 +106,18 @@ Plug 'sts10/vim-pink-moon' Plug 'severij/vadelma' Plug 'kkpmw/sacredforest-vim' Plug 'jsit/toast.vim' -Plug 'henrynewcomer/vim-theme-papaya' Plug 'sainnhe/edge' Plug 'kjssad/quantum.vim' Plug 'kyoz/purify' -Plug 'jonathanfilip/vim-lucius' Plug 'joshdick/onedark.vim' Plug 'cocopon/iceberg.vim' Plug 'wolf-dog/sceaduhelm.vim' Plug 'danilo-augusto/vim-afterglow' Plug 'kamwitsta/mythos' -Plug 'softmotions/vim-dark-frost-theme' +Plug 'https://github.com/gbprod/nord.nvim' Plug 'ghifarit53/tokyonight-vim' +Plug 'scottmckendry/cyberdream.nvim' +Plug 'nyoom-engineering/oxocarbon.nvim' "Icons, requires a nerd font Plug 'ryanoasis/vim-devicons' @@ -128,11 +128,14 @@ Plug 'nomnivore/ollama.nvim' Plug 'nvim-lualine/lualine.nvim' " Terraform -"Plug 'hashivim/vim-terraform' +Plug 'hashivim/vim-terraform' call plug#end() -let colorschemes = ['OceanicNext', 'afterglow', 'alduin', 'darkforest', 'edge', 'desert', 'despacio', 'onedark', 'evening', 'everforest', 'habamax', 'iceberg', 'kolor', 'lucius', 'lunaperche', 'molokai', 'moon', 'mythos', 'default', 'orange-moon', 'papaya', 'papaya_original', 'pink-moon', 'quantum', 'retrobox', 'sceaduhelm', 'slate', 'sorbet', 'toast', 'tokyonight', 'vadelma', 'yellow-moon', 'zaibatsu'] +set background=dark +let colorschemes = ['OceanicNext', 'afterglow', 'alduin', 'nord', 'edge', 'desert', 'despacio', 'onedark', 'evening', 'everforest', 'habamax', 'iceberg', 'oxocarbon', 'lunaperche', 'molokai', 'moon', 'mythos', 'cyberdream', 'orange-moon', 'pink-moon', 'quantum', 'retrobox', 'sceaduhelm', 'slate', 'sorbet', 'toast', 'tokyonight', 'vadelma', 'yellow-moon', 'zaibatsu'] +"Randomly select a colorscheme based on current directory. Each project gets +"it's own color- usually. let cs = colorschemes[str2nr(sha256(execute('pwd'))[1:5],16) % len(colorschemes)] execute('colorscheme ' . cs) @@ -140,8 +143,8 @@ execute('colorscheme ' . cs) "let g:deoplete#enable_at_startup = 1 "call deoplete#custom#option("min_pattern_length", 1) "call deoplete#custom#option("smart_case", 1) -imap pumvisible() ? "\" : "\" -imap pumvisible() ? "\\AutoPairsReturn" : "\" +"imap pumvisible() ? "\" : "\" +"imap pumvisible() ? "\\AutoPairsReturn" : "\" "imap pumvisible() ? "\" : "\" "imap pumvisible() ? deoplete#close_popup() : "\\AutoPairsReturn" @@ -162,12 +165,12 @@ let g:lua_compiler_name='lua' "let g:lua_compiler_name='lua' let g:lua_complete_dynamic=1 let g:lua_complete_keywords=0 -"let g:deoplete#lsp#handler_enabled=1 -"let g:deoplete#lsp#use_icons_for_candidates=1 +"let g:deoplete#lsp#handler_enabled=v:true +"let g:deoplete#lsp#use_icons_for_candidates=v:true -au BufReadPost *.busted set syntax=lua -au BufReadPost *.spec set syntax=lua -au BufReadPost *.etlua set syntax=html +"au BufReadPost *.busted set syntax=lua +"au BufReadPost *.spec set syntax=lua +"au BufReadPost *.etlua set syntax=html "Overwrite xolox:ftplugin's "Help" with shift-k "au BufReadPost *.lua nunmap K "au BufReadPost *.lua let g:lua_complete_omni=1 @@ -192,8 +195,8 @@ let NERDTreeMapJumpLastChild='y' let NERDTreeMapJumpFirstChild='y' "NERDCommenter config -"nnoremap :call nerdcommenter#Comment('x', 'toggle') -"vnoremap :call nerdcommenter#Comment('x', 'toggle') +nnoremap :call nerdcommenter#Comment('x', 'toggle') +vnoremap :call nerdcommenter#Comment('x', 'toggle') "Fuzzy file search let g:fzf_layout = { 'window': {'width': 0.9, 'height': 0.6} } @@ -294,7 +297,14 @@ vnoremap :'<,'>s/\([^;]\)$/\1;/g noremap :vsplit term://make all "Start a terminal -noremap :vsplit:terminal +function! s:Terminal() + if filereadable(".terminal") + execute feedkeys(":vsplit\:terminal\i./.terminal\") + else + execute feedkeys(":vsplit\:terminal\i") + endif +endfunction +noremap :call Terminal() "Find and open in a new tab noremap :Ag @@ -318,8 +328,19 @@ if has_key(environ(), "LUNARVIM_BASE_DIR") endif " mason.nvim - lsp running -lua require("mason").setup() -lua require("mason-lspconfig").setup({ensure_installed = {"lua_ls","harper-ls"}}) +lua << EOF +--[[ +require("mason").setup({ + ui = {icons = { + package_installed = "󰄳", + package_pending = "󱑤", + package_uninstalled = "" + }} +})]] +require("mason").setup() + +EOF +lua require("mason-lspconfig").setup({ensure_installed = {"lua_ls"}}) lua << EOF local cmp = require("cmp") @@ -342,7 +363,7 @@ lua << EOF documentation = cmp.config.window.bordered(), }, mapping = cmp.mapping.preset.insert({ - [""] = cmp.mapping.confirm({select=true}), + --[""] = cmp.mapping.confirm({select=true}), [""] = cmp.mapping.abort(), [""] = cmp.mapping(function(fallback) if cmp.visible() then @@ -362,6 +383,8 @@ lua << EOF feedkey("(vsnip-jump-prev)", "") end end, {"i","s"}), + [""] = cmp.mapping.scroll_docs(5), + [""] = cmp.mapping.scroll_docs(-5), }), sources = cmp.config.sources({ {name = "nvim_lsp"}, @@ -390,8 +413,8 @@ lua << EOF enable=true, }, workspace = { - "${3rd}/love2d/library", - "${3rd}/busted/library", + --"${3rd}/love2d/library", + --"${3rd}/busted/library", } } } @@ -424,18 +447,25 @@ do require("lualine").setup({sections = {lualine_x = {get_status_icon, ollama_loaded}}}) require("ollama").config.prompts.fgen = { prompt = [[ -Generate $ftype code that follows this code, keep any comments: +Generate $ftype code that follows this code: -$sel +``` +$before +``` + +and comes before this code +``` +$after +``` Respond EXACTLY in this format: ```$ftype ``` ]], - action = "insert" + action = "display_insert", } - require("ollama").config.prompts.extend= { + require("ollama").config.prompts.rewrite= { prompt = [[ Change this $ftype code to $input, keep any comments: @@ -448,17 +478,39 @@ Respond EXACTLY in this format: ]], action = "display_replace" } -end + require("ollama").config.prompts.review = { + prompt = [[ +Take a look at this $ftype code and provide critique in the style of a code review with concrete hints on how to make the code easier to read or more pythonic. +Keep your review succinct. Respond EXACTLY in this format: +```$ftype + +``` + +``` +$buf +``` + +]], + action = "display" + } +end EOF +" Open diagnostics (e.g. for harper) +nnoremap s :lua vim.diagnostic.open_float() + +" Copy the current filename +nnoremap y :let @+ = expand('%') + " ollama.nvim - ai code assist lua require("ollama").config.model = "codestral" -vnoremap gg :lua require("ollama").prompt("fgen") +nnoremap gg :lua require("ollama").prompt("fgen") vnoremap gh :lua require("ollama").prompt("Explain_Code") -vnoremap gG :lua require("ollama").prompt("extend") +vnoremap gG :lua require("ollama").prompt("rewrite") nnoremap gt :lua require("ollama").prompt("Raw") +nnoremap gr :lua require("ollama").prompt("review") lua << EOF vim.api.nvim_create_autocmd('FileType', { -- This handler will fire when the buffer's 'filetype' is "lua" @@ -481,11 +533,13 @@ EOF " love2d help lua << EOF + --[[ require("love2d").setup{ path_to_love_bin = "love", path_to_love_library = vim.fn.globpath(vim.o.runtimepath, "love2d/library"), restart_on_save = false, } + ]] EOF " Acrisure -- cgit v1.2.3-70-g09d2