diff --git a/flake.lock b/flake.lock index fa135da..87eb795 100644 --- a/flake.lock +++ b/flake.lock @@ -181,11 +181,11 @@ "jj-nvim": { "flake": false, "locked": { - "lastModified": 1771004667, - "narHash": "sha256-G7ksxOJJmQeTbsdAYddSFWUs9kyW/nIL4mv0F3FiXAI=", + "lastModified": 1771953539, + "narHash": "sha256-nokftWcAmmHX6UcH6O79xkLwbUpq1W8N9lf1e+NyGqE=", "owner": "NicolasGB", "repo": "jj.nvim", - "rev": "3d78c28f7e26d5c87f53e66e05a1393e6ca9fec2", + "rev": "bbba4051c862473637e98277f284d12b050588ca", "type": "github" }, "original": { @@ -219,11 +219,11 @@ ] }, "locked": { - "lastModified": 1771027491, - "narHash": "sha256-T53LDMjB9CmtBC4FJNAgcmJowiR8cbn6WVhIzYtfoVk=", + "lastModified": 1772323514, + "narHash": "sha256-aWy20stlI6cl+UM1Ds8j4NSEfWTCp/VWW+SqQy+DOM8=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "0774707cd1c97e3cf721f40dd3eaa5a5a2c1872e", + "rev": "744c005b53bd588a82b3662f82c791eecf4710ad", "type": "github" }, "original": { @@ -235,11 +235,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1771027191, - "narHash": "sha256-dIVrDC/L5LQC13FzJv1ezacGj5QwrWA3nIFUTRzS/FY=", + "lastModified": 1772319592, + "narHash": "sha256-Bp+pAkfjSdUWV/giJFT9Gbp0wecQ+H4Kbh4+XfyOj5s=", "owner": "neovim", "repo": "neovim", - "rev": "289695c14efcb2cb61ea70a0dbaf0025f869b21c", + "rev": "8a79e3398a347248f067abe0c09097416fbf9cae", "type": "github" }, "original": { @@ -293,11 +293,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1771064210, - "narHash": "sha256-Aah0oc1R4dvgrJvyuXuPv3bGaTWxysSqwNi9T/7V5zA=", + "lastModified": 1772360274, + "narHash": "sha256-QYgww8vJTSl9SWxYP9ivFDP0WEwy1LsWieiJaaa2OXA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5ee33c746a149c70e706c8254306eafc93f16f4b", + "rev": "96b187c6984f705ef930fa6d575f7e7f5dafddff", "type": "github" }, "original": { diff --git a/nvim/after/colors/iofq.lua b/nvim/after/colors/iofq.lua index b1e6a7a..07fcc66 100644 --- a/nvim/after/colors/iofq.lua +++ b/nvim/after/colors/iofq.lua @@ -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' }) diff --git a/nvim/after/lua/iofq/jj.lua b/nvim/after/lua/iofq/jj.lua index 4556b7f..1a25d13 100644 --- a/nvim/after/lua/iofq/jj.lua +++ b/nvim/after/lua/iofq/jj.lua @@ -1,17 +1,22 @@ 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) + opts = opts or { args = '' } + vim.fn.jobstart('jj diffedit --tool difftool ' .. opts.args) end + +vim.api.nvim_create_user_command('Diffedit', M.diffedit, { nargs = '*' }) return M diff --git a/nvim/after/plugin/autocmd.lua b/nvim/after/plugin/autocmd.lua index 81cb335..3fc4d8b 100644 --- a/nvim/after/plugin/autocmd.lua +++ b/nvim/after/plugin/autocmd.lua @@ -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, }) diff --git a/nvim/after/plugin/init.lua b/nvim/after/plugin/init.lua index 7518a64..d031ce8 100644 --- a/nvim/after/plugin/init.lua +++ b/nvim/after/plugin/init.lua @@ -43,6 +43,7 @@ vim.lsp.enable { 'lua_ls', 'basedpyright', 'csharp_ls', + 'ts_ls', } local map = vim.keymap.set diff --git a/nvim/after/plugin/plugins.lua b/nvim/after/plugin/plugins.lua index e4506f9..eec3c80 100644 --- a/nvim/after/plugin/plugins.lua +++ b/nvim/after/plugin/plugins.lua @@ -59,6 +59,9 @@ map('n', '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 }) @@ -129,12 +132,19 @@ vim.schedule(function() 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 + path = { async = true, opts = { get_cwd = vim.fn.getcwd } }, -- use nvim pwd instead of current file pwd ripgrep = { + enabled = false, module = 'blink-ripgrep', name = 'rg', score_offset = -10, async = true, + opts = { + project_root_marker = { '.git', '.jj' }, + backend = { + use = 'gitgrep-or-ripgrep', + }, + }, }, }, },