@@ -76,8 +76,6 @@ vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
7676-- See `:help hlsearch`
7777vim .keymap .set (' n' , ' <Esc>' , ' <cmd>nohlsearch<CR>' )
7878
79- vim .keymap .set (' n' , ' <leader>q' , vim .diagnostic .setloclist , { desc = ' Open diagnostic [Q]uickfix list' })
80-
8179vim .api .nvim_create_autocmd (' TextYankPost' , {
8280 desc = ' Highlight when yanking (copying) text' ,
8381 group = vim .api .nvim_create_augroup (' kickstart-highlight-yank' , { clear = true }),
@@ -565,6 +563,9 @@ require('lazy').setup({
565563 },
566564 },
567565 gopls = {},
566+ dart = {
567+ force = true ,
568+ },
568569 -- solargraph = {},
569570 -- ruby_lsp = {},
570571 sqlls = {},
@@ -959,3 +960,49 @@ vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float)
959960
960961-- The line beneath this is called `modeline`. See `:help modeline`
961962-- vim: ts=2 sts=2 sw=2 et
963+ --
964+
965+ -- Enable exrc, which will load a local .nvim.lua if it exists in the pwd
966+ vim .opt .exrc = true
967+
968+ -- Quickfix
969+ vim .keymap .set (' n' , ' <leader>qn' , ' :cnext<CR>' , { desc = ' Next quickfix item' })
970+ vim .keymap .set (' n' , ' <leader>qp' , ' :cprev<CR>' , { desc = ' Previous quickfix item' })
971+
972+ -- Git diff base tracking
973+ vim .keymap .set (' n' , ' <leader>qgc' , function ()
974+ vim .g .last_git_diff_mode = ' '
975+ vim .cmd ' Git difftool'
976+ end , { desc = ' [Q]uickfix [G]itdiff [C]reate' })
977+
978+ vim .keymap .set (' n' , ' <leader>qgh' , function ()
979+ vim .g .last_git_diff_mode = ' HEAD~1'
980+ vim .cmd ' Git difftool HEAD~1'
981+ end , { desc = ' [Q]uickfix [G]itdiff [H]EAD~1' })
982+
983+ -- Smart quickfix Gitdiff next/prev
984+ vim .keymap .set (' n' , ' <leader>qgv' , function ()
985+ local buffers = vim .api .nvim_list_bufs ()
986+ local deleted_count = 0
987+
988+ for _ , buf in ipairs (buffers ) do
989+ if vim .api .nvim_buf_is_loaded (buf ) then
990+ local name = vim .api .nvim_buf_get_name (buf )
991+ if name :match ' ^fugitive://' then
992+ vim .api .nvim_buf_delete (buf , { force = true })
993+ deleted_count = deleted_count + 1
994+ end
995+ end
996+ end
997+
998+ if deleted_count > 0 then
999+ vim .notify (' Closed ' .. deleted_count .. ' Gdiffsplit buffer(s)' , vim .log .levels .INFO )
1000+ else
1001+ vim .notify (' Opening new GDiffsplit' , vim .log .levels .INFO )
1002+ end
1003+
1004+ vim .cmd (' Gdiffsplit ' .. vim .g .last_git_diff_mode )
1005+ end , { desc = ' [Q]uickfix [G]itdiff [V]iew (context-aware)' })
1006+
1007+ -- Quickfix with diagnostics
1008+ vim .keymap .set (' n' , ' <leader>qd' , vim .diagnostic .setloclist , { desc = ' Open [Q]uickfix [D]iagnostic list' })
0 commit comments