Huge clean up. Migrated LSPs to native Neovim LSP settings. Removed AI plugins that I didn't find useful and plugins that weren't being used.

This commit is contained in:
Norm Rasmussen
2025-04-01 13:36:42 -04:00
parent abfa8ad841
commit 51c4676cbf
15 changed files with 50 additions and 614 deletions

View File

@ -1,9 +0,0 @@
font-family = "Jet Brains Mono"
# fix tmux-vim-navigate
keybind = alt+right=unbind
keybind = alt+left=unbind
theme = catppuccin-mocha
background-opacity = 0.9
shell-integration = "zsh"

View File

@ -16,7 +16,6 @@ vim.opt.rtp:prepend(lazypath)
vim.g.mapleader = ','
vim.g.localmapleader = ','
--- vim.opt.textwidth = 85
vim.opt.colorcolumn = '+2'
-- vim.diagnostic.config({ virtual_text = true, virtual_lines = true })
@ -63,8 +62,8 @@ vim.cmd [[ autocmd BufWritePre * :%s/\s\+$//e ]]
opt.number = true -- Show line number
opt.relativenumber = true -- Show Current Line with Relative numbers above and below cursor.
opt.showmatch = true -- Highlight matching parenthesis
opt.foldmethod = "expr" -- Enable folding (default 'foldmarker')
opt.foldexpr = "nvim_treesitter#foldexpr()"
-- opt.foldmethod = "expr" -- Enable folding (default 'foldmarker')
-- opt.foldexpr = "nvim_treesitter#foldexpr()"
opt.splitright = true -- Vertical split to the right
opt.splitbelow = true -- Horizontal split to the bottom
opt.ignorecase = true -- Ignore case letters when search
@ -91,6 +90,7 @@ g.expandtab = false -- Use spaces instead of tabs
g.shiftwidth = 2 -- Shift 4 spaces when tab
g.tabstop = 2 -- 1 tab == 4 spaces
g.smartindent = true -- Autoindent new lines
-----------------------------------------------------------
-- AutoCmd and Additional Function Settings.
-----------------------------------------------------------
@ -101,7 +101,6 @@ vim.cmd [[
vim.cmd [[ autocmd FileType python set textwidth=250 ]]
vim.cmd [[ autocmd FileType lua set textwidth=80 ]]
vim.cmd [[ autocmd FileType markdown,text set shiftwidth=2 foldlevel=99 ]]
-- vim.cmd [[ autocmd FileType markdown setlocal foldlevel=99 ]]
vim.cmd[[ colorscheme morta ]]
local disabled_built_ins = {
@ -136,5 +135,7 @@ else
vim.g.python3_host_prog = vim.fn.substitute(vim.fn.system("which python3"), "\n", "", "g")
end
vim.lsp.enable({'ruff', 'marksman'})
vim.lsp.enable({'ruff', 'marksman', 'emmet-ls'})
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true
require('core/keymaps')

View File

@ -14,32 +14,30 @@
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
"gitsigns.nvim": { "branch": "main", "commit": "3c76f7fabac723aa682365ef782f88a83ccdb4ac" },
"headlines.nvim": { "branch": "master", "commit": "bf17c96a836ea27c0a7a2650ba385a7783ed322e" },
"hover.nvim": { "branch": "main", "commit": "140c4d0ae9397b76baa46b87c574f5377de09309" },
"hover.nvim": { "branch": "main", "commit": "cf1a44ded44a3b1842174ba2fdf2d4e4aedef9a3" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"kanagawa.nvim": { "branch": "master", "commit": "709018d5af92d2e5780bfb8a6d36e9cad01a6402" },
"kanagawa.nvim": { "branch": "master", "commit": "cc3b68b08e6a0cb6e6bf9944932940091e49bb83" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lualine.nvim": { "branch": "master", "commit": "1517caa8fff05e4b4999857319d3b0609a7f57fa" },
"mini.comment": { "branch": "main", "commit": "6e1f9a8ebbf6f693fa3787ceda8ca3bf3cb6aec7" },
"mini.fuzzy": { "branch": "stable", "commit": "faa5a6c0d29c28012c90bd011162963a58715428" },
"mini.hipatterns": { "branch": "main", "commit": "fbf1e2195fdd65cf1bc970316c28098257728868" },
"mini.icons": { "branch": "main", "commit": "86a633f0dffcfd80110bac86681dbf4b5c37ba5c" },
"mini.move": { "branch": "main", "commit": "c8b30e92dd2668dd6e56a9a23cb7d4ee38c2266d" },
"mini.hipatterns": { "branch": "main", "commit": "dd53c18779a2e47a1902180c72bc54a8bb554388" },
"mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" },
"mini.move": { "branch": "main", "commit": "4fe4a855fee53c66b0f3255a4b54ddc2ae6b308c" },
"mini.pairs": { "branch": "stable", "commit": "7e834c5937d95364cc1740e20d673afe2d034cdb" },
"mini.surround": { "branch": "main", "commit": "aa5e245829dd12d8ff0c96ef11da28681d6049aa" },
"mini.trailspace": { "branch": "main", "commit": "9bbbf568c06fe424dc21d2c228fa76098008a5f3" },
"mkdnflow.nvim": { "branch": "main", "commit": "d459bd7ce68910272038ed037c028180161fd14d" },
"mini.trailspace": { "branch": "main", "commit": "39a0460c025a605519fdd6bea1ce870642429996" },
"morta": { "branch": "main", "commit": "23c407725a38b69d3423cf1d75cf6eb6810e1334" },
"neowarrior.nvim": { "branch": "main", "commit": "197cd4a7a56d07374fcda09b5b56baa433e40549" },
"nightfly": { "branch": "master", "commit": "467980e03f0e72250ad9ac0160a21a1f0310cfff" },
"nightfly": { "branch": "master", "commit": "14ec21ad2547a8787fdfc7443d10ba24186801ee" },
"nightfox.nvim": { "branch": "main", "commit": "ba47d4b4c5ec308718641ba7402c143836f35aa9" },
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
"nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" },
"numb.nvim": { "branch": "master", "commit": "7f564e638d3ba367abf1ec91181965b9882dd509" },
"nvim": { "branch": "main", "commit": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429" },
"nvim-lspconfig": { "branch": "master", "commit": "ff6471d4f837354d8257dfa326b031dd8858b16e" },
"nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" },
"nvim-tree.lua": { "branch": "master", "commit": "6709463b2d18e77f7a946027917aa00d4aaed6f4" },
"nvim-treesitter": { "branch": "master", "commit": "9df671fda41bc4af91b9f7ea3fa1628ba988a77b" },
"nvim-treesitter": { "branch": "master", "commit": "4b390e1e46ca2e6220f14641cb840bbf9ad5446f" },
"nvim-web-devicons": { "branch": "master", "commit": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"pulse.nvim": { "branch": "main", "commit": "4026460b12da9abcfe34322db0bdc80e4b0dce3d" },
@ -53,17 +51,13 @@
"telescope-live-grep-args.nvim": { "branch": "master", "commit": "b80ec2c70ec4f32571478b501218c8979fab5201" },
"telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
"thethethe.nvim": { "branch": "main", "commit": "357580127cd291c8a813564eeaff07c09303084e" },
"tiny-inline-diagnostic.nvim": { "branch": "main", "commit": "0a3be9835c6044e8bbc1bdf001e3333519a2bad9" },
"tiny-inline-diagnostic.nvim": { "branch": "main", "commit": "15becb1c2a4b90321214d3db45fe36829fc48b8d" },
"tmux.nvim": { "branch": "main", "commit": "2c1c3be0ef287073cef963f2aefa31a15c8b9cd8" },
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
"vim-arduino": { "branch": "master", "commit": "2ded67cdf09bb07c4805d9e93d478095ed3d8606" },
"vim-arsync": { "branch": "master", "commit": "dd5fd93182aafb67ede2ef465f379610980b52d3" },
"vim-dadbod": { "branch": "master", "commit": "9f0ca8bcef704659820a95c3bbd2c262583a66a1" },
"vim-dadbod-completion": { "branch": "master", "commit": "a8dac0b3cf6132c80dc9b18bef36d4cf7a9e1fe6" },
"vim-dadbod-ui": { "branch": "master", "commit": "685e75b34ee0e12f92ec4507ea8bb7f1aaa936e5" },
"vim-wakatime": { "branch": "master", "commit": "e46d7c4f98ee0f40782008dd60cb2a79c377fb1d" },
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" },
"wtf.nvim": { "branch": "main", "commit": "22dac666c8847c9cb03afe99229d459f1d0822c4" }
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
}

View File

@ -0,0 +1,5 @@
return {
cmd = {'dprint', 'lsp'},
root_markers = { './' },
filetypes = { "javascript", "js", "javascriptreact", "typescript", "typescriptreact", "json", "jsonc", "toml", "rust", "roslyn", "graphql" }
}

View File

@ -0,0 +1,15 @@
return {
cmd = { 'emmet-ls', '--stdio' },
root_markers = { './', },
filetypes = { "astro", "css", "eruby", "html", "liquid", "htmldjango", "javascriptreact", "javascript", "js", "less", "pug", "sass", "scss", "svelte", "typescriptreact", "vue", "htmlangular" },
capabilities = capabilities,
settings = {
init_options = {
html = {
options = {
["bem.enabled"] = true,
},
},
}
}
}

View File

@ -1,113 +0,0 @@
-----------------------------------------------------------
-- startify configuration file
-----------------------------------------------------------
return {
"goolord/alpha-nvim",
dependencies = {
'nvim-tree/nvim-web-devicons',
},
config = function ()
local alpha = require'alpha'
local startify = require'alpha.themes.startify'
startify.section.header.val = {
"⠀⠀⠀⠀⠀⠀⠀⠉⠲⢌⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠶⢃⣼⣿⣷⣿⡿⠟⠃⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠉⠑⠄⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠋⣠⣿⣿⡿⢻⣹⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠰⡀⠀⠀⠒⠈⣅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠊⢁⣴⣿⠟⠋⠀⢀⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡠⠔⠲⢿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⠷⠶⢶⣤⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠄⣀⣴⡃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣳⣤⣴⠿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣄⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⢹⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⢀⠀⠠⢀⠀⠀⡀⣄⠐⠢⢤⣀⡀⠹⠋⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⣠⠏⠉⢛⣃⣀⣠⣤⢶⣲⣦⣤⣤⣶⣤⢂⣀⢀⡀⡀",
"⣘⣋⠀⣂⣀⡀⠄⢬⡛⠷⠄⠐⠭⠀⠐⢠⡤⠤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣤⣶⠲⠾⣟⢿⣽⣿⣻⣝⣯⣵⣚⣬⣛⣏⣳⠜⠱",
"⠀⠈⠛⠉⠉⠀⠦⢀⣀⡢⠔⠀⠀⠄⢰⡿⠇⠀⠀⠀⠀⣀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠌⠙⠿⣿⣴⠟⡸⢎⣽⣲⣕⣾⢾⣍⡙⠙⠋⠀⠀⠀⠀",
"⠀⠀⠐⠀⠁⠀⠁⠘⠓⠀⠉⠀⠚⠀⢸⠀⡖⠀⠀⠀⠀⣿⡄⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡆⢰⡇⠀⢻⠀⠀⣶⠚⣧⠚⢱⢫⡗⣦⢹⣼⣦⡌⠉⠛⠂⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠁⢀⠤⠀⠀⠘⠉⣀⣴⣉⠉⠁⠀⡼⠀⠀⠙⣧⣿⡄⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡧⢞⠁⠀⢺⣧⡀⢸⡯⣝⣾⣏⠿⣍⠛⠶⣶⣌⢻⣦⠀⡀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠄⡩⠂⠈⠁⣠⠖⣶⣶⡞⠁⡄⠀⣼⡯⠀⡾⠀⠀⠑⣤⡀⠀⠀⠀⠀⡴⠀⢀⠾⡇⠀⢾⡰⠀⣴⠙⣿⣮⡷⢻⡝⣿⣯⣿⣟⣦⣬⡿⠙⠁⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠖⠉⠀⠐⠃⢰⠏⣰⠟⣹⠏⠀⢻⣿⣤⡇⠀⠀⡀⠀⠱⠀⠀⠀⣞⠤⢀⡾⠊⢳⣀⡼⠃⢲⣿⣟⢻⡽⣿⠀⢻⠘⢭⣻⣿⡿⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⣴⢋⡐⠃⢠⠾⢏⣽⣿⡚⢦⣌⠻⣦⡀⠀⠀⠈⣠⣴⣿⠄⡔⠚⣟⠀⢀⢯⣉⣿⣞⣷⣿⣇⢌⣇⠀⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠞⡽⠙⢻⣧⡾⠩⢆⡞⣿⣿⣧⣈⡏⢧⠸⣇⡀⠀⣰⡿⠟⠁⢸⠀⣲⣿⠃⢢⢿⣿⣿⣿⣣⢾⡌⢦⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⡤⣾⡿⠁⠉⠿⣌⣽⣷⣯⣽⡷⠾⣀⢸⣿⠤⣿⣵⠓⠢⠞⠀⠀⠈⡉⠈⢉⣁⠘⣿⣿⠾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠘⠁⠢⢽⡿⠟⠋⣁⡢⣥⣼⠾⠗⣋⣤⣤⣀⡈⠉⠓⢤⣠⣀⣀⠉⠀⢿⢟⠓⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⠉⢀⣀⡘⢻⣿⣿⢠⣤⣬⣿⣿⡟⠁⣠⡾⢛⣭⣤⣀⠉⠑⢦⡀⢻⣿⣿⣿⣦⣨⣿⣿⣿⣷⡦⡀⠀⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⢠⣤⣴⣦⣴⣿⣿⣾⣯⡿⢿⡱⣿⣷⣿⣾⣿⣿⠿⠶⣿⣿⡀⢻⣿⣿⣿⡇⠀⢀⣿⠶⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣷⡄⣄⢤⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⢀⣼⣷⠈⣧⣽⣿⣪⣿⡿⣿⣛⣻⣴⣿⣿⣿⣿⣿⣿⣿⣦⣤⣽⣿⣾⣿⣟⠯⠴⠶⠟⣂⣠⣴⣿⣿⣿⣽⡿⣷⣾⣿⣿⣿⣿⣿⣿⣿⣧⣾⣤⡶⣆⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⡠⡺⢿⣤⣷⣼⢟⢃⢱⠿⡄⡈⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⡿⣿⢿⣷⣤⣭⣽⣶⡷⠚⠹⣿⣿⣿⣿⣷⣏⣿⡟⣿⣿⣿⣟⣾⣿⣟⣿⣿⣿⣿⣧⣼⠁⠀⠀⠀⠀⠀⠀",
"⠀⢀⣴⡎⠀⡸⠋⠙⡜⢘⡾⢽⡜⢳⡧⣄⡈⠡⠼⠿⣿⣏⣃⣛⢿⡿⡟⠈⠀⠀⠻⣿⠇⣸⠁⠄⠙⢿⠿⠋⡉⣙⢋⡿⢿⡿⣶⣾⣿⠿⣿⣿⡟⢛⣿⠛⣿⣷⡽⣶⡄⠀⠀⠀⠀",
"⠀⠔⡟⠁⠀⡀⠀⠀⡀⠈⠁⠀⣷⡘⣇⠀⠁⠀⡄⢤⣿⣿⣿⣿⣿⣅⣅⡆⠀⠀⣴⣿⣿⣾⣦⣠⣽⣼⣷⡻⣿⡹⣿⣷⣷⢾⢋⣭⣿⣿⡟⢸⡟⠠⣽⡈⠿⣿⠄⢹⣿⢄⠀⠀⠀",
"⠈⠘⠀⠀⠀⣣⠀⠀⠳⠄⠸⡀⢹⣧⠘⣇⠀⠀⠀⣔⣿⣿⣿⣿⣧⣿⡿⣿⣅⠀⠻⣿⢃⣴⣿⣿⣿⣿⣷⣧⡬⢽⣿⣯⠷⣬⣩⡿⣰⠿⢬⣿⣧⣿⣿⣧⣷⣿⠦⢆⣿⣆⠀⠀⠀",
"⡆⢀⠀⠀⠠⡟⠀⠀⠀⠀⡀⢷⠀⠹⣷⡹⠦⣄⣈⣻⣿⣿⣿⣿⢿⣿⣇⢹⣿⢷⣶⣿⣷⣿⣿⣏⣿⠟⠻⣿⣴⡿⠭⣿⣿⣿⣿⠟⠓⠐⣾⣿⣽⢿⣿⠋⠟⣿⡖⢺⣻⣽⡄⠀⠀",
"⡀⠀⠀⠀⠘⡇⠀⠀⠀⠀⠀⠘⢆⠐⣿⣿⣿⡾⢿⣿⣿⣟⣯⡿⣛⣶⡞⣯⡝⣼⣯⣿⣿⣿⣿⣿⣿⣶⣿⣿⣿⡐⠖⠾⠽⢬⣝⣤⡄⢿⢿⣏⣽⣶⡤⠌⠰⡟⢹⣼⠿⢹⣿⡄⠀",
"⠀⠀⠲⠀⠀⣧⠀⠀⠀⠀⣀⣤⠜⠉⠁⠀⠀⠀⠀⠹⣿⣿⣟⣳⣿⣵⡄⣰⣿⣿⣿⣿⣿⣿⣿⣹⣿⡿⢿⡏⣁⠀⠀⠁⠀⠀⠀⠀⠀⠀⢾⠿⠇⠹⠇⣈⣱⣿⠘⢿⡿⠿⡋⠳⠀",
"⠀⠀⠀⠀⢠⠁⠀⣅⠴⠚⠁⠀⢀⠀⠀⠀⠀⠀⠀⢤⣤⣭⣿⣯⡽⢿⣡⢿⣯⡿⠃⠀⠙⣬⣿⠿⣽⣷⣄⣙⣦⣤⡠⠄⠀⠀⠀⠀⠀⢀⠀⠀⠀⠉⢩⢿⣿⣿⢀⣸⣋⡀⠀⠀⠰",
"⠀⡀⢦⡀⠀⠀⠀⢻⡀⠀⠀⢀⣿⣿⣿⣿⣶⣦⣀⠐⢿⡿⢽⣛⣱⣿⡿⠛⣿⠁⠀⠀⠀⠈⡁⠀⢹⠋⡈⡇⠈⠔⠀⠀⠀⣴⣶⡯⣹⣷⣄⡀⠀⠀⠀⡠⠬⠞⢰⣾⣿⣻⠀⠀⠨",
"⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠘⣿⣿⣿⣿⣿⣿⣿⡿⣿⣧⣇⣸⣿⠟⠛⠀⢸⡿⠀⠀⠀⠀⠀⡿⠀⠛⠀⠛⠃⠀⣠⣤⠀⢿⣟⣿⡿⣿⠤⣿⠟⠀⠀⠀⠀⠀⠀⠃⠀⠀⠀⠀⠀⠸",
"⠀⠀⠀⠀⠀⠀⠀⣀⠇⠠⣙⣋⣛⡉⣍⡹⣿⣿⢯⣏⣺⣿⡞⠉⠀⠀⠀⠀⠃⠀⠀⠀⠀⠀⢸⠀⠰⡀⠀⡀⠀⢝⠫⡀⢬⢷⡼⠀⠀⠉⠉⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⢿⡠⠑⡀⠉⠙⠛⠛⠷⣿⣿⣿⡿⠿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠙⠤⡀⠀⣄⢧⢉⣿⣿⡦⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⡀⠀⢤⡄⠀⠙⠃⠁⠈⠉⠛⠶⣦⣿⣿⣿⣿⣿⣆⣤⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⢈⠀⠀⠀⡁⢤⣼⣿⣿⣆⠁⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠐⠀⠀⠀⢋⠖⠀⢈⣕⣶⣤⣤⣾⣿⢿⣛⣿⣻⣿⣿⣿⣿⣾⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢧⡀⢠⣳⣞⣷⣦⣥⣭⣙⠳⣌⠷⣖⣠⣄⣠⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠤⡄⠊⠔⠂⠈⠘⣿⣿⠿⣯⣾⣿⣿⢿⣻⣿⠭⢩⣿⣿⣿⢿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣧⣿⣷⡇⣽⣯⣀⡉⣉⣧⠈⠿⣿⣶⣦⡌⠓⢻⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠁⠄⠁⠌⢀⡒⡀⣋⠁⢦⣿⣿⣿⣟⣿⣿⣿⣶⣿⣿⣿⣿⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢞⣯⣷⠚⢻⣽⠶⣮⣝⢶⢤⣞⡻⠗⡀⠀⢀⡀⠀⢀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⢈⣉⣉⣻⡶⣿⣾⣿⣿⣶⣼⣻⣿⣶⣿⣿⠻⣓⠾⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⢿⣻⡿⡷⢀⣾⣿⠷⠄⠀⣈⣱⣒⠛⠚⠂⣁⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠈⠤⠽⢛⣿⣿⣻⣩⣱⣾⣿⣿⣿⣿⡿⢱⣊⠶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠂⠐⠀⠻⡿⠛⠀⠳⠀⠀⠈⠙⠛⠁⠀⠀⠐⠂⠀⠀⠀⠀",
"⠘⠃⣀⣀⣠⣛⣊⣹⡟⠛⡟⢋⣩⣽⣿⢛⠛⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠁⠀⠈⠀⠀⠀⠀⠀⠈⠀⠀⠀",
-- " ",
-- " █████ █████ ██████ █████ ███ ",
-- "░░███ ░░███ ░░██████ ░░███ ░███ ",
-- " ░███ ░███ ██████ █████ ████ ░███░███ ░███ ██████ ████████ █████████████ ░███ ",
-- " ░███████████ ███░░███░░███ ░███ ░███░░███░███ ███░░███░░███░░███░░███░░███░░███░███ ",
-- " ░███░░░░░███ ░███████ ░███ ░███ ░███ ░░██████ ░███ ░███ ░███ ░░░ ░███ ░███ ░███░███ ",
-- " ░███ ░███ ░███░░░ ░███ ░███ ░███ ░░█████ ░███ ░███ ░███ ░███ ░███ ░███░░░ ",
-- " █████ █████░░██████ ░░███████ █████ ░░█████░░██████ █████ █████░███ ████████ ",
-- "░░░░░ ░░░░░ ░░░░░░ ░░░░░███ ░░░░░ ░░░░░ ░░░░░░ ░░░░░ ░░░░░ ░░░ ░░░░░░░░ ",
-- " ███ ░███ ",
-- " ░░██████ ",
-- " ░░░░░░ ",
}
--[[ startify.section.mru.val = {
{ type = "text",
val = findtodos,
opts = {
position = "left",
hl = {{"hl_group", 0, -2}}
}
}
}--]]
startify.section.mru_cwd.val = { { type = "padding", val = 0 } }
-- Devicons - Not sure what this doe
startify.nvim_web_devicons.enabled = false
startify.nvim_web_devicons.highlight = false
startify.nvim_web_devicons.highlight = 'Number'
-- Top Menu
startify.section.top_buttons.val = {
startify.button('e', ' New file', ':ene <BAR> startinsert<CR>'),
startify.button('f', ' Find file', ':Telescope file_browser<CR>'),
startify.button('s', '⋅Find Word', ':Telescope live_grep<CR>'),
startify.button('t', '& Todo List', ':TodoTrouble keywords=TODO<CR>'),
startify.button('r', ' ' .. ' Recent files', ':Telescope oldfiles <CR>'),
startify.button('u', ' Show plugins', ':Lazy<CR>'),
startify.button('q', ' Quit', ':qa<CR>'),
}
-- Bottom Menu
startify.section.bottom_buttons.val = {
-- Show Empty Space
}
--[[ local function footer()
local version = vim.version()
local print_version = "v" .. version.major .. '.' .. version.minor .. '.' .. version.patch
local datetime = os.date('%Y/%m/%d %H:%M:%S')
return print_version .. ' ' .. datetime
end
--]]
startify.section.footer.val = {
}
alpha.setup(startify.config)
end
}

View File

@ -4,30 +4,13 @@ return {
-- They should be pulled first!
-----------------------------------------------------------------
-- {'williamboman/mason.nvim',
-- config = function() require("mason").setup({
-- ui = {
-- icons = {
-- package_installed = "✓",
-- package_pending = "➜",
-- package_uninstalled = "✗"
-- }
-- }
-- })
-- end,
-- },
-- { 'williamboman/mason-lspconfig.nvim',
-- config = function() require("mason-lspconfig").setup{
-- ensure_installed = { "lua_ls", "ruff", "black" },
-- } end,
-- },
{
"rachartier/tiny-inline-diagnostic.nvim",
event = "LspAttach", -- Or `LspAttach`
event = "VeryLazy", -- Or `LspAttach`
priority = 1000, -- needs to be loaded in first
config = function()
require('tiny-inline-diagnostic').setup()
vim.diagnostic.config({ virtual_text = true, virtual_lines = true })
vim.diagnostic.config({ virtual_text = true })
end
},
{

View File

@ -1,33 +0,0 @@
return {
"jay-babu/mason-null-ls.nvim",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"williamboman/mason.nvim",
"jose-elias-alvarez/null-ls.nvim",
},
config = function ()
require("mason-null-ls").setup({
ensure_installed = nil,
automatic_installation = true,
})
local null_ls = require'null-ls'
null_ls.setup({
debug = true,
sources = {
-- null_ls.builtins.diagnostics.markdownlint.with({
-- extra_args = { "--disable", "MD024", "MD013", "MD012", "--" }}),
-- null_ls.builtins.formatting.black,
-- null_ls.builtins.completion.luasnip,
-- null_ls.builtins.code_actions.gitsigns,
-- null_ls.builtins.diagnostics.ruff,
-- null_ls.builtins.formatting.ruff,
-- null_ls.builtins.formatting.prettierd,
-- null_ls.builtins.diagnostics.pylint.with({
-- diagnostics_postprocess = function(diagnostic)
-- diagnostic.code = diagnostic.message_id
-- end,
-- }),
},
})
end
}

View File

@ -1,21 +0,0 @@
return {
'jakewvincent/mkdnflow.nvim',
config = function()
require('mkdnflow').setup({
mappings = {
MkdnToggleToDo = {{'i', 'n'}, '<C-Space>'},
MkdnEnter = {{'i', 'n', 'v'}, '<CR>'},
MkdnExtendList = {{'n'}, '<leader>;'},
MkdnNewListItemBelowInsert = {{'n', 'i'}, '<leader>l'},
MkdnTableNextCell = false,
MkdnTab = {{'i',}, '<Tab>'},
MkdnSTab = {{'i'}, '<S-Tab>'},
MkdnFollowLink = {{'n'}, '<leader>p'}
},
links = {
name_is_source = true,
conceal = true,
},
})
end,
}

View File

@ -1,171 +0,0 @@
return {
'hrsh7th/nvim-cmp',
dependencies = {
'neovim/nvim-lspconfig',
'L3MON4D3/LuaSnip',
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-path',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-cmdline',
'hrsh7th/nvim-cmp',
'hrsh7th/cmp-calc',
'saadparwaiz1/cmp_luasnip',
'hrsh7th/cmp-nvim-lsp-signature-help',
'f3fora/cmp-spell',
},
config = function ()
local cmp_status_ok, cmp = pcall(require, 'cmp')
if not cmp_status_ok then
return
end
local luasnip_status_ok, luasnip = pcall(require, 'luasnip')
if not luasnip_status_ok then
return
end
require("luasnip.loaders.from_vscode").lazy_load()
cmp.setup({
-- Load snippet support
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body)
end
},
-- Completion settings
completion = {
--completeopt = 'menu,menuone,noselect'
keyword_length = 1
},
window = {
completion = {
winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None",
col_offset = -3,
side_padding = 0,
border = 'rounded',
scrollbar = '+',
},
documentation = {
border = 'rounded',
scrollbar = '|',
}
},
-- Key mapping
mapping = {
['<C-n>'] = cmp.mapping.select_next_item(),
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping({
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
}),
["<C-y>"] = cmp.config.disable,
['<CR>'] = cmp.mapping.confirm {
select = false,
},
-- Tab mapping
['<Tab>'] = function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end,
['<S-Tab>'] = function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end,
},
sources = {
{ name = 'nvim_lsp', },
{ name = 'luasnip', },
{ name = 'path' },
{ name = 'calc' },
{ name = 'nvim_lsp_signature_help' },
{ name = 'buffer' },
},
formatting = {
fields = {'menu', 'abbr', 'kind'},
format = function(entry, item)
local menu_icon = {
nvim_lsp = 'λ',
luasnip = '⋗',
buffer = 'Ω',
path = '',
calc = '󰃬',
nvim_lsp_signature_help = '󰷼',
}
item.menu = menu_icon[entry.source.name]
return item
end,
},
sorting = {
comparators = {
cmp.config.compare.offset,
cmp.config.compare.exact,
cmp.config.compare.score,
cmp.config.compare.recently_used,
require("cmp-under-comparator").under,
cmp.config.compare.kind,
},
},
})
-- Set up lspconfig.
local capabilities = require('cmp_nvim_lsp').default_capabilities()
-- Replace <YOUR_LSP_SERVER> with each lsp server you've enabled.
require'lspconfig'.pylsp.setup {
capabilities = capabilities
}
local lspconfig = require'lspconfig'
local configs = require'lspconfig.configs'
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true
if not configs.ls_emmet then
configs.ls_emmet = {
default_config = {
cmd = { 'ls_emmet', '--stdio' };
filetypes = {
'html',
'liquid',
'css',
'scss',
'javascriptreact',
'typescriptreact',
'haml',
'xml',
'xsl',
'pug',
'slim',
'sass',
'stylus',
'less',
'sss',
'hbs',
'handlebars',
};
root_dir = function(fname)
return vim.loop.cwd()
end;
settings = {};
};
}
end
require'lspconfig'.ls_emmet.setup {
capabilities = capabilities
}
end
}

View File

@ -1,78 +0,0 @@
return {
'neovim/nvim-lspconfig',
dependencies = { 'saghen/blink.cmp' },
config = function()
-- Setup language servers.
local lspconfig = require('lspconfig')
local configs = require('lspconfig.configs')
-- local cap abilities = vim.lsp.protocol.make_client_capabilities()
local capabilities = require('blink.cmp').get_lsp_capabilities()
-- capabilities.textDocument.completion.completionItem.snippetSupport = true
-- lspconfig.emmet_ls.setup{
-- on_attach = on_attach,
-- capabilities = capabilities,
-- filetypes = { "css", "eruby", "html", "javascript", "javascriptreact", "less", "sass", "scss", "svelte", "pug", "typescriptreact", "vue", "liquid" },
-- init_options = {
-- html = {
-- options = {
-- ["bem.enabled"] = true,
-- },
-- },
-- }
-- }
-- lspconfig.ruff.setup({
-- on_attach = on_attach,
-- filetypes = {"python"},
-- init_options = {
-- settings = {
-- enable = true,
-- -- ignoreStandardLibrary = true,
-- -- organizeImports = true,
-- -- fixAll = true,
-- lint = {
-- enable = true,
-- run = 'onType',
-- }
-- }
-- }
-- })
-- Global mappings.
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist)
--
-- -- Use LspAttach autocommand to only map the following keys
-- -- after the language server attaches to the current buffer
-- vim.api.nvim_create_autocmd('LspAttach', {
-- group = vim.api.nvim_create_augroup('UserLspConfig', {}),
-- callback = function(ev)
-- -- Enable completion triggered by <c-x><c-o>
-- vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
--
-- -- Buffer local mappings.
-- -- See `:help vim.lsp.*` for documentation on any of the below functions
-- local opts = { buffer = ev.buf }
-- vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
-- vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
-- vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
-- vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
-- vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts)
-- vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts)
-- vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts)
-- vim.keymap.set('n', '<space>wl', function()
-- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
-- end, opts)
-- vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts)
-- vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts)
-- vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts)
-- vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
-- vim.keymap.set('n', '<space>f', function()
-- vim.lsp.buf.format { async = true }
-- end, opts)
-- end,
-- })
end,
}

