remove unused nix code

This commit is contained in:
iofq 2025-10-06 22:52:22 -05:00
parent 8922491578
commit 9a955d86a0
7 changed files with 196 additions and 387 deletions

View file

@ -1,27 +1,26 @@
local cmd = vim.api.nvim_create_autocmd
-- open :h in buffers
vim.api.nvim_create_autocmd('BufWinEnter', {
pattern = '*',
callback = function(event)
if vim.bo[event.buf].filetype == 'help' then
vim.cmd.only()
vim.keymap.set('n', 'q', vim.cmd.bdelete, { noremap = true, silent = true })
vim.bo.buflisted = false
end
cmd('FileType', {
group = vim.api.nvim_create_augroup('help', { clear = true }),
pattern = 'help',
callback = function(_)
vim.cmd.only()
vim.keymap.set('n', 'q', vim.cmd.bdelete, { noremap = true })
vim.bo.buflisted = false
end,
})
-- resize splits if window got resized
vim.api.nvim_create_autocmd({ 'VimResized' }, {
cmd({ 'VimResized' }, {
group = vim.api.nvim_create_augroup('resize_splits', { clear = true }),
callback = function()
local current_tab = vim.fn.tabpagenr()
vim.cmd('tabdo wincmd =')
vim.cmd('tabnext ' .. current_tab)
vim.cmd('tabnext ' .. vim.fn.tabpagenr())
end,
})
-- Check if we need to reload the file when it changed
vim.api.nvim_create_autocmd({ 'FocusGained', 'TermClose', 'TermLeave' }, {
cmd({ 'FocusGained', 'TermClose', 'TermLeave' }, {
group = vim.api.nvim_create_augroup('check_reload', { clear = true }),
callback = function()
if vim.o.buftype ~= 'nofile' then
@ -31,36 +30,36 @@ vim.api.nvim_create_autocmd({ 'FocusGained', 'TermClose', 'TermLeave' }, {
})
-- Init treesitter
vim.api.nvim_create_autocmd('FileType', {
cmd('FileType', {
callback = function(event)
local bufnr = event.buf
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
pcall(vim.treesitter.start, bufnr)
vim.keymap.set({'v','n'}, ']]', function()
vim.keymap.set({ 'v', 'n' }, ']]', function()
require('nvim-treesitter-textobjects.move').goto_next_start('@function.outer', 'textobjects')
end, { buffer = bufnr, desc = 'next function def' })
vim.keymap.set({'v','n'}, '[[', function()
end, { buffer = bufnr })
vim.keymap.set({ 'v', 'n' }, '[[', function()
require('nvim-treesitter-textobjects.move').goto_previous_start('@function.outer', 'textobjects')
end, { buffer = bufnr, desc = 'prev function def' })
vim.keymap.set({'v','n'}, ']a', function()
end, { buffer = bufnr })
vim.keymap.set({ 'v', 'n' }, ']a', function()
require('nvim-treesitter-textobjects.move').goto_next_start('@parameter.inner', 'textobjects')
end, { buffer = bufnr, desc = 'next param def' })
vim.keymap.set({'v','n'}, '[a', function()
end, { buffer = bufnr })
vim.keymap.set({ 'v', 'n' }, '[a', function()
require('nvim-treesitter-textobjects.move').goto_previous_start('@parameter.inner', 'textobjects')
end, { buffer = bufnr, desc = 'prev param def' })
vim.keymap.set({'v','n'}, ']A', function()
end, { buffer = bufnr })
vim.keymap.set({ 'v', 'n' }, ']A', function()
require('nvim-treesitter-textobjects.swap').swap_next('@parameter.inner')
end, { buffer = bufnr, desc = 'swap next arg' })
vim.keymap.set({'v','n'}, '[A', function()
end, { buffer = bufnr })
vim.keymap.set({ 'v', 'n' }, '[A', function()
require('nvim-treesitter-textobjects.swap').swap_previous('@parameter.inner')
end, { buffer = bufnr, desc = 'swap prev arg' })
end, { buffer = bufnr })
end,
})
-- Init LSP
vim.api.nvim_create_autocmd('LspAttach', {
cmd('LspAttach', {
group = vim.api.nvim_create_augroup('UserLspConfig', {}),
callback = function(ev)
local client = vim.lsp.get_client_by_id(ev.data.client_id)
@ -69,24 +68,20 @@ vim.api.nvim_create_autocmd('LspAttach', {
end
vim.keymap.set('n', 'gO', function()
Snacks.picker.lsp_symbols { focus = 'list' }
end, { buffer = ev.buf, desc = 'LSP symbols' })
end, { buffer = ev.buf })
vim.keymap.set('n', 'grh', function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
end, { buffer = ev.buf, desc = 'LSP hints toggle' })
vim.keymap.set('n', 'grl', vim.lsp.codelens.run, { buffer = ev.buf, desc = 'vim.lsp.codelens.run()' })
end, { buffer = ev.buf })
vim.keymap.set('n', 'grl', vim.lsp.codelens.run, { buffer = ev.buf })
vim.keymap.set('n', 'gre', function()
vim.diagnostic.setloclist()
end, { buffer = ev.buf, desc = 'LSP buffer diagnostics' })
vim.keymap.set('n', 'grE', function()
vim.diagnostic.setqflist()
end, { buffer = ev.buf, desc = 'LSP diagnostics' })
vim.keymap.set('n', 'gre', vim.diagnostic.setloclist, { buffer = ev.buf })
vim.keymap.set('n', 'grE', vim.diagnostic.setqflist, { buffer = ev.buf })
-- Auto-refresh code lenses
if client:supports_method('textDocument/codeLens') or client.server_capabilities.codeLensProvider then
vim.lsp.codelens.refresh { bufnr = ev.buf }
vim.api.nvim_create_autocmd({ 'InsertLeave', 'TextChanged' }, {
cmd({ 'InsertLeave', 'TextChanged' }, {
callback = function()
vim.lsp.codelens.refresh { bufnr = ev.buf }
end,

View file

@ -1,18 +0,0 @@
-- Switch tab length on the fly
vim.keymap.set('n', '\\t', function()
vim.o.tabstop = vim.o.tabstop == 8 and 2 or 2 * vim.o.tabstop
vim.notify('tabstop: ' .. vim.o.tabstop)
end, { silent = true, desc = 'toggle tabstop' })
vim.keymap.set({ 'v', 'i' }, 'wq', '<esc>l', { noremap = true, silent = true })
vim.keymap.set('v', '<', '<gv')
vim.keymap.set('v', '>', '>gv')
vim.keymap.set('n', 'n', 'nzz', { noremap = true })
vim.keymap.set('n', 'N', 'Nzz', { noremap = true })
vim.keymap.set('n', '<C-u>', '<C-u>zz', { noremap = true })
vim.keymap.set('n', '<C-d>', '<C-d>zz', { noremap = true })
vim.keymap.set('v', '<A-j>', ":m '>+1<CR>gv=gv", { desc = 'move selection down' })
vim.keymap.set('v', '<A-k>', ":m '<-2<CR>gv=gv", { desc = 'move selection up' })
vim.keymap.set('n', 'gq', vim.cmd.bdelete, { noremap = true, silent = true, desc = 'close buffer' })
vim.keymap.set('n', 'gQ', function()
vim.cmd('bufdo bdelete')
end, { noremap = true, silent = true, desc = 'close all buffers' })

View file

@ -1,73 +0,0 @@
require('mini.basics').setup { mappings = { windows = true } }
require('mini.icons').setup()
vim.schedule(function()
require('mini.align').setup()
require('mini.pairs').setup()
require('mini.surround').setup()
require('mini.splitjoin').setup { detect = { separator = '[,;\n]' } }
local ai = require('mini.ai')
ai.setup {
n_lines = 300,
custom_textobjects = {
i = require('mini.extra').gen_ai_spec.indent(),
a = ai.gen_spec.treesitter { a = '@parameter.outer', i = '@parameter.inner' },
f = ai.gen_spec.treesitter { a = '@function.outer', i = '@function.inner' },
},
}
require('mini.git').setup()
vim.keymap.set('n', '<leader>go', function()
return MiniGit.show_at_cursor()
end, { noremap = true, desc = 'git show at cursor' })
vim.keymap.set('n', '<leader>gb', '<Cmd>Git blame -- %<CR>', { desc = 'git blame' })
local jump = require('mini.jump2d')
jump.setup {
view = { n_steps_ahead = 1, dim = true },
spotter = jump.gen_spotter.vimpattern(),
}
local diff = require('mini.diff')
diff.setup {
source = {
require('lib.minidiff_jj').gen_source(),
diff.gen_source.git(),
},
}
vim.keymap.set('n', '<leader>gp', function()
MiniDiff.toggle_overlay(0)
end, { noremap = true, desc = 'git diff overlay' })
local files = require('mini.files')
files.setup {
mappings = {
go_in_plus = '<CR>',
},
windows = {
preview = true,
width_preview = 50,
},
}
vim.keymap.set('n', '<leader>nc', function()
MiniFiles.open(vim.api.nvim_buf_get_name(0), false) -- open current buffer's dir
MiniFiles.reveal_cwd()
end, { desc = 'minifiles open' })
vim.keymap.set('n', '`', function()
local _, cur_entry_path = pcall(MiniFiles.get_fs_entry().path)
local cur_directory = vim.fs.dirname(cur_entry_path)
if cur_directory ~= '' then
vim.fn.chdir(cur_directory)
end
end)
-- pass file rename events to LSP
vim.api.nvim_create_autocmd('User', {
pattern = 'MiniFilesActionRename',
callback = function(event)
Snacks.rename.on_rename_file(event.data.from, event.data.to)
end,
})
end)

View file

@ -1,3 +1,8 @@
local map = vim.keymap.set
require('mini.basics').setup { mappings = { windows = true } }
require('mini.icons').setup()
require('dart').setup {
tabline = {
label_marked_fg = 'cyan',
@ -30,6 +35,7 @@ require('snacks').setup {
},
smart = {
multi = {
'buffers',
{ source = 'files', hidden = true },
{ source = 'git_files', untracked = true },
},
@ -38,73 +44,39 @@ require('snacks').setup {
},
}
vim.keymap.set({ 'n', 't' }, '<C-\\>', function()
Snacks.terminal.toggle()
end, { desc = 'terminal open' })
map({ 'n', 't' }, '<C-\\>', Snacks.terminal.toggle)
map('n', '<leader>ff', Snacks.picker.smart)
map('n', '<leader><leader>', Snacks.picker.smart)
map('n', '<leader>fa', Snacks.picker.grep)
map('n', '<leader>f8', Snacks.picker.grep_word)
map('n', '<leader>f?', Snacks.picker.pickers)
map('n', '<leader>fu', Snacks.picker.undo)
map('n', '<leader>fj', Snacks.picker.jumps)
map('n', '<leader>f.', Snacks.picker.resume)
map('n', '<leader>fb', Snacks.picker.buffers)
map('n', '<leader>fq', Snacks.picker.qflist)
map('n', '<leader>jf', require('lib.snacks_jj').status)
vim.keymap.set('n', '<leader>ff', function()
Snacks.picker.smart()
end, { desc = 'Fuzzy find smart' })
vim.keymap.set('n', '<leader>fa', function()
Snacks.picker.grep()
end, { desc = 'Fuzzy find grep' })
vim.keymap.set('n', '<leader>f8', function()
Snacks.picker.grep_word()
end, { desc = 'Fuzzy find grep word' })
vim.keymap.set('n', '<leader>f?', function()
Snacks.picker.pickers()
end, { desc = 'See all pickers' })
vim.keymap.set('n', '<leader>fu', function()
Snacks.picker.undo()
end, { desc = 'Pick undotree' })
vim.keymap.set('n', '<leader>fj', function()
Snacks.picker.jumps()
end, { desc = 'Pick jumps' })
vim.keymap.set('n', '<leader>f.', function()
Snacks.picker.resume()
end, { desc = 'Fuzzy find resume' })
vim.keymap.set('n', '<leader>fb', function()
Snacks.picker.buffers()
end, { desc = 'Fuzzy find buffers' })
vim.keymap.set('n', '<leader>fq', function()
Snacks.picker.qflist()
end, { desc = 'pick quickfix list' })
vim.keymap.set('n', '<leader>jf', function()
require('lib.snacks_jj').status()
end, { desc = 'pick notifications' })
vim.schedule(function()
require('nvim-treesitter').setup()
require('nvim-treesitter-textobjects').setup()
require('render-markdown').setup()
require('refactoring').setup()
vim.keymap.set('n', '<leader>rr', function()
require('refactoring').select_refactor()
end, { desc = 'Refactor' })
vim.keymap.set('n', '<leader>rv', function()
map('n', '<leader>rr', require('refactoring').select_refactor)
map('n', '<leader>rv', function()
require('refactoring').refactor('Inline Variable')
end, { desc = 'Inline Variable' })
end)
require('quicker').setup()
vim.keymap.set('n', '<leader>qf', function()
map('n', '<leader>qf', function()
require('quicker').toggle { max_height = 20 }
end, { desc = 'Toggle qflist' })
end)
local close = { { { 'n' }, 'q', vim.cmd.DiffviewClose, { desc = 'Close Diffview' } } }
require('diffview').setup {
use_icons = false,
enhanced_diff_hl = true,
default_args = {
DiffviewOpen = { '--imply-local' },
},
default_args = { DiffviewOpen = { '--imply-local' } },
view = {
merge_tool = {
layout = 'diff4_mixed',
@ -112,21 +84,19 @@ vim.schedule(function()
},
},
keymaps = {
view = {
{ { 'n' }, 'q', vim.cmd.DiffviewClose, { desc = 'Close Diffview' } },
},
file_panel = {
{ { 'n' }, 'q', vim.cmd.DiffviewClose, { desc = 'Close Diffview' } },
},
file_history_panel = {
{ { 'n' }, 'q', vim.cmd.DiffviewClose, { desc = 'Close Diffview' } },
},
view = close,
file_panel = close,
file_history_panel = close,
},
}
vim.keymap.set('n', '<leader>nb', vim.cmd.DiffviewOpen, { desc = 'diffview open' })
vim.keymap.set('n', '<leader>nH', vim.cmd.DiffviewFileHistory, { desc = 'diffview history' })
vim.keymap.set('n', '<leader>nh', '<cmd>DiffviewFileHistory %<cr>', { desc = 'diffview history' })
map('n', '<leader>nb', vim.cmd.DiffviewOpen)
map('n', '<leader>nH', vim.cmd.DiffviewFileHistory)
map('n', '<leader>nh', '<cmd>DiffviewFileHistory %<cr>')
map('n', '<leader>go', function()
local id = vim.fn.expand('<cword>')
vim.cmd('DiffviewOpen ' .. id .. '~1' .. '..' .. id)
end)
require('conform').setup {
notify_no_formatters = false,
@ -146,14 +116,14 @@ vim.schedule(function()
return { timeout_ms = 1500, lsp_format = 'fallback' }
end,
}
vim.keymap.set('n', '\\f', function()
map('n', '\\f', function()
vim.b.disable_autoformat = not vim.b.disable_autoformat
vim.notify(string.format('Buffer formatting disabled: %s', vim.b.disable_autoformat))
end, { desc = 'toggle buffer formatting' })
vim.keymap.set('n', '\\F', function()
end)
map('n', '\\F', function()
vim.g.disable_autoformat = not vim.g.disable_autoformat
vim.notify(string.format('Global formatting disabled: %s', vim.g.disable_autoformat))
end, { desc = 'toggle global formatting' })
end)
require('lint').linters_by_ft = {
docker = { 'hadolint' },
@ -180,36 +150,10 @@ vim.schedule(function()
enabled = function()
return not vim.tbl_contains({ 'snacks_picker_input' }, vim.bo.filetype)
end,
fuzzy = {
sorts = {
'exact',
'score',
'sort_text',
},
},
sources = {
default = {
'lsp',
'path',
'snippets',
'ripgrep',
'buffer',
},
default = { 'lsp', 'snippets', 'ripgrep', 'buffer' },
providers = {
lsp = {
fallbacks = {}, -- include buffer even when LSP is active
score_offset = 10,
},
snippets = {
score_offset = -10,
},
path = {
opts = {
get_cwd = function(_)
return vim.fn.getcwd() -- use nvim pwd instead of current file pwd
end,
},
},
lsp = { fallbacks = {} }, -- include buffer even when LSP is active
ripgrep = {
module = 'blink-ripgrep',
name = 'rg',
@ -219,35 +163,94 @@ vim.schedule(function()
},
},
cmdline = {
completion = {
menu = {
auto_show = true,
},
},
completion = { menu = { auto_show = true } },
},
completion = {
documentation = {
auto_show = true,
auto_show_delay_ms = 500,
},
documentation = { auto_show = true },
menu = {
draw = {
treesitter = { 'lsp' },
columns = {
{ 'label', 'label_description', gap = 1 },
{ 'source_name', 'kind', gap = 1 },
},
},
},
trigger = {
show_on_keyword = true,
},
},
signature = {
enabled = true,
trigger = {
show_on_insert = true,
},
trigger = { show_on_insert = true },
},
}
end)
vim.schedule(function()
require('mini.align').setup()
require('mini.pairs').setup()
require('mini.surround').setup()
require('mini.splitjoin').setup { detect = { separator = '[,;\n]' } }
local ai = require('mini.ai')
ai.setup {
n_lines = 300,
custom_textobjects = {
i = require('mini.extra').gen_ai_spec.indent(),
a = ai.gen_spec.treesitter { a = '@parameter.outer', i = '@parameter.inner' },
f = ai.gen_spec.treesitter { a = '@function.outer', i = '@function.inner' },
},
}
require('mini.git').setup()
map('n', '<leader>gb', '<Cmd>Git blame -- %<CR>')
local jump = require('mini.jump2d')
jump.setup {
view = { n_steps_ahead = 1, dim = true },
spotter = jump.gen_spotter.vimpattern(),
}
local diff = require('mini.diff')
diff.setup {
source = {
require('lib.minidiff_jj').gen_source(),
diff.gen_source.git(),
},
}
map('n', '<leader>gp', MiniDiff.toggle_overlay)
require('mini.files').setup {
mappings = { go_in_plus = '<CR>' },
windows = {
preview = true,
width_preview = 50,
},
}
map('n', '<leader>nc', function()
MiniFiles.open(vim.api.nvim_buf_get_name(0), false) -- open current buffer's dir
MiniFiles.reveal_cwd()
end)
vim.api.nvim_create_autocmd('User', {
pattern = 'MiniFilesBufferCreate',
callback = function(args)
map('n', '<leader>nc', function()
MiniFiles.synchronize()
MiniFiles.close()
end, { buffer = args.data.buf_id })
map('n', '`', function()
local _, cur_entry_path = pcall(MiniFiles.get_fs_entry().path)
local cur_directory = vim.fs.dirname(cur_entry_path)
if cur_directory ~= '' then
vim.fn.chdir(cur_directory)
end
end, { buffer = args.data.buf_id })
end,
})
-- pass file rename events to LSP
vim.api.nvim_create_autocmd('User', {
group = vim.api.nvim_create_augroup('snacks_rename', { clear = true }),
pattern = 'MiniFilesActionRename',
callback = function(event)
Snacks.rename.on_rename_file(event.data.from, event.data.to)
end,
})
end)