From 4bc82572215edbe7da9c969c11d41392e0644229 Mon Sep 17 00:00:00 2001 From: Tony Thayer-Osborne Date: Tue, 30 Apr 2024 17:00:47 -0700 Subject: [PATCH] Updates --- colors/256_noir.vim | 130 ++++++++++++++++++++++++++++++++ lazy-lock.json | 39 ++++++++++ lua/custom/plugins/256-noir.lua | 3 + lua/custom/plugins/copilot.lua | 15 ++++ lua/custom/plugins/nvim-ufa.lua | 68 +++++++++++++++++ lua/custom/plugins/sort.lua | 11 +++ 6 files changed, 266 insertions(+) create mode 100644 colors/256_noir.vim create mode 100644 lazy-lock.json create mode 100644 lua/custom/plugins/256-noir.lua create mode 100644 lua/custom/plugins/copilot.lua create mode 100644 lua/custom/plugins/nvim-ufa.lua create mode 100644 lua/custom/plugins/sort.lua diff --git a/colors/256_noir.vim b/colors/256_noir.vim new file mode 100644 index 00000000..ff61725f --- /dev/null +++ b/colors/256_noir.vim @@ -0,0 +1,130 @@ +" Vim color file +" Name: 256_noir.vim +" Maintainer: Andreas van Cranenburgh +" Homepage: https://github.com/andreasvc/vim-256noir/ + +" Basically: dark background, numerals & errors red, +" rest different shades of gray. +" +" colors 232--250 are shades of gray, from dark to light; +" 16=black, 255=white, 196=red, 88=darkred. + +highlight clear +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name = "256_noir" + +if has("gui_running") || &t_Co == 256 + hi Normal cterm=NONE ctermfg=250 ctermbg=16 gui=NONE guifg=#bcbcbc guibg=#000000 + hi Keyword cterm=NONE ctermfg=255 ctermbg=16 gui=NONE guifg=#eeeeee guibg=#000000 + hi Constant cterm=NONE ctermfg=252 ctermbg=16 gui=NONE guifg=#d0d0d0 guibg=#000000 + hi String cterm=NONE ctermfg=245 ctermbg=16 gui=NONE guifg=#8a8a8a guibg=#000000 + hi Comment cterm=NONE ctermfg=240 ctermbg=16 gui=NONE guifg=#585858 guibg=#000000 + hi Number cterm=NONE ctermfg=196 ctermbg=16 gui=NONE guifg=#ff0000 guibg=#000000 + hi Error cterm=NONE ctermfg=255 ctermbg=88 gui=NONE guifg=#eeeeee guibg=#870000 + hi ErrorMsg cterm=NONE ctermfg=255 ctermbg=124 gui=NONE guifg=#eeeeee guibg=#af0000 + hi Search cterm=NONE ctermfg=245 ctermbg=236 gui=NONE guifg=#8a8a8a guibg=#303030 + hi IncSearch cterm=reverse ctermfg=255 ctermbg=245 gui=reverse guifg=#eeeeee guibg=#8a8a8a + hi DiffChange cterm=NONE ctermfg=160 ctermbg=255 gui=NONE guifg=#d70000 guibg=#eeeeee + hi DiffText cterm=bold ctermfg=250 ctermbg=196 gui=bold guifg=#bcbcbc guibg=#ff0000 + hi SignColumn cterm=NONE ctermfg=124 ctermbg=240 gui=NONE guifg=#af0000 guibg=#585858 + hi SpellBad cterm=undercurl ctermfg=255 ctermbg=88 gui=undercurl guifg=#eeeeee guibg=#870000 + hi SpellCap cterm=NONE ctermfg=255 ctermbg=124 gui=NONE guifg=#eeeeee guibg=#af0000 + hi SpellRare cterm=NONE ctermfg=124 ctermbg=16 gui=NONE guifg=#af0000 guibg=#000000 + hi WildMenu cterm=NONE ctermfg=240 ctermbg=255 gui=NONE guifg=#585858 guibg=#eeeeee + hi Pmenu cterm=NONE ctermfg=255 ctermbg=240 gui=NONE guifg=#eeeeee guibg=#585858 + hi PmenuThumb cterm=NONE ctermfg=232 ctermbg=240 gui=NONE guifg=#080808 guibg=#585858 + hi SpecialKey cterm=NONE ctermfg=16 ctermbg=255 gui=NONE guifg=#000000 guibg=#eeeeee + hi MatchParen cterm=NONE ctermfg=16 ctermbg=240 gui=NONE guifg=#000000 guibg=#585858 + hi CursorLine cterm=NONE ctermfg=NONE ctermbg=233 gui=NONE guifg=NONE guibg=#121212 + hi StatusLine cterm=bold,reverse ctermfg=245 ctermbg=16 gui=bold,reverse guifg=#8a8a8a guibg=#000000 + hi StatusLineNC cterm=reverse ctermfg=236 ctermbg=16 gui=reverse guifg=#303030 guibg=#000000 + hi Visual cterm=reverse ctermfg=250 ctermbg=16 gui=reverse guifg=#bcbcbc guibg=#000000 + hi TermCursor cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE +else + hi Normal cterm=NONE ctermfg=Gray ctermbg=Black + hi Keyword cterm=NONE ctermfg=White ctermbg=Black + hi Constant cterm=NONE ctermfg=Gray ctermbg=Black + hi String cterm=NONE ctermfg=Gray ctermbg=Black + hi Comment cterm=NONE ctermfg=DarkGray ctermbg=Black + hi Number cterm=NONE ctermfg=Red ctermbg=Black + hi Error cterm=NONE ctermfg=White ctermbg=DarkRed + hi ErrorMsg cterm=NONE ctermfg=White ctermbg=Red + hi Search cterm=NONE ctermfg=Gray ctermbg=DarkGray + hi IncSearch cterm=reverse ctermfg=White ctermbg=Gray + hi DiffChange cterm=NONE ctermfg=Red ctermbg=White + hi DiffText cterm=bold ctermfg=Gray ctermbg=Red + hi SignColumn cterm=NONE ctermfg=Red ctermbg=DarkGray + hi SpellBad cterm=undercurl ctermfg=White ctermbg=DarkRed + hi SpellCap cterm=NONE ctermfg=White ctermbg=Red + hi SpellRare cterm=NONE ctermfg=Red ctermbg=Black + hi WildMenu cterm=NONE ctermfg=DarkGray ctermbg=White + hi Pmenu cterm=NONE ctermfg=White ctermbg=DarkGray + hi PmenuThumb cterm=NONE ctermfg=Black ctermbg=DarkGray + hi SpecialKey cterm=NONE ctermfg=Black ctermbg=White + hi MatchParen cterm=NONE ctermfg=Black ctermbg=DarkGray + hi CursorLine cterm=NONE ctermfg=NONE ctermbg=Black + hi StatusLine cterm=bold,reverse ctermfg=Gray ctermbg=Black + hi StatusLineNC cterm=reverse ctermfg=DarkGray ctermbg=Black + hi Visual cterm=reverse ctermfg=Gray ctermbg=Black + hi TermCursor cterm=reverse ctermfg=NONE ctermbg=NONE +endif +highlight! link Boolean Normal +highlight! link Delimiter Normal +highlight! link Identifier Normal +highlight! link Title Normal +highlight! link Debug Normal +highlight! link Exception Normal +highlight! link FoldColumn Normal +highlight! link Macro Normal +highlight! link ModeMsg Normal +highlight! link MoreMsg Normal +highlight! link Question Normal +highlight! link Conditional Keyword +highlight! link Statement Keyword +highlight! link Operator Keyword +highlight! link Structure Keyword +highlight! link Function Keyword +highlight! link Include Keyword +highlight! link Type Keyword +highlight! link Typedef Keyword +highlight! link Todo Keyword +highlight! link Label Keyword +highlight! link Define Keyword +highlight! link DiffAdd Keyword +highlight! link diffAdded Keyword +highlight! link diffCommon Keyword +highlight! link Directory Keyword +highlight! link PreCondit Keyword +highlight! link PreProc Keyword +highlight! link Repeat Keyword +highlight! link Special Keyword +highlight! link SpecialChar Keyword +highlight! link StorageClass Keyword +highlight! link SpecialComment String +highlight! link CursorLineNr String +highlight! link Character Number +highlight! link Float Number +highlight! link Tag Number +highlight! link Folded Number +highlight! link WarningMsg Number +highlight! link iCursor SpecialKey +highlight! link SpellLocal SpellCap +highlight! link LineNr Comment +highlight! link NonText Comment +highlight! link DiffDelete Comment +highlight! link diffRemoved Comment +highlight! link PmenuSbar Visual +highlight! link PmenuSel Visual +highlight! link VisualNOS Visual +highlight! link VertSplit Visual +highlight! link Cursor StatusLine +highlight! link Underlined SpellRare +highlight! link rstEmphasis SpellRare +highlight! link diffChanged DiffChange diff --git a/lazy-lock.json b/lazy-lock.json new file mode 100644 index 00000000..863f1cbb --- /dev/null +++ b/lazy-lock.json @@ -0,0 +1,39 @@ +{ + "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, + "LuaSnip": { "branch": "master", "commit": "f3b3d3446bcbfa62d638b1903ff00a78b2b730a1" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, + "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, + "copilot.vim": { "branch": "release", "commit": "1a284014d2e0baf367706a94b2a9ee5fd56fd457" }, + "fidget.nvim": { "branch": "main", "commit": "60404ba67044c6ab01894dd5bf77bd64ea5e09aa" }, + "friendly-snippets": { "branch": "main", "commit": "dbd45e9ba76d535e4cba88afa1b7aa43bb765336" }, + "gitsigns.nvim": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" }, + "indent-blankline.nvim": { "branch": "master", "commit": "821a7acd88587d966f7e464b0b3031dfe7f5680c" }, + "lazy.nvim": { "branch": "main", "commit": "aedcd79811d491b60d0a6577a9c1701063c2a609" }, + "lualine.nvim": { "branch": "master", "commit": "7d131a8d3ba5016229e8a1d08bf8782acea98852" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "7897c45e8f0f7fefe3b3ee00d8e89dc67a113e25" }, + "mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" }, + "neodev.nvim": { "branch": "main", "commit": "bbe17de89345ce40725e721d347c596dc4a02b32" }, + "nvim-autopairs": { "branch": "master", "commit": "90f824d37c0cb079d2764927e73af77faa9ba0ef" }, + "nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" }, + "nvim-comment": { "branch": "main", "commit": "e9ac16ab056695cad6461173693069ec070d2b23" }, + "nvim-lspconfig": { "branch": "master", "commit": "1699ce10c3aaf861cfa0c1303fcd19d2ed93e7ad" }, + "nvim-surround": { "branch": "main", "commit": "8f2af76134f37058dc4c27a24bc5f86c9cae76dc" }, + "nvim-treesitter": { "branch": "master", "commit": "6bd108a6f10aa01b854c3c673b6d9d61662a8c93" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "7f00d94543f1fd37cab2afa2e9a6cd54e1c6b9ef" }, + "nvim-ufo": { "branch": "main", "commit": "a5390706f510d39951dd581f6d2a972741b3fa26" }, + "onedark.nvim": { "branch": "master", "commit": "1230aaf2a427b2c5b73aba6e4a9a5881d3e69429" }, + "plenary.nvim": { "branch": "master", "commit": "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d" }, + "promise-async": { "branch": "main", "commit": "93540c168c5ed2b030ec3e6c40ab8bbb85e36355" }, + "sort.nvim": { "branch": "main", "commit": "c789da6968337d2a61104a929880b5f144e02855" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" }, + "telescope.nvim": { "branch": "0.1.x", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }, + "vim-256noir": { "branch": "master", "commit": "e8668a18a4a90272c1cae87e655f8bddc5ac3665" }, + "vim-easy-align": { "branch": "master", "commit": "12dd6316974f71ce333e360c0260b4e1f81169c3" }, + "vim-fugitive": { "branch": "master", "commit": "011cf4fcb93a9649ffc6dcdff56ef948f5d0f7cc" }, + "vim-helm": { "branch": "master", "commit": "86cc6766db60b8cc5731068d0c2111dee1f2b328" }, + "vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" }, + "vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" }, + "vim-terraform": { "branch": "master", "commit": "21f756b933cd11ac5990a6046fdc7c4e2a6c0aee" }, + "which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }, + "yaml.nvim": { "branch": "main", "commit": "77aa8812e652acc44ae16fd1dbeb5a952db937e0" } +} \ No newline at end of file diff --git a/lua/custom/plugins/256-noir.lua b/lua/custom/plugins/256-noir.lua new file mode 100644 index 00000000..e5a006ac --- /dev/null +++ b/lua/custom/plugins/256-noir.lua @@ -0,0 +1,3 @@ +return { + 'andreasvc/vim-256noir' +} diff --git a/lua/custom/plugins/copilot.lua b/lua/custom/plugins/copilot.lua new file mode 100644 index 00000000..3e0ba15e --- /dev/null +++ b/lua/custom/plugins/copilot.lua @@ -0,0 +1,15 @@ +return { + 'github/copilot.vim', + init = function() + vim.g.copilot_no_tab_map = true + vim.g.copilot_assume_mapped = true + end, + config = function() + vim.keymap.set('i', '', [[copilot#Accept("\")]], { + silent = true, + expr = true, + script = true, + replace_keycodes = false, + }) + end, + } diff --git a/lua/custom/plugins/nvim-ufa.lua b/lua/custom/plugins/nvim-ufa.lua new file mode 100644 index 00000000..ef64a141 --- /dev/null +++ b/lua/custom/plugins/nvim-ufa.lua @@ -0,0 +1,68 @@ +return { + "kevinhwang91/nvim-ufo", + dependencies = "kevinhwang91/promise-async", + event = "VimEnter", -- needed for folds to load in time and comments closed + keys = { + -- stylua: ignore start + { "zm", function() require("ufo").closeAllFolds() end, desc = "󱃄 Close All Folds" }, + { "zr", function() require("ufo").openFoldsExceptKinds { "comment", "imports" } end, desc = "󱃄 Open All Regular Folds" }, + { "zR", function() require("ufo").openFoldsExceptKinds {} end, desc = "󱃄 Open All Folds" }, + { "z1", function() require("ufo").closeFoldsWith(1) end, desc = "󱃄 Close L1 Folds" }, + { "z2", function() require("ufo").closeFoldsWith(2) end, desc = "󱃄 Close L2 Folds" }, + { "z3", function() require("ufo").closeFoldsWith(3) end, desc = "󱃄 Close L3 Folds" }, + { "z4", function() require("ufo").closeFoldsWith(4) end, desc = "󱃄 Close L4 Folds" }, + -- stylua: ignore end + }, + init = function() + -- INFO fold commands usually change the foldlevel, which fixes folds, e.g. + -- auto-closing them after leaving insert mode, however ufo does not seem to + -- have equivalents for zr and zm because there is no saved fold level. + -- Consequently, the vim-internal fold levels need to be disabled by setting + -- them to 99 + vim.opt.foldlevel = 99 + vim.opt.foldlevelstart = 99 + end, + opts = { + provider_selector = function(_, ft, _) + -- INFO some filetypes only allow indent, some only LSP, some only + -- treesitter. However, ufo only accepts two kinds as priority, + -- therefore making this function necessary :/ + local lspWithOutFolding = { "markdown", "sh", "css", "html", "python" } + if vim.tbl_contains(lspWithOutFolding, ft) then return { "treesitter", "indent" } end + return { "lsp", "indent" } + end, + -- when opening the buffer, close these fold kinds + -- use `:UfoInspect` to get available fold kinds from the LSP + close_fold_kinds_for_ft = { + default = { "imports", "comment" }, + }, + open_fold_hl_timeout = 800, + fold_virt_text_handler = function(virtText, lnum, endLnum, width, truncate) + local hlgroup = "NonText" + local newVirtText = {} + local suffix = "  " .. tostring(endLnum - lnum) + local sufWidth = vim.fn.strdisplaywidth(suffix) + local targetWidth = width - sufWidth + local curWidth = 0 + for _, chunk in ipairs(virtText) do + local chunkText = chunk[1] + local chunkWidth = vim.fn.strdisplaywidth(chunkText) + if targetWidth > curWidth + chunkWidth then + table.insert(newVirtText, chunk) + else + chunkText = truncate(chunkText, targetWidth - curWidth) + local hlGroup = chunk[2] + table.insert(newVirtText, { chunkText, hlGroup }) + chunkWidth = vim.fn.strdisplaywidth(chunkText) + if curWidth + chunkWidth < targetWidth then + suffix = suffix .. (" "):rep(targetWidth - curWidth - chunkWidth) + end + break + end + curWidth = curWidth + chunkWidth + end + table.insert(newVirtText, { suffix, hlgroup }) + return newVirtText + end, + }, +} diff --git a/lua/custom/plugins/sort.lua b/lua/custom/plugins/sort.lua new file mode 100644 index 00000000..a47f46f5 --- /dev/null +++ b/lua/custom/plugins/sort.lua @@ -0,0 +1,11 @@ +return { + 'sQVe/sort.nvim', + + -- Optional setup for overriding defaults. + config = function() + require("sort").setup({ + -- Input configuration here. + -- Refer to the configuration section below for options. + }) + end +}