diffedit inline

This commit is contained in:
iofq 2026-02-06 14:10:51 -06:00
parent 23abd72cf8
commit 7000c3a405
6 changed files with 43 additions and 45 deletions

View file

@ -1,5 +1,4 @@
-- Made with 'mini.colors' module of https://github.com/echasnovski/mini.nvim
if vim.g.colors_name ~= nil then
vim.cmd('highlight clear')
end
@ -188,10 +187,10 @@ hi(0, 'DiagnosticVirtualTextInfo', { bg = '#1f353c', fg = '#5a93aa' })
hi(0, 'DiagnosticVirtualTextOk', { bg = '#24383a', fg = '#7aa4a1' })
hi(0, 'DiagnosticVirtualTextWarn', { bg = '#383835', fg = '#fda47f' })
hi(0, 'DiagnosticWarn', { fg = '#fda47f' })
hi(0, 'DiffAdd', { bg = '#24383a', fg = '#7aa4a1' })
hi(0, 'DiffChange', { bg = '#31474b', fg = '#73daca' })
hi(0, 'DiffDelete', { bg = '#31474b', fg = '#e85c51' })
hi(0, 'DiffText', { bg = '#466066' })
hi(0, 'DiffAdd', { bg = '#002800' })
hi(0, 'DiffChange', { bg = '#284b55' })
hi(0, 'DiffDelete', { bg = '#300000' })
hi(0, 'DiffText', { bg = '#366066' })
hi(0, 'Directory', { fg = '#73a3b7' })
hi(0, 'EndOfBuffer', { fg = '#152528' })
hi(0, 'Error', { fg = '#e85c51' })
@ -244,8 +243,6 @@ hi(0, 'MiniClueTitle', { link = 'FloatTitle' })
hi(0, 'MiniCompletionActiveParameter', { underline = true })
hi(0, 'MiniCursorword', { link = 'LspReferenceText' })
hi(0, 'MiniCursorwordCurrent', { link = 'LspReferenceText' })
hi(0, 'MiniDepsChangeAdded', { link = 'diffAdded' })
hi(0, 'MiniDepsChangeRemoved', { link = 'diffRemoved' })
hi(0, 'MiniDepsHint', { link = 'DiagnosticHint' })
hi(0, 'MiniDepsInfo', { link = 'DiagnosticInfo' })
hi(0, 'MiniDepsMsgBreaking', { link = 'DiagnosticWarn' })
@ -254,13 +251,13 @@ hi(0, 'MiniDepsTitle', { link = 'Title' })
hi(0, 'MiniDepsTitleError', { bg = '#e85c51', fg = '#0f1c1e' })
hi(0, 'MiniDepsTitleSame', { link = 'DiffText' })
hi(0, 'MiniDepsTitleUpdate', { bg = '#7aa4a1', fg = '#0f1c1e' })
hi(0, 'MiniDiffOverAdd', { link = 'diffAdded' })
hi(0, 'MiniDiffOverChange', { link = 'diffChanged' })
hi(0, 'MiniDiffOverChangeBuf', { link = 'diffChanged' })
hi(0, 'MiniDiffOverContext', { link = 'diffAdded' })
hi(0, 'MiniDiffOverDelete', { link = 'diffRemoved' })
hi(0, 'MiniDiffOverAdd', { link = 'DiffAdd' })
hi(0, 'MiniDiffOverChange', { link = 'DiffChange' })
hi(0, 'MiniDiffOverChangeBuf', { link = 'DiffChange' })
hi(0, 'MiniDiffOverContext', { link = 'DiffAdd' })
hi(0, 'MiniDiffOverDelete', { link = 'DiffDelete' })
hi(0, 'MiniDiffSignAdd', { fg = 'green', bold = true })
hi(0, 'MiniDiffSignChange', { fg = 'green', bold = true })
hi(0, 'MiniDiffSignChange', { fg = '#284b55', bold = true })
hi(0, 'MiniDiffSignDelete', { fg = 'red', bold = true })
hi(0, 'MiniFilesBorder', { link = 'FloatBorder' })
hi(0, 'MiniFilesBorderModified', { link = 'DiagnosticFloatingWarn' })

View file

@ -1,17 +1,21 @@
local M = {}
M.is_jj_diffedit_open = function()
local qf = vim.fn.getqflist()
local entry = qf[1]
local entry = vim.fn.getqflist[1]
if not entry or not entry.user_data or not entry.user_data.diff then
for _, buf in ipairs(vim.api.nvim_list_bufs()) do -- close all /tmp buffers
if vim.fn.fnamemodify(vim.api.nvim_buf_get_name(buf), ':p'):match('/tmp/jj%-diff.*') then
vim.api.nvim_buf_delete(buf, { force = true })
end
end
return 0
else
return 1
end
end
M.diffedit = function()
vim.fn.jobstart('jj diffedit --tool diffview-new')
M.diffedit = function(opts)
vim.fn.jobstart('jj diffedit --tool diffview-new ' .. opts.args)
end
vim.api.nvim_create_user_command('Diffedit', M.diffedit, { nargs = '*' })
return M

View file

@ -151,15 +151,8 @@ cmd('LspAttach', {
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 }
cmd({ 'InsertLeave', 'TextChanged' }, {
callback = function()
vim.lsp.codelens.refresh { bufnr = ev.buf }
end,
buffer = ev.buf,
})
vim.lsp.codelens.enable(true, { bufnr = ev.buf })
end
end,
})

View file

@ -43,6 +43,7 @@ vim.lsp.enable {
'lua_ls',
'basedpyright',
'csharp_ls',
'ts_ls',
}
local map = vim.keymap.set

View file

@ -59,6 +59,9 @@ map('n', '<leader>fq', Snacks.picker.qflist)
vim.schedule(function()
require('nvim-treesitter').setup()
require('nvim-treesitter-textobjects').setup()
require('treesitter-context').setup {
max_lines = 2,
}
vim.keymap.set('n', '[c', function()
require('treesitter-context').go_to_context(vim.v.count1)
end, { silent = true })