Compare commits

...

7 commits

Author SHA1 Message Date
d3e325db86
nvim: Fix small lsp issues 2025-02-07 16:27:50 +01:00
c4ecc41ab9
nvim: Update plugins 2025-02-07 16:04:11 +01:00
d501688031
nvim: Lazy load more plugins 2025-02-07 15:53:11 +01:00
a3a5488dcd
nvim: Add keymap to toggle rendering all images
By default we only render the image at the cursor. Should we want to
render all images instead we can now toggle this for image.nvim with
<localleader>pi.

To enable this we move the 'paste image' shortcut for prose formats onto
<localleader>pp instead.
2025-02-07 15:16:49 +01:00
9b7290c93c
jj: Use delta as diff pager 2025-02-07 15:05:24 +01:00
ebd247e765
nvim: Lazy load molten plugin 2025-02-07 15:05:23 +01:00
1e2246aa51
nvim: Disable additional builtin plugins 2025-02-07 14:36:57 +01:00
9 changed files with 110 additions and 77 deletions

View file

@ -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" }

View file

@ -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 },
},
})

View file

@ -87,8 +87,22 @@ return {
},
config = function(_, opts)
require("image").setup(opts)
vim.g.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", "<localleader>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",
"<localleader>c",
":<C-u>MoltenEvaluateVisual<cr>",
":<C-u>MoltenEvaluateVisual<cr>gv",
{ desc = "evaluate visual", silent = true }
)
map(
@ -189,33 +203,6 @@ return {
keys = {
{ "<leader>vn", ":MoltenInfo<cr>" },
},
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

View file

@ -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({ "<localleader>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", "<localleader>ho", "<Plug>(git-conflict-ours)", { desc = "Conflict use ours" })
map("n", "<localleader>hO", "<Plug>(git-conflict-theirs)", { desc = "Conflict use theirs" })
map("n", "<localleader>ho", "<Plug>(git-conflict-ours)", { desc = "Conflict use current" })
map("n", "<localleader>hO", "<Plug>(git-conflict-theirs)", { desc = "Conflict use incoming" })
map("n", "<localleader>hm", "<Plug>(git-conflict-both)", { desc = "Conflict use both" })
map("n", "<localleader>hM", "<Plug>(git-conflict-none)", { desc = "Conflict use none" })
map("n", "[H", "<Plug>(git-conflict-prev-conflict)", { desc = "Prev git conflict" })
map("n", "]H", "<Plug>(git-conflict-next-conflict)", { desc = "Next git conflict" })
map("n", "[H", "<Plug>(git-conflict-prev-conflict)", { desc = "git conflict backward" })
map("n", "]H", "<Plug>(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({ "<localleader>h", group = "git" })
end
end,
config = function()
require("gitsigns").setup({
numhl = true,
@ -46,7 +60,7 @@ return {
gs.next_hunk()
end)
return "<Ignore>"
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 "<Ignore>"
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({ "<localleader>h", group = "git" })
end
map({ "n", "v" }, "<localleader>hs", ":Gitsigns stage_hunk<CR>", { desc = "stage hunk" })
map({ "n", "v" }, "<localleader>hr", ":Gitsigns reset_hunk<CR>", { desc = "reset hunk" })
map("n", "<localleader>hS", gs.stage_buffer, { desc = "stage buffer" })

View file

@ -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

View file

@ -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 = {
{ "<leader>se", "<cmd>Neotree toggle left<cr>", 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",

View file

@ -159,7 +159,7 @@ local prose_plugs = {
},
cmd = { "PasteImage" },
keys = {
{ "<localleader>pi", "<cmd>PasteImage<cr>", desc = "Paste image from system clipboard" },
{ "<localleader>pp", "<cmd>PasteImage<cr>", desc = "Paste image from system clipboard" },
},
ft = prose_ft,
},

View file

@ -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)

View file

@ -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