diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index 52fa1bc..b4b20c5 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -4,24 +4,24 @@ "Navigator.nvim": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" }, "bats.vim": { "branch": "master", "commit": "6a5d2ef22b0ede503d867770afd02ebb1f97b709" }, "blink.cmp": { "branch": "main", "commit": "b6f11a0aa33e601c469a126e3ed6e35208fe3ea3" }, - "blink.compat": { "branch": "main", "commit": "1176525a78319a208300a1910b6fd9e0cfabff25" }, + "blink.compat": { "branch": "main", "commit": "b0c87b64f9c669d3bcfaea8a80396fbc16e0fcb5" }, "cmp-calc": { "branch": "main", "commit": "5947b412da67306c5b68698a02a846760059be2e" }, "cmp-pandoc.nvim": { "branch": "main", "commit": "30faa4456a7643c4cb02d8fa18438fd484ed7602" }, "cmp-spell": { "branch": "master", "commit": "694a4e50809d6d645c1ea29015dad0c293f019d6" }, - "codecompanion.nvim": { "branch": "main", "commit": "7cc8c94b373a60f86ef40bfc4ecc7c83a9771231" }, + "codecompanion.nvim": { "branch": "main", "commit": "29c8c9142169c447ad1374bbb6885c611506fda3" }, "conform.nvim": { "branch": "master", "commit": "80b57f662b5e13ae8c2c7c38639966084625fa5e" }, "copilot.vim": { "branch": "release", "commit": "87038123804796ca7af20d1b71c3428d858a9124" }, "dial.nvim": { "branch": "master", "commit": "34bbd9c387c358190e61ce71017faad3dffa7a74" }, "dressing.nvim": { "branch": "master", "commit": "3a45525bb182730fe462325c99395529308f431e" }, - "fidget.nvim": { "branch": "main", "commit": "9238947645ce17d96f30842e61ba81147185b657" }, + "fidget.nvim": { "branch": "main", "commit": "b61e8af9b8b68ee0ec7da5fb7a8c203aae854f2e" }, "flash.nvim": { "branch": "main", "commit": "ec0bf2842189f65f60fd40bf3557cac1029cc932" }, "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, "fwatch.nvim": { "branch": "main", "commit": "a691f7349dc66285cd75a1a698dd28bca45f2bf8" }, "git-conflict.nvim": { "branch": "main", "commit": "4bbfdd92d547d2862a75b4e80afaf30e73f7bbb4" }, - "gitsigns.nvim": { "branch": "main", "commit": "0b04035bb7b3c83e999b9676e2fb46fd0aa9f910" }, + "gitsigns.nvim": { "branch": "main", "commit": "c23bbd3ed2c7a3fdc3399e97e24f9e158f57612f" }, "glance.nvim": { "branch": "master", "commit": "1a08824835d7582457b67acbe23ca33487912a5e" }, - "grug-far.nvim": { "branch": "main", "commit": "635e69adf3a714621bd0a289314bc23c5848babb" }, - "helpview.nvim": { "branch": "main", "commit": "34be34afd0811dee17e6b0c46176d9140659fe8e" }, + "grug-far.nvim": { "branch": "main", "commit": "3a8690461afac34c0e5bacb0f7b4bc3066aab665" }, + "helpview.nvim": { "branch": "main", "commit": "aca211993d7dd82bc03e7650bae859a570ba27d6" }, "image.nvim": { "branch": "master", "commit": "6ffafab2e98b5bda46bf227055aa84b90add8cdc" }, "img-clip.nvim": { "branch": "main", "commit": "28a32d811d69042f4fa5c3d5fa35571df2bc1623" }, "jupytext.nvim": { "branch": "main", "commit": "c8baf3ad344c59b3abd461ecc17fc16ec44d0f7b" }, @@ -37,51 +37,51 @@ "mason-nvim-lint": { "branch": "main", "commit": "b579a00ee39dcd590b1023028dc8fb3d203a67b0" }, "mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" }, "mdeval.nvim": { "branch": "master", "commit": "0e1b248db174a9659a9ab16eb8c90ff3aec55264" }, - "mini.nvim": { "branch": "main", "commit": "64e95aa77587d04f97a5579b2106a82a08a7d968" }, - "molten-nvim": { "branch": "main", "commit": "c621baf53459a6c45dfd98dcc11cbba7a7ae9470" }, + "mini.nvim": { "branch": "main", "commit": "0420076298c4457f200c2de468f65d080597a347" }, + "molten-nvim": { "branch": "main", "commit": "a286aa914d9a154bc359131aab788b5a077a5a99" }, "neo-tree.nvim": { "branch": "main", "commit": "5d172e8315444dbc32867d1c7b04d8e7e68ec4e1" }, "neogen": { "branch": "main", "commit": "b2e78708876f4da507839726816010a68e33fec8" }, "neotest": { "branch": "master", "commit": "d66cf4e05a116957f0d3a7755a24291c7d1e1f72" }, "neotest-python": { "branch": "master", "commit": "a2861ab3c9a0bf75a56b11835c2bfc8270f5be7e" }, "nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" }, "nvim-FeMaco.lua": { "branch": "main", "commit": "96bbf843595dbe865838b3f2484b73557f34700c" }, - "nvim-colorizer.lua": { "branch": "master", "commit": "39142aa1390d6ccdca57cb6dc5b2c7bfed460ffe" }, + "nvim-colorizer.lua": { "branch": "master", "commit": "9b5fe0450bfb2521c6cea29391e5ec571f129136" }, "nvim-coverage": { "branch": "main", "commit": "a939e425e363319d952a6c35fb3f38b34041ded2" }, - "nvim-lint": { "branch": "master", "commit": "789b7ada1b4f00e08d026dffde410dcfa6a0ba87" }, + "nvim-lint": { "branch": "master", "commit": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8" }, "nvim-lspconfig": { "branch": "master", "commit": "bf81bef7d75a0f4a0cf61462b318ea00b3c97cc8" }, "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, "nvim-surround": { "branch": "main", "commit": "ae298105122c87bbe0a36b1ad20b06d417c0433e" }, "nvim-toggleterm.lua": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" }, "nvim-treesitter": { "branch": "master", "commit": "cfc6f2c117aaaa82f19bcce44deec2c194d900ab" }, - "nvim-treesitter-context": { "branch": "master", "commit": "bece284c5322ddf6946fa4bdc383a2bc033269d7" }, + "nvim-treesitter-context": { "branch": "master", "commit": "9a49f43a2ec9bf77aecfb0fcbc43af43338375c0" }, "nvim-treesitter-endwise": { "branch": "master", "commit": "8b34305ffc28bd75a22f5a0a9928ee726a85c9a6" }, - "nvim-treesitter-textsubjects": { "branch": "master", "commit": "a8d2844bba925d9450ef7ab215f3b054028288ca" }, + "nvim-treesitter-textsubjects": { "branch": "master", "commit": "199f3d1a58f8b98e3da0b9d2be6343ce4d27fc1b" }, "nvim-ts-autotag": { "branch": "main", "commit": "1cca23c9da708047922d3895a71032bc0449c52d" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" }, "nvim-web-devicons": { "branch": "master", "commit": "5b9067899ee6a2538891573500e8fd6ff008440f" }, - "otter.nvim": { "branch": "main", "commit": "7b42ce1f9deabc596214fc3b80e5ab4fd5b32726" }, + "otter.nvim": { "branch": "main", "commit": "0e42fa795c35c7190935e3beda3791189c41bb72" }, "peek.nvim": { "branch": "master", "commit": "5820d937d5414baea5f586dc2a3d912a74636e5b" }, "plenary.nvim": { "branch": "master", "commit": "3707cdb1e43f5cea73afb6037e6494e7ce847a66" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, - "quarto-nvim": { "branch": "main", "commit": "1cb2d24d7793241bd43f38e3a6f99a6d11f84458" }, + "quarto-nvim": { "branch": "main", "commit": "abc417c7e7422033f1090c0da5f30ef3ecb0c7ca" }, "rainbow-delimiters.nvim": { "branch": "master", "commit": "dc788723f717bdd3041838b8db34cce53c9aa920" }, - "render-markdown": { "branch": "main", "commit": "16369540a005ad0cf267498162aedca6dfca1b9c" }, + "render-markdown": { "branch": "main", "commit": "f2bdf9f866671456f7a6119cc94501048d9d172c" }, "smartcolumn.nvim": { "branch": "main", "commit": "d01b99355c7fab13233f48d0f28dc097e68a03f7" }, "stickybuf.nvim": { "branch": "master", "commit": "2160fcd536d81f5fa43f7167dba6634e814e3154" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" }, "telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, "texpresso.vim": { "branch": "main", "commit": "907838c08bbf99ad6bed3c908f1d0551a92ab4e0" }, "todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" }, - "trouble.nvim": { "branch": "main", "commit": "40c5317a6e90fe3393f07b0fee580d9e93a216b4" }, + "trouble.nvim": { "branch": "main", "commit": "bac1d9a9f51eecf4424b6ca8675db5a170fe572b" }, "twilight.nvim": { "branch": "main", "commit": "8bb7fa7b918baab1ca81b977102ddb54afa63512" }, - "typst-preview.nvim": { "branch": "master", "commit": "c1100e8788baabe8ca8f8cd7fd63d3d479e49e36" }, + "typst-preview.nvim": { "branch": "master", "commit": "00ff6829030f302e8ff24d0e3a68625dd1a3ac40" }, "undotree": { "branch": "main", "commit": "eab459ab87dd249617b5f7187bb69e614a083047" }, "vifm.vim": { "branch": "master", "commit": "a8130c37d144b51d84bee19f0532abcd3583383f" }, "vim-criticmarkup": { "branch": "master", "commit": "d15dc134eb177a170c79f6377f81eb02a9d20b02" }, "vim-numbertoggle": { "branch": "main", "commit": "df9b1fe616507340718716204ba7f434125bdf7a" }, "vim-spellsync": { "branch": "master", "commit": "3d6dd50de9c4d953cc16638112a6ae196df41463" }, "wezterm.nvim": { "branch": "main", "commit": "f73bba23ab4becd146fa2d0a3a16a84b987eeaca" }, - "which-key.nvim": { "branch": "main", "commit": "8ab96b38a2530eacba5be717f52e04601eb59326" }, + "which-key.nvim": { "branch": "main", "commit": "b74a3c85f03225bc91f4f5a9056518d3fa9a3470" }, "wrapping.nvim": { "branch": "master", "commit": "3a823200c297885b70515fa8d974e1763c578e26" }, "zen-mode.nvim": { "branch": "main", "commit": "04b52674b8c800f8b7d4609e8bd8d0212e3ffa79" }, "zk-nvim": { "branch": "main", "commit": "50d92038d22ad9a537dcfd463c38527591430df6" } diff --git a/nvim/.config/nvim/lua/core/lazy.lua b/nvim/.config/nvim/lua/core/lazy.lua index ddb750b..f97e378 100644 --- a/nvim/.config/nvim/lua/core/lazy.lua +++ b/nvim/.config/nvim/lua/core/lazy.lua @@ -40,7 +40,17 @@ require("lazy").setup({ spec = { spec }, defaults = { lazy = true, version = "*" }, performance = { - rtp = { disabled_plugins = { "netrw", "netrwPlugin" } }, + rtp = { + disabled_plugins = { + "netrw", + "netrwPlugin", + "gzip", + "tarPlugin", + "tohtml", + "tutor", + "zipPlugin", + }, + }, cache = { enable = true }, }, }) diff --git a/nvim/.config/nvim/lua/plugins/data_analysis.lua b/nvim/.config/nvim/lua/plugins/data_analysis.lua index e05887b..95180e3 100644 --- a/nvim/.config/nvim/lua/plugins/data_analysis.lua +++ b/nvim/.config/nvim/lua/plugins/data_analysis.lua @@ -87,8 +87,22 @@ return { }, config = function(_, opts) require("image").setup(opts) - vim.g.molten_image_provider = "image.nvim" - pcall(vim.fn.MoltenUpdateOption, "molten_image_provider", "image.nvim") + -- if Molten is running, we directly inject the option + if vim.fn.exists("MoltenDeinit") > 0 then + pcall(vim.fn.MoltenUpdateOption, "molten_image_provider", "image.nvim") + else + vim.g.molten_image_provider = "image.nvim" + end + + vim.keymap.set("n", "pi", function() + for k, v in pairs(opts.integrations) do + if v["only_render_image_at_cursor"] ~= nil then + v["only_render_image_at_cursor"] = not v["only_render_image_at_cursor"] + end + print(k, v) + end + require("image").setup(opts) + end, { desc = "toggle image rendering", silent = true }) end, ft = { "markdown", "vimwiki", "quarto", "norg", "typst", "python" }, priority = 60, @@ -101,7 +115,7 @@ return { { "3rd/image.nvim", optional = true }, }, build = ":UpdateRemotePlugins", - config = function() + init = function() vim.g.molten_image_provider = vim.g.molten_image_provider or "wezterm" vim.g.molten_auto_open_output = false vim.g.molten_virt_text_output = true @@ -126,7 +140,7 @@ return { map( "x", "c", - ":MoltenEvaluateVisual", + ":MoltenEvaluateVisualgv", { desc = "evaluate visual", silent = true } ) map( @@ -189,33 +203,6 @@ return { keys = { { "vn", ":MoltenInfo" }, }, - cmd = { - "JupyterStart", - "MoltenInfo", - "MoltenInit", - "MoltenDeinit", - "MoltenGoto", - "MoltenNext", - "MoltenPrev", - "MoltenEvaluateLine", - "MoltenEvaluateVisual", - "MoltenEvaluateOperator", - "MoltenEvaluateArgument", - "MoltenReevaluateCell", - "MoltenDelete", - "MoltenShowOutput", - "MoltenHideOutput", - "MoltenEnterOutput", - "MoltenInterrupt", - "MoltenOpenInBrowser", - "MoltenImagePopup", - "MoltenRestart", - "MoltenSave", - "MoltenLoad", - "MoltenExportOutput", - "MoltenImportOutput", - }, - lazy = false, }, -- Edit code blocks in md/quarto using whatever language is @@ -249,7 +236,6 @@ return { require_confirmation = false, eval_options = {}, }, - lazy = false, }, -- Open ipynb Jupyter notebooks as if they're quarto files diff --git a/nvim/.config/nvim/lua/plugins/git.lua b/nvim/.config/nvim/lua/plugins/git.lua index e227f6a..550008e 100644 --- a/nvim/.config/nvim/lua/plugins/git.lua +++ b/nvim/.config/nvim/lua/plugins/git.lua @@ -1,29 +1,43 @@ return { { "akinsho/git-conflict.nvim", - event = { "InsertEnter", "CursorHold" }, - config = function() - require("git-conflict").setup({ - default_mappings = false, - disable_diagnostics = true, - }) + event = { "InsertEnter", "CursorHold", "VeryLazy" }, + init = function() if require("core.util").is_available("which-key") then require("which-key").add({ "h", group = "git" }) end + end, + config = function() + require("git-conflict").setup({ + debug = false, + default_mappings = false, -- disable buffer local mapping created by this plugin + default_commands = true, -- disable commands created by this plugin + disable_diagnostics = false, -- This will disable the diagnostics in a buffer whilst it is conflicted + list_opener = "copen", -- command or function to open the conflicts list + highlights = { -- They must have background color, otherwise the default color will be used + incoming = "DiffAdd", + current = "DiffText", + }, + }) local map = vim.keymap.set - map("n", "ho", "(git-conflict-ours)", { desc = "Conflict use ours" }) - map("n", "hO", "(git-conflict-theirs)", { desc = "Conflict use theirs" }) + map("n", "ho", "(git-conflict-ours)", { desc = "Conflict use current" }) + map("n", "hO", "(git-conflict-theirs)", { desc = "Conflict use incoming" }) map("n", "hm", "(git-conflict-both)", { desc = "Conflict use both" }) map("n", "hM", "(git-conflict-none)", { desc = "Conflict use none" }) - map("n", "[H", "(git-conflict-prev-conflict)", { desc = "Prev git conflict" }) - map("n", "]H", "(git-conflict-next-conflict)", { desc = "Next git conflict" }) + map("n", "[H", "(git-conflict-prev-conflict)", { desc = "git conflict backward" }) + map("n", "]H", "(git-conflict-next-conflict)", { desc = "git conflict forward" }) end, - lazy = false, -- TODO needs to be force refreshed in lazy loaded mode unfortunately + lazy = false, -- TODO: needs to be force refreshed in lazy loaded mode unfortunately }, { "lewis6991/gitsigns.nvim", -- show vcs changes on left-hand gutter - event = { "InsertEnter", "CursorHold" }, + event = { "InsertEnter", "CursorHold", "VeryLazy" }, cmd = "Gitsigns", + init = function() + if require("core.util").is_available("which-key") then + require("which-key").add({ "h", group = "git" }) + end + end, config = function() require("gitsigns").setup({ numhl = true, @@ -46,7 +60,7 @@ return { gs.next_hunk() end) return "" - end, { expr = true, desc = "Next git hunk" }) + end, { expr = true, desc = "git hunk forward" }) map("n", "[h", function() if vim.wo.diff then @@ -56,12 +70,8 @@ return { gs.prev_hunk() end) return "" - end, { expr = true, desc = "Previous git hunk" }) + end, { expr = true, desc = "git hunk backward" }) - -- Actions - if require("core.util").is_available("which-key") then - require("which-key").add({ "h", group = "git" }) - end map({ "n", "v" }, "hs", ":Gitsigns stage_hunk", { desc = "stage hunk" }) map({ "n", "v" }, "hr", ":Gitsigns reset_hunk", { desc = "reset hunk" }) map("n", "hS", gs.stage_buffer, { desc = "stage buffer" }) diff --git a/nvim/.config/nvim/lua/plugins/lsp.lua b/nvim/.config/nvim/lua/plugins/lsp.lua index 0618215..b34336f 100644 --- a/nvim/.config/nvim/lua/plugins/lsp.lua +++ b/nvim/.config/nvim/lua/plugins/lsp.lua @@ -112,7 +112,7 @@ local lsp = { lspconfig.marksman.setup({ filetypes = { "markdown", "quarto" }, - on_attach = function(client, bufnr) + on_attach = function(client, _) -- TODO: for some reason this stays true even after rootdir switch? if client.config.in_zk_notebook then local default_handler = vim.diagnostic.handlers.virtual_text @@ -132,7 +132,7 @@ local lsp = { default_handler.hide(...) end, } - local default_handler = vim.diagnostic.handlers.signs + default_handler = vim.diagnostic.handlers.signs vim.diagnostic.handlers.signs = { show = function(namespace, bufnrr, diagnostics, opts) for i, diagnostic in ipairs(diagnostics) do @@ -164,7 +164,7 @@ local lsp = { -- ensure python virtualenv is determined automatically on lsp start -- we primarily use pyright for cmp lsp completion & hover info lspconfig.basedpyright.setup({ - on_attach = function(client, bufnr) + on_attach = function(client, _) require("core.util").set_python_env() if python_path == nil then python_path, _ = vim.fn.expand(require("core.util").get_python_venv_bin(client.config.root_dir)) @@ -186,7 +186,7 @@ local lsp = { }, }) lspconfig.ruff.setup({ - on_attach = function(client, bufnr) + on_attach = function(client, _) require("core.util").set_python_env() client.server_capabilities.hoverProvider = false -- we use pyright for hover info if python_path == nil then @@ -209,7 +209,7 @@ local lsp = { pattern = "SpellEnable", callback = function() lspconfig.ltex.setup({ - on_attach = function(client, bufnr) + on_attach = function(_, _) if require("core.util").is_available("ltex_extra") then require("ltex_extra").setup() end diff --git a/nvim/.config/nvim/lua/plugins/pickers.lua b/nvim/.config/nvim/lua/plugins/pickers.lua index 0ab8c6b..f10af48 100644 --- a/nvim/.config/nvim/lua/plugins/pickers.lua +++ b/nvim/.config/nvim/lua/plugins/pickers.lua @@ -21,6 +21,25 @@ return { "nvim-lua/plenary.nvim", { "nvim-tree/nvim-web-devicons", optional = true }, }, + init = function() + -- ensure neo-tree gets loaded if we start vim with a directory + -- netrw-like. See https://github.com/nvim-neo-tree/neo-tree.nvim/discussions/1326 + vim.api.nvim_create_autocmd("BufEnter", { + group = vim.api.nvim_create_augroup("load_neo_tree", {}), + desc = "Loads neo-tree when opening a directory", + callback = function(args) + local stats = vim.uv.fs_stat(args.file) + + if not stats or stats.type ~= "directory" then + return + end + + require("neo-tree") + + return true + end, + }) + end, cmd = "Neotree", opts = { source_selector = { winbar = true }, @@ -28,9 +47,8 @@ return { keys = { { "se", "Neotree toggle left", desc = "filetree", silent = true }, }, - lazy = false, }, - { "MagicDuck/grug-far.nvim", lazy = false, opts = {} }, + { "MagicDuck/grug-far.nvim", opts = {}, cmd = "GrugFar" }, -- fuzzy matching picker { "nvim-telescope/telescope.nvim", diff --git a/nvim/.config/nvim/lua/plugins/prose.lua b/nvim/.config/nvim/lua/plugins/prose.lua index b713dc1..35eebff 100644 --- a/nvim/.config/nvim/lua/plugins/prose.lua +++ b/nvim/.config/nvim/lua/plugins/prose.lua @@ -159,7 +159,7 @@ local prose_plugs = { }, cmd = { "PasteImage" }, keys = { - { "pi", "PasteImage", desc = "Paste image from system clipboard" }, + { "pp", "PasteImage", desc = "Paste image from system clipboard" }, }, ft = prose_ft, }, diff --git a/nvim/.config/nvim/lua/plugins/statusline.lua b/nvim/.config/nvim/lua/plugins/statusline.lua index 3543201..8cc91a1 100644 --- a/nvim/.config/nvim/lua/plugins/statusline.lua +++ b/nvim/.config/nvim/lua/plugins/statusline.lua @@ -5,6 +5,8 @@ return { cond = true, dependencies = { { "nvim-tree/nvim-web-devicons", config = true } }, config = function() + -- TODO: Should grab ft directly from molten lazy spec + local molten_ft = { "markdown", "rmd", "quarto" } local has_pynvim = -1 -- if molten exists, is initialized and connected to a kernel -- show it in the statusline @@ -13,6 +15,9 @@ return { if has_pynvim == 0 then return "" elseif has_pynvim == 1 then + if molten_ft[vim.bo.filetype] == nil then + return "" + end local status_ok, res = pcall(function() return require("molten.status").kernels() ~= "" end) diff --git a/vcs/jj/config/jj/config.toml b/vcs/jj/config/jj/config.toml index eadbfc9..84b0f0f 100644 --- a/vcs/jj/config/jj/config.toml +++ b/vcs/jj/config/jj/config.toml @@ -10,3 +10,7 @@ key = "73BA40D5AFAF49C9" [ui] default-command = "log" diff-editor = ["nvim", "-c", "DiffEditor $left $right $output"] +pager = "delta" + +[ui.diff] +format = "git" # for the time being to use delta well