diff --git a/.dotter/global.toml b/.dotter/global.toml index d2e309e..6c2ae8c 100644 --- a/.dotter/global.toml +++ b/.dotter/global.toml @@ -24,6 +24,7 @@ vcs = "~" [nvim.files] "nvim/.config/nvim/spell/de.utf-8.add.spl" = { target = "~/.config/nvim/spell/de.utf-8.add.spl", type = "symbolic" } "nvim/.config/nvim/spell/en.utf-8.add.spl" = { target = "~/.config/nvim/spell/en.utf-8.add.spl", type = "symbolic" } +"nvim/.config/nvim/snippets/quarto.snippets" = { target = "~/.config/nvim/snippets/quarto.snippets", type = "symbolic" } nvim = "~" [scripts.files] diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index 9cea8da..263c56a 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -35,14 +35,13 @@ "magick": { "branch": "master", "commit": "aa96e77b6d08983707941727a574752445de0d70" }, "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, "markmap.nvim": { "branch": "main", "commit": "5fb6755cf5434511cc23a4936c9eb76b9142fba5" }, - "mason-conform.nvim": { "branch": "main", "commit": "f3b96fa2217fcb1513301eefbe10ea0e765e33eb" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "5477d67a5ca12b704f2a8a55a057fc79750f3dbb" }, + "mason-conform.nvim": { "branch": "main", "commit": "1983f353b29d8716751665c18d57e1ac0473a59a" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, "mason-nvim-lint": { "branch": "main", "commit": "b579a00ee39dcd590b1023028dc8fb3d203a67b0" }, - "mason.nvim": { "branch": "main", "commit": "7f265cd6ae56cecdd0aa50c8c73fc593b0604801" }, + "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, "mdeval.nvim": { "branch": "master", "commit": "0e1b248db174a9659a9ab16eb8c90ff3aec55264" }, "mini.nvim": { "branch": "main", "commit": "0420076298c4457f200c2de468f65d080597a347" }, "molten-nvim": { "branch": "main", "commit": "a286aa914d9a154bc359131aab788b5a077a5a99" }, - "neo-tree-jj.nvim": { "branch": "main", "commit": "c6534930c6f79893e12eafbb722ee23e6a83e80e" }, "neo-tree.nvim": { "branch": "main", "commit": "1ef260eb4f54515fe121a2267b477efb054d108a" }, "neogen": { "branch": "main", "commit": "b2e78708876f4da507839726816010a68e33fec8" }, "neotest": { "branch": "master", "commit": "d66cf4e05a116957f0d3a7755a24291c7d1e1f72" }, @@ -53,7 +52,7 @@ "nvim-colorizer.lua": { "branch": "master", "commit": "517df88cf2afb36652830df2c655df2da416a0ae" }, "nvim-coverage": { "branch": "main", "commit": "a939e425e363319d952a6c35fb3f38b34041ded2" }, "nvim-lint": { "branch": "master", "commit": "9dfb77ef6c5092a19502883c02dc5a02ec648729" }, - "nvim-lspconfig": { "branch": "master", "commit": "3ea99227e316c5028f57a4d86a1a7fd01dd876d0" }, + "nvim-lspconfig": { "branch": "master", "commit": "fa2662510d30b06168b6e2e6915518decde6bbac" }, "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, "nvim-surround": { "branch": "main", "commit": "0e62500b98f4513feaaf7425c135472457ea5b7d" }, "nvim-toggleterm.lua": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" }, @@ -88,5 +87,5 @@ "which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" }, "wrapping.nvim": { "branch": "master", "commit": "3a823200c297885b70515fa8d974e1763c578e26" }, "zen-mode.nvim": { "branch": "main", "commit": "04b52674b8c800f8b7d4609e8bd8d0212e3ffa79" }, - "zk-nvim": { "branch": "main", "commit": "fd1ab2239ed85ca51051c094a49a280f4ed76bb2" } + "zk-nvim": { "branch": "main", "commit": "8fdd7032633045ece559273370fc0ec75ee8ffce" } } diff --git a/nvim/.config/nvim/lua/core/languages.lua b/nvim/.config/nvim/lua/core/languages.lua index d604954..755fb8c 100644 --- a/nvim/.config/nvim/lua/core/languages.lua +++ b/nvim/.config/nvim/lua/core/languages.lua @@ -1,8 +1,8 @@ -- A list of all languages for which I have support for any of: --- an LSP (lsp) --- Treesitter (ts) --- linting (lint) --- formatting (format) +-- an LSP +-- Treesitter +-- linting +-- formatting -- -- with their respective names used by lspconfig, nvim-treesitter, nvim-lint and conform. -- @@ -12,16 +12,6 @@ if vim.fn.executable("nufmt") == 1 then nushell.format = { nu = { "nufmt" } } end --- FIXME: This does not work for populating LSP config, --- never gets set MASON env var. Executing too early? -local function mason_dir() - local dir = vim.fn.getenv("MASON") - if dir ~= vim.NIL then - return dir - end - return vim.fn.getenv("HOME") .. "/.local/share/nvim/mason" -end - local languages = { arduino = { lsp = { arduino_language_server = {} }, ts = { "arduino" } }, awk = { ts = { "awk" }, format = { awk = { "gawk" } } }, @@ -117,11 +107,7 @@ local languages = { lsp = { tinymist = { settings = { formatterMode = "typstyle" } } }, ts = { "typst" }, }, - vue = { - lsp = { vue_ls = {} }, - ts = { "typescript", "vue" }, - format = { vue = { "prettier", "rustywind" } }, - }, + vue = { format = { vue = { "prettier", "rustywind" } } }, yaml = { lsp = { yamlls = {}, ansiblels = {} }, ts = { "yaml" }, format = { yaml = { "prettier" } } }, zsh = { format = { zsh = { "shfmt" } } }, @@ -372,6 +358,7 @@ local languages = { "vim", "vimdoc", "vrl", + "vue", "wgsl", "wgsl_bevy", "wing", diff --git a/nvim/.config/nvim/lua/plugins/git.lua b/nvim/.config/nvim/lua/plugins/git.lua index d466133..bf443ca 100644 --- a/nvim/.config/nvim/lua/plugins/git.lua +++ b/nvim/.config/nvim/lua/plugins/git.lua @@ -1,4 +1,15 @@ return { + { + "julienvincent/hunk.nvim", + dependencies = { + "MunifTanjim/nui.nvim", + { "nvim-tree/nvim-web-devicons", optional = true }, + }, + cmd = { "DiffEditor" }, + config = function() + require("hunk").setup() + end, + }, { "akinsho/git-conflict.nvim", event = { "InsertEnter", "CursorHold", "VeryLazy" }, @@ -95,17 +106,4 @@ return { }) end, }, - - -- jj diffing - { - "julienvincent/hunk.nvim", - dependencies = { - "MunifTanjim/nui.nvim", - { "nvim-tree/nvim-web-devicons", optional = true }, - }, - cmd = { "DiffEditor" }, - config = function() - require("hunk").setup() - end, - }, } diff --git a/nvim/.config/nvim/lua/plugins/linting.lua b/nvim/.config/nvim/lua/plugins/linting.lua index 173520a..6a14c4c 100644 --- a/nvim/.config/nvim/lua/plugins/linting.lua +++ b/nvim/.config/nvim/lua/plugins/linting.lua @@ -19,9 +19,7 @@ return { "mfussenegger/nvim-lint", config = function() require("lint").linters_by_ft = linters - if require("lint").linters["markdownlint"] ~= nil then - require("lint").linters.markdownlint.args = { "--stdin", "--disable", "MD013", "--" } - end + require("lint").linters.markdownlint.args = { "--stdin", "--disable", "MD013", "--" } vim.api.nvim_create_autocmd({ "BufWritePost", "InsertLeave" }, { callback = function() if not vim.g.disable_autolint then diff --git a/nvim/.config/nvim/lua/plugins/lsp.lua b/nvim/.config/nvim/lua/plugins/lsp.lua index a1c56ae..84bcf26 100644 --- a/nvim/.config/nvim/lua/plugins/lsp.lua +++ b/nvim/.config/nvim/lua/plugins/lsp.lua @@ -1,15 +1,12 @@ -local function get_all_servers() - local servers = {} - for _, lang in pairs(Languages) do - if not lang.lsp then - goto continue - end - for name, conf in pairs(lang.lsp) do - servers[name] = vim.tbl_deep_extend("force", servers[name] or {}, conf) - end - ::continue:: +local servers = {} +for _, lang in pairs(Languages) do + if not lang.lsp then + goto continue end - return servers + for name, conf in pairs(lang.lsp) do + servers[name] = conf + end + ::continue:: end local lsp = { @@ -30,8 +27,10 @@ local lsp = { { "saghen/blink.cmp", optional = true }, }, event = { "BufReadPost", "BufNewFile", "BufWritePre" }, - opts = { servers = get_all_servers() }, + opts = { servers = servers }, config = function(_, lspconfig_opts) + local lspconfig = require("lspconfig") + -- Display diagnostics as virtual text only if not in insert mode -- /r/neovim/comments/12inp4c/disable_diagnostics_virtual_text_when_in_insert/jqqifwk/ vim.diagnostic.config({ virtual_text = true }) @@ -51,22 +50,16 @@ local lsp = { vim.fn.sign_define("DiagnosticSignInfo", { text = "", texthl = "DiagnosticSignInfo" }) vim.fn.sign_define("DiagnosticSignHint", { text = "", texthl = "DiagnosticSignHint" }) - local function register(server_name, config) - if vim.fn.has("nvim-0.11") == 1 then - vim.lsp.config(server_name, config) - else - require("lspconfig")[server_name].setup(config) - end - end - - for server_name, config in pairs(lspconfig_opts.servers) do - register(server_name, config) - if vim.fn.has("nvim-0.11") == 0 then + for server, config in pairs(lspconfig_opts.servers) do + if vim.fn.has("nvim-0.11") == false then config.capabilities = require("blink.cmp").get_lsp_capabilities(config.capabilities) end + lspconfig[server].setup(config) end - register("marksman", { + lspconfig.nushell.setup({}) + + lspconfig.marksman.setup({ filetypes = { "markdown", "quarto" }, on_attach = function(client, _) -- TODO: for some reason this stays true even after rootdir switch? @@ -119,7 +112,7 @@ local lsp = { local python_path -- ensure python virtualenv is determined automatically on lsp start -- we primarily use pyright for cmp lsp completion & hover info - register("basedpyright", { + lspconfig.basedpyright.setup({ on_attach = function(client, _) require("core.util").set_python_env() if python_path == nil then @@ -141,7 +134,7 @@ local lsp = { }, }, }) - register("ruff", { + lspconfig.ruff.setup({ on_attach = function(client, _) require("core.util").set_python_env() client.server_capabilities.hoverProvider = false -- we use pyright for hover info @@ -155,33 +148,16 @@ local lsp = { -- set up arduino with the help of arduino.nvim plugin if require("core.util").is_available("arduino") then - register("arduino_language_server", { + lspconfig.arduino_language_server.setup({ on_new_config = require("arduino").on_new_config, }) end - if vim.lsp.is_enabled("vue_ls") then - register("ts_ls", { - init_options = { - plugins = { - { - name = "@vue/typescript-plugin", - location = vim.fn.expand("$MASON/packages") - .. "/vue-language-server" - .. "/node_modules/@vue/language-server", - languages = { "vue" }, - }, - }, - }, - filetypes = { "typescript", "javascript", "javascriptreact", "typescriptsreact", "vue" }, - }) - end - -- attach ltex for fitting ft only when spell checking becomes enabled vim.api.nvim_create_autocmd("User", { pattern = "SpellEnable", callback = function() - register("ltex", { + lspconfig.ltex.setup({ on_attach = function(_, _) if require("core.util").is_available("ltex_extra") then require("ltex_extra").setup() diff --git a/nvim/.config/nvim/lua/plugins/pickers.lua b/nvim/.config/nvim/lua/plugins/pickers.lua index 120ac26..3682999 100644 --- a/nvim/.config/nvim/lua/plugins/pickers.lua +++ b/nvim/.config/nvim/lua/plugins/pickers.lua @@ -38,54 +38,13 @@ return { -- file/item pickers and managers }) end, cmd = "Neotree", - opts = function(_, opts) - opts.sources = { "filesystem", "git_status", "buffers" } - opts.source_selector = { - winbar = true, - sources = { - { source = "filesystem" }, - { source = "git_status" }, - }, - } - opts.close_if_last_window = true - opts.enable_cursor_hijack = true - end, + opts = { + source_selector = { winbar = true }, + }, keys = { { "se", "Neotree toggle left", desc = "filetree", silent = true }, }, }, - { -- substituting git tree listing with jj listing if in jj repo - dependencies = { "Cretezy/neo-tree-jj.nvim" }, - "nvim-neo-tree/neo-tree.nvim", - optional = true, - opts = function(_, opts) - opts.sources = opts.sources or {} - opts.source_selector = opts.source_selector or {} - -- Add jj source as available - table.insert(opts.sources, "jj") - -- If there is a git tab in neo-tree replace it when in jj repo - if require("neo-tree.sources.jj.utils").get_repository_root() then - -- Remove git tab - if opts.source_selector.sources then - for i, source in ipairs(opts.source_selector.sources) do - if source.source == "git_status" then - table.remove(opts.source_selector.sources, i) - break - end - end - else - opts.source_selector.sources = {} - end - - -- Add jj tab - table.insert(opts.source_selector.sources, { - display_name = "󰊢 JJ", - source = "jj", - }) - end - end, - }, - { "MagicDuck/grug-far.nvim", opts = {}, cmd = "GrugFar" }, { "ibhagwan/fzf-lua", diff --git a/nvim/.config/nvim/lua/plugins/prose.lua b/nvim/.config/nvim/lua/plugins/prose.lua index 58480c9..7d502ec 100644 --- a/nvim/.config/nvim/lua/plugins/prose.lua +++ b/nvim/.config/nvim/lua/plugins/prose.lua @@ -70,7 +70,6 @@ local prose_plugs = { "MeanderingProgrammer/render-markdown.nvim", main = "render-markdown", opts = { - file_types = { "markdown", "codecompanion" }, render_modes = { "n", "c", "i" }, code = { sign = false, @@ -213,11 +212,9 @@ local prose_plugs = { require("zk").setup({ picker = picker, lsp = { - config = { - filetypes = { "markdown", "quarto", "djot" }, - }, auto_attach = { enabled = true, + filteypes = { "markdown", "quarto", "djot" }, }, }, }) diff --git a/nvim/.config/nvim/lua/plugins/testing.lua b/nvim/.config/nvim/lua/plugins/testing.lua index 1062823..4da2e00 100644 --- a/nvim/.config/nvim/lua/plugins/testing.lua +++ b/nvim/.config/nvim/lua/plugins/testing.lua @@ -104,7 +104,7 @@ return { }, }, -- TODO: needs to pick up poetry env for python, - -- currently just hard-codes running through uv + -- currently just hard-codes running through poetry { "andythigpen/nvim-coverage", dependencies = { @@ -112,7 +112,7 @@ return { }, config = function() require("coverage").setup({ - lang = { python = { coverage_command = "uv run coverage json -q -o -" } }, + lang = { python = { coverage_command = "poetry run coverage json -q -o -" } }, }) end, ft = { "python" }, diff --git a/terminal/.config/wezterm/wezterm.lua b/terminal/.config/wezterm/wezterm.lua index d945718..8fa9cf3 100644 --- a/terminal/.config/wezterm/wezterm.lua +++ b/terminal/.config/wezterm/wezterm.lua @@ -24,9 +24,6 @@ if file_exists(colorsfile) == true then end local settings = { - unix_domains = { - { name = "unix" }, - }, enable_wayland = true, -- sadface :-( xcursor_theme = "Adwaita", enable_tab_bar = true, diff --git a/vcs/jj/config/jj/config.toml b/vcs/jj/config/jj/config.toml index 134f553..8bfa504 100644 --- a/vcs/jj/config/jj/config.toml +++ b/vcs/jj/config/jj/config.toml @@ -18,10 +18,6 @@ pager = "delta" [ui.diff] format = "git" # for the time being to use delta well -[aliases] -# see: https://shaddy.dev/notes/jj-tug/, update most recent bookmark -tug = ["bookmark", "move", "--from", "heads(::@- & bookmarks())", "--to", "@-"] - [templates] # Add git diffs to commit drafts draft_commit_description = ''' @@ -50,6 +46,7 @@ if(root, if(conflict, label("conflict", "conflict")), bookmarks, tags, + if(git_head, label("git_head", "git_head()")), if(description, description.first_line(), label(if(empty, "empty"), description_placeholder), @@ -61,7 +58,6 @@ if(root, if(config("ui.show-cryptographic-signatures").as_boolean(), format_short_cryptographic_signature(signature)), if(empty, label("empty", "(empty)")), - if(git_head, label("git_head", "git_head()")), ) ++ "\n", ), ) diff --git a/writing/papis/config/papis/config b/writing/papis/config/papis/config index 0289ac5..e865dc9 100644 --- a/writing/papis/config/papis/config +++ b/writing/papis/config/papis/config @@ -1,6 +1,6 @@ [settings] default-library = main -formatter = bbt +formater = bbt local-config-file = .papis.config opentool = sioyek