mirror of
https://github.com/iofq/nvim.nix.git
synced 2026-01-23 08:55:16 -06:00
Some checks are pending
build / build (nvim-min) (push) Waiting to run
flake.lock: Update
Flake lock file updates:
• Updated input 'neovim-nightly-overlay':
'github:nix-community/neovim-nightly-overlay/b7b3632fab34541543373254c265da03c1d0f240?narHash=sha256-SDLZMha2miaChOBGBkQJlTtk2kvcB7WIVVZ2l0/9byc%3D' (2025-10-01)
→ 'github:nix-community/neovim-nightly-overlay/7ff73a295b0065bde2f8b43b31558136ca77bd98?narHash=sha256-39JFRb006AOsIcOq%2B03H3y6YcGyaphk1CW5DRi14cOE%3D' (2025-10-13)
• Updated input 'neovim-nightly-overlay/flake-parts':
'github:hercules-ci/flake-parts/4524271976b625a4a605beefd893f270620fd751?narHash=sha256-%2BuWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw%3D' (2025-09-01)
→ 'github:hercules-ci/flake-parts/758cf7296bee11f1706a574c77d072b8a7baa881?narHash=sha256-wfG0S7pltlYyZTM%2BqqlhJ7GMw2fTF4mLKCIVhLii/4M%3D' (2025-10-01)
• Updated input 'neovim-nightly-overlay/git-hooks':
'github:cachix/git-hooks.nix/54df955a695a84cd47d4a43e08e1feaf90b1fd9b?narHash=sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo%3D' (2025-09-17)
→ 'github:cachix/git-hooks.nix/cfc9f7bb163ad8542029d303e599c0f7eee09835?narHash=sha256-PTod9NG%2Bi3XbbnBKMl/e5uHDBYpwIWivQ3gOWSEuIEM%3D' (2025-10-03)
• Updated input 'neovim-nightly-overlay/neovim-src':
'github:neovim/neovim/198c9e9bca7549cf7110be8c6f1df1c38d4e747f?narHash=sha256-oc1pPeoe8458X0r/Wum8CucVcJLlIp4mg%2B1HiOSVRgA%3D' (2025-09-30)
→ 'github:neovim/neovim/72b0bfa1fb7e897e5126aabae718a5480f466b9e?narHash=sha256-RnB%2BoJcP37YT9pjr1osUQtJc%2B1qcVyaaeSbiSyXwm1Y%3D' (2025-10-12)
• Updated input 'neovim-nightly-overlay/nixpkgs':
'github:NixOS/nixpkgs/647e5c14cbd5067f44ac86b74f014962df460840?narHash=sha256-JVZl8NaVRYb0%2B381nl7LvPE%2BA774/dRpif01FKLrYFQ%3D' (2025-09-28)
→ 'github:NixOS/nixpkgs/362791944032cb532aabbeed7887a441496d5e6e?narHash=sha256-gKl2Gtro/LNf8P%2B4L3S2RsZ0G390ccd5MyXYrTdMCFE%3D' (2025-10-11)
• Updated input 'neovim-nightly-overlay/treefmt-nix':
'github:numtide/treefmt-nix/5eda4ee8121f97b218f7cc73f5172098d458f1d1?narHash=sha256-ySNJ008muQAds2JemiyrWYbwbG%2BV7S5wg3ZVKGHSFu8%3D' (2025-09-24)
→ 'github:numtide/treefmt-nix/761ae7aff00907b607125b2f57338b74177697ed?narHash=sha256-gq9rdocpmRZCwLS5vsHozwB6b5nrOBDNc2kkEaTXHfg%3D' (2025-10-10)
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/d48b56f4899ee1d5377291576284969c9e37acc2?narHash=sha256-7G5fSMPNVwWNlFpZLwvKB8PUOaqPzFQbrtZ7RAzg2nw%3D' (2025-10-01)
→ 'github:NixOS/nixpkgs/09c05674757a82f32b67f70f702e56c4901a3cdd?narHash=sha256-IzUhHp/jU06jBW6S%2Bd12AO3sgq5yehYVTCBH7J6re5c%3D' (2025-10-13)
flake.lock: Update
Flake lock file updates:
• Updated input 'neovim-nightly-overlay/nixpkgs':
'github:NixOS/nixpkgs/362791944032cb532aabbeed7887a441496d5e6e?narHash=sha256-gKl2Gtro/LNf8P%2B4L3S2RsZ0G390ccd5MyXYrTdMCFE%3D' (2025-10-11)
→ follows 'nixpkgs'
153 lines
4.4 KiB
Lua
153 lines
4.4 KiB
Lua
local map = vim.keymap.set
|
|
|
|
require('mini.basics').setup { mappings = { windows = true } }
|
|
require('mini.icons').setup()
|
|
|
|
require('dart').setup {
|
|
tabline = {
|
|
icons = false,
|
|
label_marked_fg = 'cyan',
|
|
},
|
|
}
|
|
|
|
require('snacks').setup {
|
|
bigfile = { enabled = true },
|
|
terminal = { enabled = true },
|
|
indent = { enabled = true },
|
|
input = { enabled = true },
|
|
notifier = { enabled = true },
|
|
styles = { notification = { wo = { wrap = true } } },
|
|
picker = {
|
|
enabled = true,
|
|
matcher = {
|
|
frecency = true,
|
|
cwd_bonus = true,
|
|
},
|
|
layout = 'ivy_split',
|
|
sources = {
|
|
grep = { hidden = true },
|
|
lsp_symbols = {
|
|
filter = { default = true },
|
|
layout = {
|
|
preset = 'left',
|
|
layout = { width = 90, min_width = 90 },
|
|
},
|
|
},
|
|
smart = {
|
|
multi = {
|
|
'buffers',
|
|
{ source = 'files', hidden = true },
|
|
{ source = 'git_files', untracked = true },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
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('iofq.snacks_jj').status)
|
|
|
|
vim.schedule(function()
|
|
require('nvim-treesitter').setup()
|
|
require('nvim-treesitter-textobjects').setup()
|
|
require('render-markdown').setup()
|
|
require('nvim-autopairs').setup()
|
|
|
|
require('refactoring').setup()
|
|
map('n', '<leader>rr', require('refactoring').select_refactor)
|
|
map('n', '<leader>rv', function()
|
|
require('refactoring').refactor('Inline Variable')
|
|
end)
|
|
|
|
require('quicker').setup()
|
|
map('n', '<leader>qf', function()
|
|
require('quicker').toggle { max_height = 20 }
|
|
end)
|
|
|
|
require('conform').setup {
|
|
notify_no_formatters = false,
|
|
formatters_by_ft = {
|
|
json = { 'jq' },
|
|
lua = { 'stylua' },
|
|
python = { 'ruff' },
|
|
nix = { 'nixfmt' },
|
|
fish = { 'fish_indent' },
|
|
['*'] = { 'trim_whitespace' },
|
|
},
|
|
format_on_save = function(bufnr)
|
|
-- Disable with a global or buffer-local variable
|
|
if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
|
|
return
|
|
end
|
|
return { timeout_ms = 1500, lsp_format = 'fallback' }
|
|
end,
|
|
}
|
|
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)
|
|
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)
|
|
|
|
require('lint').linters_by_ft = {
|
|
docker = { 'hadolint' },
|
|
yaml = { 'yamllint' },
|
|
sh = { 'shellcheck' },
|
|
go = { 'golangcilint' },
|
|
ruby = { 'rubocop' },
|
|
fish = { 'fish' },
|
|
bash = { 'bash' },
|
|
nix = { 'nix' },
|
|
php = { 'php' },
|
|
}
|
|
vim.api.nvim_create_autocmd({ 'BufWritePost' }, {
|
|
callback = function()
|
|
require('lint').try_lint(nil, { ignore_errors = true })
|
|
end,
|
|
})
|
|
|
|
vim.treesitter.language.register('markdown', 'blink-cmp-documentation')
|
|
require('blink.cmp').setup {
|
|
enabled = function()
|
|
return not vim.tbl_contains({ 'snacks_picker_input' }, vim.bo.filetype)
|
|
end,
|
|
sources = {
|
|
default = { 'lsp', 'path', 'snippets', 'ripgrep', 'buffer' },
|
|
providers = {
|
|
lsp = { fallbacks = {} }, -- include buffer even when LSP is active
|
|
path = { opts = { get_cwd = vim.fn.getcwd } }, -- use nvim pwd instead of current file pwd
|
|
ripgrep = {
|
|
module = 'blink-ripgrep',
|
|
name = 'rg',
|
|
score_offset = -10,
|
|
async = true,
|
|
},
|
|
},
|
|
},
|
|
cmdline = { completion = { menu = { auto_show = true } } },
|
|
completion = {
|
|
documentation = { auto_show = true },
|
|
menu = {
|
|
draw = {
|
|
columns = {
|
|
{ 'label', 'label_description', gap = 1 },
|
|
{ 'source_name', 'kind', gap = 1 },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
signature = { enabled = true, trigger = { show_on_insert = true } },
|
|
}
|
|
end)
|