View File

@ -1,107 +0,0 @@
-- return {
-- 'neovim/nvim-lspconfig',
-- config = function()
-- -- Setup language servers.
-- local lspconfig = require('lspconfig')
-- local configs = require('lspconfig/configs')
-- local capabilities = vim.lsp.protocol.make_client_capabilities()
-- capabilities.textDocument.completion.completionItem.snippetSupport = true
--
-- lspconfig.emmet_ls.setup{
-- -- on_attach = on_attach,
-- capabilities = capabilities,
-- filetypes = { "css", "eruby", "html", "javascript", "javascriptreact", "less", "sass", "scss", "svelte", "pug", "typescriptreact", "vue","liquid" },
-- init_options = {
-- html = {
-- options = {
-- ["bem.enabled"] = true,
-- },
-- },
-- }
-- }
-- -- lspconfig.pylsp.setup{
-- -- -- Server-specific settings. See `:help lspconfig-setup`
-- -- settings = {
-- -- settings = {
-- -- pylsp = {
-- -- configurationSources = {"pylint"},
-- -- plugins = {
-- -- pylint = { enabled = true },
-- -- }
-- -- }
-- -- }
-- -- }
-- -- }
-- -- Global mappings.
-- -- See `:help vim.diagnostic.*` for documentation on any of the below functions
-- vim.keymap.set('n', '<space>e', vim.diagnostic.open_float)
-- vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
-- vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
-- vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist)
--
-- -- Use LspAttach autocommand to only map the following keys
-- -- after the language server attaches to the current buffer
-- vim.api.nvim_create_autocmd('LspAttach', {
-- group = vim.api.nvim_create_augroup('UserLspConfig', {}),
-- callback = function(ev)
-- -- Enable completion triggered by <c-x><c-o>
-- vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
--
-- -- Buffer local mappings.
-- -- See `:help vim.lsp.*` for documentation on any of the below functions
-- local opts = { buffer = ev.buf }
-- vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
-- vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
-- vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
-- vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
-- vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts)
-- vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts)
-- vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts)
-- vim.keymap.set('n', '<space>wl', function()
-- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
-- end, opts)
-- vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts)
-- vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts)
-- vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts)
-- vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
-- vim.keymap.set('n', '<space>f', function()
-- vim.lsp.buf.format { async = true }
-- end, opts)
-- end,
-- })
--
-- -- local capabilities = vim.lsp.protocol.make_client_capabilities()
-- -- capabilities.textDocument.completion.completionItem.snippetSupport = true
-- --
-- -- if not configs.ls_emmet then
-- -- configs.ls_emmet = {
-- -- default_config = {
-- -- cmd = { 'ls_emmet', '--stdio' };
-- -- filetypes = {
-- -- 'html',
-- -- 'liquid',
-- -- 'css',
-- -- 'scss',
-- -- 'javascriptreact',
-- -- 'typescriptreact',
-- -- 'haml',
-- -- 'xml',
-- -- 'xsl',
-- -- 'pug',
-- -- 'slim',
-- -- 'sass',
-- -- 'stylus',
-- -- 'less',
-- -- 'sss',
-- -- 'handlebars',
-- -- };
-- -- root_dir = function(fname)
-- -- return vim.loop.cwd()
-- -- end;
-- -- settings = {};
-- -- };
-- -- }
-- -- end
-- -- lspconfig.ls_emmet.setup { capabilities = capabilities }
-- -- end
--}

View File

@ -1,17 +0,0 @@
return {
'kristijanhusak/vim-dadbod-ui',
dependencies = {
{ 'tpope/vim-dadbod', lazy = true },
{ 'kristijanhusak/vim-dadbod-completion', ft = { 'sql', 'mysql', 'plsql' }, lazy = true }, -- Optional
},
cmd = {
'DBUI',
'DBUIToggle',
'DBUIAddConnection',
'DBUIFindBuffer',
},
init = function()
-- Your DBUI configuration
vim.g.db_ui_use_nerd_fonts = 1
end,
}

View File

@ -1,25 +0,0 @@
return {
"piersolenski/wtf.nvim",
dependencies = {
"MunifTanjim/nui.nvim",
},
opts = {},
keys = {
{
"gw",
mode = { "n", "x" },
function()
require("wtf").ai()
end,
desc = "Debug diagnostic with AI",
},
{
mode = { "n" },
"gW",
function()
require("wtf").search()
end,
desc = "Search diagnostic with Google",
},
},
}

View File

@ -50,3 +50,15 @@ echo 'eval "$(uv generate-shell-completion zsh)"' >> ~/.zshrc
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
eval "$(uv generate-shell-completion zsh)"
eval "$(uv generate-shell-completion zsh)"
eval "$(uv generate-shell-completion zsh)"
eval "$(uv generate-shell-completion zsh)"
eval "$(uv generate-shell-completion zsh)"
eval "$(uv generate-shell-completion zsh)"
eval "$(uv generate-shell-completion zsh)"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
eval "$(uv generate-shell-completion zsh)"
eval "$(uv generate-shell-completion zsh)"