Compare commits
15 commits
b1f751a82d
...
f160a5b4a7
| Author | SHA1 | Date | |
|---|---|---|---|
| f160a5b4a7 | |||
| 0a927afe60 | |||
| 21e80aeb87 | |||
| e912c3f535 | |||
| 1f05e0775d | |||
| 9900750e81 | |||
| d2432e0039 | |||
| 1d5fbef0fb | |||
| b22334c442 | |||
| 5913948705 | |||
| cf9a25d1c6 | |||
| 59223d1003 | |||
| 4d8f554197 | |||
| 86d358627c | |||
| 2bdfb291ae |
12 changed files with 145 additions and 53 deletions
|
|
@ -24,7 +24,6 @@ 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]
|
||||
|
|
|
|||
|
|
@ -35,13 +35,14 @@
|
|||
"magick": { "branch": "master", "commit": "aa96e77b6d08983707941727a574752445de0d70" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"markmap.nvim": { "branch": "main", "commit": "5fb6755cf5434511cc23a4936c9eb76b9142fba5" },
|
||||
"mason-conform.nvim": { "branch": "main", "commit": "1983f353b29d8716751665c18d57e1ac0473a59a" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
|
||||
"mason-conform.nvim": { "branch": "main", "commit": "f3b96fa2217fcb1513301eefbe10ea0e765e33eb" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "5477d67a5ca12b704f2a8a55a057fc79750f3dbb" },
|
||||
"mason-nvim-lint": { "branch": "main", "commit": "b579a00ee39dcd590b1023028dc8fb3d203a67b0" },
|
||||
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
|
||||
"mason.nvim": { "branch": "main", "commit": "7f265cd6ae56cecdd0aa50c8c73fc593b0604801" },
|
||||
"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" },
|
||||
|
|
@ -52,7 +53,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": "fa2662510d30b06168b6e2e6915518decde6bbac" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "3ea99227e316c5028f57a4d86a1a7fd01dd876d0" },
|
||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||
"nvim-surround": { "branch": "main", "commit": "0e62500b98f4513feaaf7425c135472457ea5b7d" },
|
||||
"nvim-toggleterm.lua": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
|
||||
|
|
@ -87,5 +88,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": "8fdd7032633045ece559273370fc0ec75ee8ffce" }
|
||||
"zk-nvim": { "branch": "main", "commit": "fd1ab2239ed85ca51051c094a49a280f4ed76bb2" }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
-- A list of all languages for which I have support for any of:
|
||||
-- an LSP
|
||||
-- Treesitter
|
||||
-- linting
|
||||
-- formatting
|
||||
-- an LSP (lsp)
|
||||
-- Treesitter (ts)
|
||||
-- linting (lint)
|
||||
-- formatting (format)
|
||||
--
|
||||
-- with their respective names used by lspconfig, nvim-treesitter, nvim-lint and conform.
|
||||
--
|
||||
|
|
@ -12,6 +12,16 @@ 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" } } },
|
||||
|
|
@ -107,7 +117,11 @@ local languages = {
|
|||
lsp = { tinymist = { settings = { formatterMode = "typstyle" } } },
|
||||
ts = { "typst" },
|
||||
},
|
||||
vue = { format = { vue = { "prettier", "rustywind" } } },
|
||||
vue = {
|
||||
lsp = { vue_ls = {} },
|
||||
ts = { "typescript", "vue" },
|
||||
format = { vue = { "prettier", "rustywind" } },
|
||||
},
|
||||
yaml = { lsp = { yamlls = {}, ansiblels = {} }, ts = { "yaml" }, format = { yaml = { "prettier" } } },
|
||||
zsh = { format = { zsh = { "shfmt" } } },
|
||||
|
||||
|
|
@ -358,7 +372,6 @@ local languages = {
|
|||
"vim",
|
||||
"vimdoc",
|
||||
"vrl",
|
||||
"vue",
|
||||
"wgsl",
|
||||
"wgsl_bevy",
|
||||
"wing",
|
||||
|
|
|
|||
|
|
@ -1,15 +1,4 @@
|
|||
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" },
|
||||
|
|
@ -106,4 +95,17 @@ 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,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,9 @@ return {
|
|||
"mfussenegger/nvim-lint",
|
||||
config = function()
|
||||
require("lint").linters_by_ft = linters
|
||||
require("lint").linters.markdownlint.args = { "--stdin", "--disable", "MD013", "--" }
|
||||
if require("lint").linters["markdownlint"] ~= nil then
|
||||
require("lint").linters.markdownlint.args = { "--stdin", "--disable", "MD013", "--" }
|
||||
end
|
||||
vim.api.nvim_create_autocmd({ "BufWritePost", "InsertLeave" }, {
|
||||
callback = function()
|
||||
if not vim.g.disable_autolint then
|
||||
|
|
|
|||
|
|
@ -1,12 +1,15 @@
|
|||
local servers = {}
|
||||
for _, lang in pairs(Languages) do
|
||||
if not lang.lsp then
|
||||
goto continue
|
||||
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::
|
||||
end
|
||||
for name, conf in pairs(lang.lsp) do
|
||||
servers[name] = conf
|
||||
end
|
||||
::continue::
|
||||
return servers
|
||||
end
|
||||
|
||||
local lsp = {
|
||||
|
|
@ -27,10 +30,8 @@ local lsp = {
|
|||
{ "saghen/blink.cmp", optional = true },
|
||||
},
|
||||
event = { "BufReadPost", "BufNewFile", "BufWritePre" },
|
||||
opts = { servers = servers },
|
||||
opts = { servers = get_all_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 })
|
||||
|
|
@ -50,16 +51,22 @@ local lsp = {
|
|||
vim.fn.sign_define("DiagnosticSignInfo", { text = "", texthl = "DiagnosticSignInfo" })
|
||||
vim.fn.sign_define("DiagnosticSignHint", { text = "", texthl = "DiagnosticSignHint" })
|
||||
|
||||
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)
|
||||
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
|
||||
lspconfig[server].setup(config)
|
||||
end
|
||||
|
||||
lspconfig.nushell.setup({})
|
||||
for server_name, config in pairs(lspconfig_opts.servers) do
|
||||
register(server_name, config)
|
||||
if vim.fn.has("nvim-0.11") == 0 then
|
||||
config.capabilities = require("blink.cmp").get_lsp_capabilities(config.capabilities)
|
||||
end
|
||||
end
|
||||
|
||||
lspconfig.marksman.setup({
|
||||
register("marksman", {
|
||||
filetypes = { "markdown", "quarto" },
|
||||
on_attach = function(client, _)
|
||||
-- TODO: for some reason this stays true even after rootdir switch?
|
||||
|
|
@ -112,7 +119,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
|
||||
lspconfig.basedpyright.setup({
|
||||
register("basedpyright", {
|
||||
on_attach = function(client, _)
|
||||
require("core.util").set_python_env()
|
||||
if python_path == nil then
|
||||
|
|
@ -134,7 +141,7 @@ local lsp = {
|
|||
},
|
||||
},
|
||||
})
|
||||
lspconfig.ruff.setup({
|
||||
register("ruff", {
|
||||
on_attach = function(client, _)
|
||||
require("core.util").set_python_env()
|
||||
client.server_capabilities.hoverProvider = false -- we use pyright for hover info
|
||||
|
|
@ -148,16 +155,33 @@ local lsp = {
|
|||
|
||||
-- set up arduino with the help of arduino.nvim plugin
|
||||
if require("core.util").is_available("arduino") then
|
||||
lspconfig.arduino_language_server.setup({
|
||||
register("arduino_language_server", {
|
||||
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()
|
||||
lspconfig.ltex.setup({
|
||||
register("ltex", {
|
||||
on_attach = function(_, _)
|
||||
if require("core.util").is_available("ltex_extra") then
|
||||
require("ltex_extra").setup()
|
||||
|
|
|
|||
|
|
@ -38,13 +38,54 @@ return { -- file/item pickers and managers
|
|||
})
|
||||
end,
|
||||
cmd = "Neotree",
|
||||
opts = {
|
||||
source_selector = { winbar = true },
|
||||
},
|
||||
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,
|
||||
keys = {
|
||||
{ "<leader>se", "<cmd>Neotree toggle left<cr>", 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",
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ local prose_plugs = {
|
|||
"MeanderingProgrammer/render-markdown.nvim",
|
||||
main = "render-markdown",
|
||||
opts = {
|
||||
file_types = { "markdown", "codecompanion" },
|
||||
render_modes = { "n", "c", "i" },
|
||||
code = {
|
||||
sign = false,
|
||||
|
|
@ -212,9 +213,11 @@ local prose_plugs = {
|
|||
require("zk").setup({
|
||||
picker = picker,
|
||||
lsp = {
|
||||
config = {
|
||||
filetypes = { "markdown", "quarto", "djot" },
|
||||
},
|
||||
auto_attach = {
|
||||
enabled = true,
|
||||
filteypes = { "markdown", "quarto", "djot" },
|
||||
},
|
||||
},
|
||||
})
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ return {
|
|||
},
|
||||
},
|
||||
-- TODO: needs to pick up poetry env for python,
|
||||
-- currently just hard-codes running through poetry
|
||||
-- currently just hard-codes running through uv
|
||||
{
|
||||
"andythigpen/nvim-coverage",
|
||||
dependencies = {
|
||||
|
|
@ -112,7 +112,7 @@ return {
|
|||
},
|
||||
config = function()
|
||||
require("coverage").setup({
|
||||
lang = { python = { coverage_command = "poetry run coverage json -q -o -" } },
|
||||
lang = { python = { coverage_command = "uv run coverage json -q -o -" } },
|
||||
})
|
||||
end,
|
||||
ft = { "python" },
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ if file_exists(colorsfile) == true then
|
|||
end
|
||||
|
||||
local settings = {
|
||||
unix_domains = {
|
||||
{ name = "unix" },
|
||||
},
|
||||
enable_wayland = true, -- sadface :-(
|
||||
xcursor_theme = "Adwaita",
|
||||
enable_tab_bar = true,
|
||||
|
|
|
|||
|
|
@ -18,6 +18,10 @@ 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 = '''
|
||||
|
|
@ -46,7 +50,6 @@ 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),
|
||||
|
|
@ -58,6 +61,7 @@ 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",
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[settings]
|
||||
default-library = main
|
||||
formater = bbt
|
||||
formatter = bbt
|
||||
local-config-file = .papis.config
|
||||
|
||||
opentool = sioyek
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue