small overhaul of nvim

This commit is contained in:
Michael Chalupiak
2026-05-03 18:11:21 -04:00
parent f3817cf484
commit 6b6ec87c90
8 changed files with 160 additions and 228 deletions

1
.gitignore vendored
View File

@@ -12,6 +12,7 @@ config/.config/kak/plugins/*
config/.config/mutt/chalupmc@rose-hulman config/.config/mutt/chalupmc@rose-hulman
config/.config/mutt/mikecchalupiak@outlook config/.config/mutt/mikecchalupiak@outlook
config/.config/mutt/spamreciver1@outlook config/.config/mutt/spamreciver1@outlook
config/.config/nvim/lazy-lock.json
config/.config/qt5ct/colors/* config/.config/qt5ct/colors/*
config/.config/qutebrowser/autoconfig.yml config/.config/qutebrowser/autoconfig.yml
config/.config/qutebrowser/rosepine/* config/.config/qutebrowser/rosepine/*

View File

@@ -4,12 +4,44 @@ local setnx = function(key, command, desc)
end end
setnx('<leader>ff', Snacks.picker.files, 'Find files') setnx('<leader>ff', Snacks.picker.files, 'Find files')
setnx('<leader>fF', function() Snacks.picker.files({ dirs = { '.' }}) end, 'Find files in current dir')
setnx('<leader>f/', Snacks.picker.grep_word, 'Search current word') setnx('<leader>f/', Snacks.picker.grep_word, 'Search current word')
setnx('<leader>fg', Snacks.picker.grep, 'Search in files') setnx('<leader>fg', Snacks.picker.grep, 'Search in files')
setnx('<leader>fr', Snacks.picker.recent, 'Find recent files') setnx('<leader>fr', Snacks.picker.recent, 'Find recent files')
setnx('<leader>b', Snacks.picker.buffers, 'List buffers') setnx('<leader>b', Snacks.picker.buffers, 'List buffers')
setnx('<leader>h', Snacks.picker.help, 'Search help') setnx('<leader>h', Snacks.picker.help, 'Search help')
setnx('<leader>X', require'hex'.toggle, 'Toggle hex editor') setnx('<leader>P', '<CMD>Markview splitToggle<CR>', 'Open markview preview')
setnx('<leader>z', Snacks.zen.zen, 'Toggle snacks zen mode')
local setto = function(key, command, desc)
set({ 'x', 'o' }, key, command, { desc = desc })
end
local setton = function(key, command, desc)
set({ 'n', 'x', 'o' }, key, command, { desc = desc })
end
local select_to = function(query)
return function ()
require'nvim-treesitter-textobjects.select'.select_textobject(query, "textobjects")
end
end
local move_next_start = function(query)
return function ()
require'nvim-treesitter-textobjects.move'.goto_next_start(query, "textobjects")
end
end
local move_prev_start = function(query)
return function ()
require'nvim-treesitter-textobjects.move'.goto_previous_start(query, "textobjects")
end
end
setto('if', select_to("@function.inner"), 'Select inside function')
setto('af', select_to("@function.outer"), 'Select around function')
setto('ia', select_to("@parameter.inner"), 'Select inside parameter')
setto('aa', select_to("@parameter.outer"), 'Select around parameter')
setton(']p', move_next_start("@parameter.inner"), 'Goto next parameter')
setton('[p', move_prev_start("@parameter.inner"), 'Goto previous parameter')
setnx('<leader>m', Snacks.picker.marks, 'Search marks') setnx('<leader>m', Snacks.picker.marks, 'Search marks')
setnx('<leader>q', Snacks.picker.qflist, 'Search quickfix list') setnx('<leader>q', Snacks.picker.qflist, 'Search quickfix list')
setnx('<leader>l', Snacks.picker.loclist, 'Search location list') setnx('<leader>l', Snacks.picker.loclist, 'Search location list')
@@ -48,8 +80,8 @@ setnx('`', '\'', 'Goto mark without column')
setnx('<leader>x', '<CMD>bd!<CR>', 'Close Current Buffer') setnx('<leader>x', '<CMD>bd!<CR>', 'Close Current Buffer')
setnx('grr', Snacks.picker.lsp_references, 'Search lsp references') setnx('grr', Snacks.picker.lsp_references, 'Search lsp references')
-- setnx('grI', tele.lsp_incoming_calls, 'Find incoming function calls') setnx('grI', Snacks.picker.lsp_incoming_calls, 'Find incoming function calls')
-- setnx('grO', tele.lsp_outgoing_calls, 'Find outgoing function calls') setnx('grO', Snacks.picker.lsp_outgoing_calls, 'Find outgoing function calls')
setnx('grd', Snacks.picker.diagnostics, 'Show LSP diagnostics') setnx('grd', Snacks.picker.diagnostics, 'Show LSP diagnostics')
setnx('grD', (function() setnx('grD', (function()
local diag = true local diag = true

View File

@@ -8,41 +8,22 @@ vim.api.nvim_create_autocmd('LspAttach', {
end end
}) })
-- vim.lsp.config('rust-analyzer', { vim.lsp.config('lua_ls', {
-- settings = { settings = {
-- ["rust-analyzer"] = { Lua = {
-- inlayHints = { workspace = {
-- bindingModeHints = { library = vim.api.nvim_get_runtime_file("", true),
-- enable = false, maxPreload = 100000,
-- }, preloadFileSize = 100000,
-- chainingHints = { }
-- enable = true, }
-- }, }
-- closingBraceHints = { })
-- enable = true,
-- minLines = 25, vim.lsp.config('tinymist', {
-- }, settings = {
-- closureReturnTypeHints = { exportPdf = "onType",
-- enable = "never", },
-- }, })
-- lifetimeElisionHints = {
-- enable = "never", vim.diagnostic.config({ update_in_insert = true, float = true, virtual_lines = true})
-- useParameterNames = false,
-- },
-- maxLength = 25,
-- parameterHints = {
-- enable = true,
-- },
-- reborrowHints = {
-- enable = "never",
-- },
-- renderColons = true,
-- typeHints = {
-- enable = true,
-- hideClosureInitialization = false,
-- hideNamedConstructor = false,
-- },
-- },
-- }
-- }
-- })

View File

@@ -14,6 +14,7 @@ vim.opt.winborder = 'none'
vim.opt.smartindent = true vim.opt.smartindent = true
vim.opt.foldlevel = 9999
-- vim.opt.spell = true -- vim.opt.spell = true
vim.opt.spelllang = 'en_us' vim.opt.spelllang = 'en_us'

View File

@@ -21,15 +21,6 @@ return {
}, },
}, },
-- {
-- "MysticalDevil/inlay-hints.nvim",
-- event = "LspAttach",
-- dependencies = { "neovim/nvim-lspconfig" },
-- config = function()
-- require("inlay-hints").setup()
-- end
-- },
--
{ {
'saghen/blink.cmp', 'saghen/blink.cmp',
-- optional: provides snippets for the snippet source -- optional: provides snippets for the snippet source

View File

@@ -1,66 +1,39 @@
return { return {
{ {
'nvim-treesitter/nvim-treesitter', 'neovim-treesitter/nvim-treesitter',
-- branch = 'main', dependencies = { 'neovim-treesitter/treesitter-parser-registry' },
branch = 'main',
version = false, version = false,
lazy = false, lazy = false,
build = ':TSUpdate', build = ':TSUpdate',
config = function() config = function()
require'nvim-treesitter.configs'.setup { local langs = require'nvim-treesitter'.get_installed('parsers')
textobjects = { vim.api.nvim_create_autocmd('FileType', {
select = { pattern = langs,
enable = true, callback = function()
lookahead = true, vim.treesitter.start() -- highlighting
keymaps = { vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()' -- folds
["af"] = "@function.outer", vim.wo.foldmethod = 'expr'
["if"] = "@function.inner", vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" -- indentation
} end,
}, })
move = {
enable = true,
set_jumps = false,
goto_next_start = {
[']a'] = '@parameter.inner',
},
goto_previous_start = {
['[a'] = '@parameter.inner',
}
},
},
auto_install = true,
highlight = {
enable = true,
},
}
end end
}, },
{ {
'nvim-treesitter/nvim-treesitter-textobjects', 'nvim-treesitter/nvim-treesitter-textobjects',
branch = 'main',
opts = {
select = {
lookahead = true,
}
}
}, },
-- {
-- 'folke/twilight.nvim',
-- dependencies = {
-- 'nvim-treesitter/nvim-treesitter',
-- },
-- cmd = {
-- 'Twilight',
-- 'TwilightEnable',
-- 'TwilightDisable',
-- },
-- },
-- {
-- 'RRethy/vim-illuminate',
-- event = 'VeryLazy',
-- lazy = false,
-- },
{ {
'0oAstro/dim.lua', '0oAstro/dim.lua',
dependencies = { dependencies = {
'nvim-treesitter/nvim-treesitter', 'neovim-treesitter/nvim-treesitter',
'neovim/nvim-lspconfig' 'neovim/nvim-lspconfig'
}, },
event = 'LspAttach', event = 'LspAttach',

View File

@@ -5,30 +5,12 @@ return {
event = 'VeryLazy', event = 'VeryLazy',
}, },
-- {
-- 'lukas-reineke/indent-blankline.nvim',
-- event = 'VeryLazy',
-- config = function()
-- require'ibl'.setup{ scope = { enabled = false } }
-- end
-- },
{ {
'nvim-tree/nvim-web-devicons', 'nvim-tree/nvim-web-devicons',
-- event = 'VeryLazy', -- event = 'VeryLazy',
lazy = true, lazy = true,
}, },
-- {
-- 'goolord/alpha-nvim',
-- dependencies = {
-- 'nvim-tree/nvim-web-devicons',
-- },
-- config = function()
-- require('alpha').setup(require'alpha.themes.startify'.config)
-- end
-- },
{ {
'lewis6991/gitsigns.nvim', 'lewis6991/gitsigns.nvim',
event = 'VeryLazy', event = 'VeryLazy',
@@ -37,9 +19,9 @@ return {
} }
}, },
{ -- {
'Bekaboo/dropbar.nvim', -- 'Bekaboo/dropbar.nvim',
}, -- },
{ {
'nvim-lualine/lualine.nvim', 'nvim-lualine/lualine.nvim',
@@ -52,8 +34,8 @@ return {
for i, server in pairs(vim.lsp.get_clients({ bufnr = 0 })) do for i, server in pairs(vim.lsp.get_clients({ bufnr = 0 })) do
table.insert(names, server.name) table.insert(names, server.name)
end end
return " [" .. table.concat(names, " ") .. "]" -- return " [" .. table.concat(names, " ") .. "]"
-- return "[" .. table.concat(names, " ") .. "]" return "[" .. table.concat(names, " ") .. "]"
end end
require('lualine').setup { require('lualine').setup {
options = { options = {

View File

@@ -1,21 +1,4 @@
return { return {
{
'nvim-lua/plenary.nvim',
-- event = 'VeryLazy',
lazy = true,
},
{
'RaafatTurki/hex.nvim',
config = true,
cmd = {
'HexDump',
'HexAssemble',
'HexToggle',
},
},
{ {
"sindrets/diffview.nvim", "sindrets/diffview.nvim",
event = 'VeryLazy', event = 'VeryLazy',
@@ -33,7 +16,6 @@ return {
"NeogitOrg/neogit", "NeogitOrg/neogit",
lazy = true, lazy = true,
dependencies = { dependencies = {
"nvim-lua/plenary.nvim", -- required
"sindrets/diffview.nvim", -- optional - Diff integration "sindrets/diffview.nvim", -- optional - Diff integration
-- Only one of these is needed. -- Only one of these is needed.
@@ -44,6 +26,14 @@ return {
}, },
}, },
{
"OXY2DEV/markview.nvim",
lazy = false,
-- Completion for `blink.cmp`
dependencies = { "saghen/blink.cmp" },
},
{ {
'vieitesss/command.nvim', 'vieitesss/command.nvim',
lazy = false, lazy = false,
@@ -51,12 +41,6 @@ return {
opts = {}, opts = {},
}, },
{
'glacambre/firenvim',
build = ":call firenvim#install(0)"
},
{ {
'brenoprata10/nvim-highlight-colors', 'brenoprata10/nvim-highlight-colors',
event = 'VeryLazy', event = 'VeryLazy',
@@ -92,7 +76,29 @@ return {
-- or leave it empty to use the default settings -- or leave it empty to use the default settings
-- refer to the configuration section below -- refer to the configuration section below
bigfile = { enabled = true }, bigfile = { enabled = true },
-- dashboard = { enabled = true }, dashboard = {
enabled = true,
presets = {
},
formats = {
key = function(item)
return { { "[", hl = "special" }, { item.key, hl = "key" }, { "]", hl = "special" } }
end,
},
sections = {
-- { section = "terminal", cmd = "fortune -s | cowsay", hl = "header", padding = 1, indent = 8 },
{ section = "header" },
{ section = "startup" },
{ title = "MRU", padding = 1 },
{ section = "recent_files", limit = 8, padding = 1 },
{ title = "MRU ", file = vim.fn.fnamemodify(".", ":~"), padding = 1 },
{ section = "recent_files", cwd = true, limit = 8, padding = 1 },
{ title = "Sessions", padding = 1 },
{ section = "projects", padding = 1 },
{ title = "Bookmarks", padding = 1 },
{ section = "keys" },
},
},
dim = { enabled = true }, dim = { enabled = true },
-- explorer = { enabled = true }, -- explorer = { enabled = true },
-- git = { enabled = false }, -- git = { enabled = false },
@@ -113,92 +119,57 @@ return {
}, },
notifier = { enabled = true }, notifier = { enabled = true },
-- quickfile = { enabled = true }, -- quickfile = { enabled = true },
-- scope = { enabled = true }, scope = { enabled = true },
-- scroll = { enabled = true }, -- scroll = { enabled = true },
terminal = { enabled = false }, terminal = { enabled = false },
-- statuscolumn = { enabled = true }, -- statuscolumn = { enabled = true },
-- words = { enabled = true }, words = { enabled = true },
zen = {
enabled = true,
-- toggles = {
-- git_signs = true,
-- },
win = {
backdrop = {
transparent = false,
blend = 99,
},
},
},
}, },
}, },
{ {
'echasnovski/mini.nvim', "folke/which-key.nvim",
config = function() event = "VeryLazy",
require('mini.starter').setup() opts = {
-- require('mini.cursorword').setup() -- your configuration comes here
local miniclue = require'mini.clue' -- or leave it empty to use the default settings
miniclue.setup{ -- refer to the configuration section below
window = { preset = 'helix',
delay = 0, sort = { "order", "alphanum", "local", "mod" },
config = { win = {
width = 'auto', border = 'none',
}, },
}, icons = {
triggers = { rules = false,
-- Leader triggers },
{ mode = 'n', keys = '<Leader>' }, spec = {
{ mode = 'x', keys = '<Leader>' }, { '<leader>f', group = 'Find' },
{ '<leader>o', group = 'Open' },
-- Built-in completion { '<leader>g', group = 'Git' },
{ mode = 'i', keys = '<C-x>' }, { '<leader>c', group = 'Compile' },
},
-- `g` key },
{ mode = 'n', keys = 'g' }, keys = {
{ mode = 'x', keys = 'g' }, {
"<leader>?",
-- Next function()
{ mode = 'n', keys = '['}, require("which-key").show({ global = false })
{ mode = 'n', keys = ']'}, end,
{ mode = 'x', keys = '['}, desc = "Buffer Local Keymaps (which-key)",
{ mode = 'x', keys = ']'}, },
},
-- Marks
{ mode = 'n', keys = "'" },
{ mode = 'n', keys = '`' },
{ mode = 'x', keys = "'" },
{ mode = 'x', keys = '`' },
-- Registers
{ mode = 'n', keys = '"' },
{ mode = 'x', keys = '"' },
{ mode = 'i', keys = '<C-r>' },
{ mode = 'c', keys = '<C-r>' },
-- Window commands
{ mode = 'n', keys = '<C-w>' },
-- `z` key
{ mode = 'n', keys = 'z' },
{ mode = 'x', keys = 'z' },
-- Localleader
{ mode = 'n', keys = '<Localleader>'},
{ mode = 'x', keys = '<Localleader>'},
},
clues = {
-- Enhance this by adding descriptions for <Leader> mapping groups
miniclue.gen_clues.builtin_completion(),
miniclue.gen_clues.g(),
miniclue.gen_clues.marks(),
miniclue.gen_clues.registers(),
miniclue.gen_clues.windows(),
miniclue.gen_clues.z(),
{ mode = 'n', keys = '<leader>f', desc = '+Find' },
{ mode = 'x', keys = '<leader>f', desc = '+Find' },
{ mode = 'n', keys = '<leader>o', desc = '+Open' },
{ mode = 'x', keys = '<leader>o', desc = '+Open' },
{ mode = 'n', keys = '<leader>g', desc = '+Git' },
{ mode = 'x', keys = '<leader>g', desc = '+Git' },
{ mode = 'n', keys = '<leader>c', desc = '+Compile' },
{ mode = 'x', keys = '<leader>c', desc = '+Compile' },
},
}
end
}, },
{ {
@@ -302,19 +273,19 @@ return {
-- Add cursor at next argument treesitter -- Add cursor at next argument treesitter
set({'n', 'x'}, ']A', function() set({'n', 'x'}, ']A', function()
if vim.v.count < 1 then if vim.v.count < 1 then
mc.addCursor(']a') mc.addCursor(']p')
else else
for _=1, vim.v.count - 1 do for _=1, vim.v.count - 1 do
mc.addCursor(']a') mc.addCursor(']p')
end end
end end
end, { desc = 'Create multicursor on next argument'}) end, { desc = 'Create multicursor on next argument'})
set({'n', 'x'}, '[A', function() set({'n', 'x'}, '[A', function()
if vim.v.count < 1 then if vim.v.count < 1 then
mc.addCursor('[a') mc.addCursor('[p')
else else
for _=1, vim.v.count - 1 do for _=1, vim.v.count - 1 do
mc.addCursor('[a') mc.addCursor('[p')
end end
end end
end, { desc = 'Create multicursor on previous argument'}) end, { desc = 'Create multicursor on previous argument'})