This commit is contained in:
2025-08-13 21:46:48 +02:00
commit c3e2e6509b
818 changed files with 54187 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
vim.filetype.add({
pattern = {
[".*/playbooks/.*%.yaml"] = "yaml.ansible",
[".*/playbooks/.*%.yml"] = "yaml.ansible",
[".*/roles/.*/tasks/.*%.yaml"] = "yaml.ansible",
[".*/roles/.*/tasks/.*%.yml"] = "yaml.ansible",
[".*/tasks/.*%.yaml"] = "yaml.ansible",
[".*/tasks/.*%.yml"] = "yaml.ansible",
[".*/vars/.*%.yaml"] = "yaml.ansible",
[".*/vars/.*%.yml"] = "yaml.ansible",
[".*/defaults/.*%.yaml"] = "yaml.ansible",
[".*/defaults/.*%.yml"] = "yaml.ansible",
[".*/handlers/.*%.yaml"] = "yaml.ansible",
[".*/handlers/.*%.yml"] = "yaml.ansible",
[".*/roles/.*/handlers/.*%.yaml"] = "yaml.ansible",
[".*/roles/.*/handlers/.*%.yml"] = "yaml.ansible",
},
})
return {
{ import = "plugins.extras.lang.yaml-extended" },
{ import = "lazyvim.plugins.extras.lang.ansible" },
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"ansible-language-server",
},
},
},
{
"mfussenegger/nvim-lint",
opts = {
linters_by_ft = {
ansible = { "ansible_lint" },
},
},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"ansible",
},
},
},
}

View File

@@ -0,0 +1,56 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"bash",
},
},
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
bashls = {},
},
},
},
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"bash-language-server",
"shellcheck",
},
},
},
{
"mfussenegger/nvim-lint",
opts = function(_, opts)
opts.linters_by_ft.bash = opts.linters_by_ft.bash or {}
table.insert(opts.linters_by_ft.bash, "shellcheck")
return opts
end,
},
{
"nvim-neotest/neotest",
optional = true,
dependencies = {
"rcasia/neotest-bash",
},
opts = {
adapters = {
["neotest-bash"] = {},
},
},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"bash",
},
},
},
}

View File

@@ -0,0 +1,12 @@
return {
{ import = "lazyvim.plugins.extras.lang.docker" },
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"docker",
},
},
},
}

View File

@@ -0,0 +1,12 @@
return {
{ import = "lazyvim.plugins.extras.lang.git" },
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"git",
},
},
},
}

View File

@@ -0,0 +1,55 @@
return {
{ import = "lazyvim.plugins.extras.lang.go" },
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"golangci-lint",
},
},
},
{
"ray-x/go.nvim",
dependencies = {
"ray-x/guihua.lua",
"neovim/nvim-lspconfig",
"nvim-treesitter/nvim-treesitter",
},
opts = {},
ft = { "go", "gomod" },
build = function()
require("go.install").update_all_sync()
end,
},
{
"mfussenegger/nvim-lint",
opts = function(_, opts)
local function add_linters(tbl)
for ft, linters in pairs(tbl) do
if opts.linters_by_ft[ft] == nil then
opts.linters_by_ft[ft] = linters
else
vim.list_extend(opts.linters_by_ft[ft], linters)
end
end
end
add_linters({
["go"] = { "golangcilint" },
["gomod"] = { "golangcilint" },
["gowork"] = { "golangcilint" },
})
return opts
end,
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"go",
},
},
},
}

View File

@@ -0,0 +1,12 @@
return {
{ import = "lazyvim.plugins.extras.lang.haskell" },
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"haskell-9",
},
},
},
}

View File

@@ -0,0 +1,11 @@
return {
{ import = "lazyvim.plugins.extras.lang.json" },
{
"gennaro-tedesco/nvim-jqx",
ft = { "json", "yaml" },
cmd = { "JqxList", "JqxQuery" },
keys = {
{ "<leader>cj", ft = { "json", "yaml" }, "<cmd>JqxList<cr>", desc = "Jqx List" },
},
},
}

View File

@@ -0,0 +1,44 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"julia",
},
},
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
julials = {},
},
},
},
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"julia-lsp",
},
},
},
{
"hrsh7th/nvim-cmp",
dependencies = {
"amarakon/nvim-cmp-lua-latex-symbols",
},
opts = function(_, opts)
table.insert(opts.sources, { name = "lua-latex-symbols", option = { cache = true } })
end,
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"julia",
},
},
},
}

View File

@@ -0,0 +1,59 @@
local filetype = { "markdown", "text", "tex", "plaintex", "norg" }
return {
{ import = "lazyvim.plugins.extras.lang.markdown" },
{
"gaoDean/autolist.nvim",
enabled = false,
ft = filetype,
opts = {},
keys = {
{ "<CR>", "<CR><cmd>AutolistNewBullet<cr>", mode = { "i" }, ft = filetype },
{ "o", "o<cmd>AutolistNewBullet<cr>", mode = { "n" }, ft = filetype },
{ "O", "O<cmd>AutolistNewBulletBefore<cr>", mode = { "n" }, ft = filetype },
{ "<CR>", "<cmd>AutolistToggleCheckbox<cr><CR>", mode = { "n" }, ft = filetype },
{ "<C-r>", "<cmd>AutolistRecalculate<cr>", mode = { "n" }, ft = filetype },
{ "].", "<cmd>AutolistCycleNext<cr>", mode = { "n" }, desc = "Next List Type", ft = filetype },
{ "[.", "<cmd>AutolistCyclePrev<cr>", mode = { "n" }, desc = "Prev List Type", ft = filetype },
{ ">>", ">><cmd>AutolistRecalculate<cr>", mode = { "n" }, ft = filetype },
{ "<<", "<<<cmd>AutolistRecalculate<cr>", mode = { "n" }, ft = filetype },
{ "dd", "dd<cmd>AutolistRecalculate<cr>", mode = { "n" }, ft = filetype },
{ "d", "d<cmd>AutolistRecalculate<cr>", mode = { "v" }, ft = filetype },
},
},
{
"antonk52/markdowny.nvim",
enabled = false,
ft = filetype,
opts = {
filetypes = filetype,
},
},
{
"mfussenegger/nvim-lint",
opts = {
linters = {
["markdownlint-cli2"] = {
prepend_args = { "--config", os.getenv("HOME") .. "/.config/nvim/rules/.markdownlint-cli2.yaml", "--" },
},
},
},
},
{
"MeanderingProgrammer/render-markdown.nvim",
opts = {
preset = "lazy",
},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"markdown",
},
},
},
}

View File

@@ -0,0 +1,20 @@
return {
{ import = "lazyvim.plugins.extras.lang.nix" },
{
"mfussenegger/nvim-lint",
opts = function(_, opts)
opts.linters_by_ft.nix = opts.linters_by_ft.nix or {}
table.insert(opts.linters_by_ft.nix, "statix")
return opts
end,
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"nix",
},
},
},
}

View File

@@ -0,0 +1,15 @@
return {
{ import = "lazyvim.plugins.extras.lang.omnisharp" },
{
"nvim-neotest/neotest",
optional = true,
dependencies = {
"Issafalcon/neotest-dotnet",
},
opts = {
adapters = {
["neotest-dotnet"] = {},
},
},
},
}

View File

@@ -0,0 +1,10 @@
return {
"apple/pkl-neovim",
dependencies = {
"nvim-treesitter/nvim-treesitter",
},
build = function()
vim.cmd("TSInstall! pkl")
end,
event = "BufRead *.pkl",
}

View File

@@ -0,0 +1,113 @@
local package_prefix = "<leader>pp"
-- LSP Server to use for Python.
-- Set to "basedpyright" to use basedpyright instead of pyright.
vim.g.lazyvim_python_lsp = "basedpyright"
vim.g.lazyvim_python_ruff = "ruff"
return {
{ import = "lazyvim.plugins.extras.lang.python" },
{
"neovim/nvim-lspconfig",
opts = {
servers = {
---@type lspconfig.options.basedpyright
basedpyright = {
settings = {
basedpyright = {
analysis = {
diagnosticSeverityOverrides = {
reportUnusedCallResult = "information",
reportUnusedExpression = "information",
reportUnknownMemberType = "none",
reportUnknownLambdaType = "none",
reportUnknownParameterType = "none",
reportMissingParameterType = "none",
reportUnknownVariableType = "none",
reportUnknownArgumentType = "none",
reportAny = "none",
},
},
},
},
},
---@type lspconfig.options.pyright
pyright = {
settings = {
verboseOutput = true,
autoImportCompletion = true,
python = {
analysis = {
diagnosticSeverityOverrides = {
reportWildcardImportFromLibrary = "none",
reportUnusedImport = "information",
reportUnusedClass = "information",
reportUnusedFunction = "information",
},
typeCheckingMode = "strict",
autoSearchPaths = true,
useLibraryCodeForTypes = true,
diagnosticMode = "openFilesOnly",
indexing = true,
},
},
},
},
[vim.g.lazyvim_python_ruff] = {
handlers = {
["textDocument/publishDiagnostics"] = function() end,
},
},
},
},
},
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"requirements",
},
},
},
{
"MeanderingProgrammer/py-requirements.nvim",
event = {
"BufRead requirements.txt",
},
dependencies = {
{ "nvim-lua/plenary.nvim" },
{
"hrsh7th/nvim-cmp",
dependencies = {},
opts = function(_, opts)
table.insert(opts.sources, { name = "py-requirements" })
end,
},
},
opts = {},
-- stylua: ignore
keys = {
{ package_prefix .. "u", function() require("py-requirements").upgrade() end, desc = "Update Package" },
{ package_prefix .. "i", function() require("py-requirements").show_description() end, desc = "Package Info" },
{ package_prefix .. "a", function() require("py-requirements").upgrade_all() end, desc = "Update All Packages" },
},
},
{
"folke/which-key.nvim",
opts = {
spec = {
{ "<leader>p", group = "packages/dependencies", icon = "" },
{ package_prefix, group = "python", icon = "" },
},
},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"python-3.11",
},
},
},
}

View File

@@ -0,0 +1,57 @@
local package_prefix = "<leader>pr"
return {
{ import = "lazyvim.plugins.extras.lang.rust" },
{
"stevearc/conform.nvim",
opts = function(_, opts)
opts.formatters_by_ft.toml = opts.formatters_by_ft.toml or {}
table.insert(opts.formatters_by_ft.toml, "taplo")
opts.formatters_by_ft.rust = opts.formatters_by_ft.rust or {}
table.insert(opts.formatters_by_ft.rust, "rustfmt")
return opts
end,
},
{
"Saecki/crates.nvim",
-- stylua: ignore
keys = {
{ package_prefix .. "R", function() require("crates").reload() end, desc = "Reload" },
{ package_prefix .. "u", function() require("crates").update_crate() end, desc = "Update Crate" },
{ package_prefix .. "u", mode = "v", function() require("crates").update_crates() end, desc = "Update Crates" },
{ package_prefix .. "a", function() require("crates").update_all_crates() end, desc = "Update All Crates" },
{ package_prefix .. "U", function() require("crates").upgrade_crate() end, desc = "Upgrade Crate" },
{ package_prefix .. "U", mode = "v", function() require("crates").upgrade_crates() end, desc = "Upgrade Crates" },
{ package_prefix .. "A", function() require("crates").upgrade_all_crates() end, desc = "Upgrade All Crates" },
{ package_prefix .. "t", function() require("crates").expand_plain_crate_to_inline_table() end, desc = "Extract into Inline Table" },
{ package_prefix .. "T", function() require("crates").extract_crate_into_table() end, desc = "Extract into Table" },
{ package_prefix .. "h", function() require("crates").open_homepage() end, desc = "Homepage" },
{ package_prefix .. "r", function() require("crates").open_repository() end, desc = "Repo" },
{ package_prefix .. "d", function() require("crates").open_documentation() end, desc = "Documentation" },
{ package_prefix .. "c", function() require("crates").open_crates_io() end, desc = "Crates.io" },
},
},
{
"folke/which-key.nvim",
opts = {
spec = {
{ "<leader>p", group = "packages/dependencies", icon = "" },
{ package_prefix, group = "rust", icon = "" },
},
},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"rust",
},
},
},
}

View File

@@ -0,0 +1,23 @@
local prefix = "<leader>D"
return {
{ import = "lazyvim.plugins.extras.lang.sql" },
{
"neovim/nvim-lspconfig",
opts = {
servers = {
sqlls = {},
},
},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"sqlite",
"postgresql-16",
},
},
},
}

View File

@@ -0,0 +1,14 @@
return {
{ import = "plugins.extras.lang.web.typescript-extended" },
{ import = "plugins.extras.lang.web.html-css" },
{ import = "lazyvim.plugins.extras.lang.angular" },
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"angular",
},
},
},
}

View File

@@ -0,0 +1,51 @@
local inlay_hints_settings = {
parameterNames = { enabled = "all" },
parameterTypes = { enabled = true },
variableTypes = { enabled = true },
propertyDeclarationTypes = { enabled = true },
functionLikeReturnTypes = { enabled = true },
enumMemberValues = { enabled = true },
}
return {
{ import = "lazyvim.plugins.extras.lang.astro" },
{ import = "plugins.extras.lang.web.typescript-extended" },
{
"neovim/nvim-lspconfig",
opts = {
servers = {
astro = {
settings = {
typescript = {
updateImportsOnFileMove = { enabled = "always" },
inlayHints = inlay_hints_settings,
},
javascript = {
updateImportsOnFileMove = { enabled = "always" },
inlayHints = inlay_hints_settings,
},
},
handlers = {
["textDocument/publishDiagnostics"] = function(err, result, ctx, config)
require("ts-error-translator").translate_diagnostics(err, result, ctx, config)
vim.lsp.diagnostic.on_publish_diagnostics(err, result, ctx, config)
end,
},
},
},
},
},
{
"dmmulroy/ts-error-translator.nvim",
opts = {},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"astro",
},
},
},
}

View File

@@ -0,0 +1,22 @@
return {
{ import = "plugins.extras.lang.web.typescript-extended" },
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"graphql-language-service-cli",
},
},
},
{
"neovim/nvim-lspconfig",
dependencies = {},
opts = {
servers = {
graphql = {
filetypes = { "graphql", "javascript", "javascriptreact", "typescript", "typescriptreact" },
},
},
},
},
}

View File

@@ -0,0 +1,99 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"html",
"css",
"scss",
},
},
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
emmet_language_server = {},
html = {},
cssmodules_ls = {},
css_variables = {},
cssls = {
lint = {
compatibleVendorPrefixes = "ignore",
vendorPrefix = "ignore",
unknownVendorSpecificProperties = "ignore",
-- unknownProperties = "ignore", -- duplicate with stylelint
duplicateProperties = "warning",
emptyRules = "warning",
importStatement = "warning",
zeroUnits = "warning",
fontFaceProperties = "warning",
hexColorLength = "warning",
argumentsInColorFunction = "warning",
unknownAtRules = "warning",
ieHack = "warning",
propertyIgnoredDueToDisplay = "warning",
},
},
},
},
},
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"emmet-language-server",
"html-lsp",
"cssmodules-language-server",
"css-variables-language-server",
"css-lsp",
"htmlhint",
"stylelint",
},
},
},
{
"mfussenegger/nvim-lint",
opts = function(_, opts)
local stylelint = "stylelint"
local function add_linters(tbl)
for ft, linters in pairs(tbl) do
if opts.linters_by_ft[ft] == nil then
opts.linters_by_ft[ft] = linters
else
vim.list_extend(opts.linters_by_ft[ft], linters)
end
end
end
add_linters({
["html"] = { "htmlhint" },
["css"] = { stylelint },
["scss"] = { stylelint },
["less"] = { stylelint },
["sugarss"] = { stylelint },
["vue"] = { stylelint },
["wxss"] = { stylelint },
["javascript"] = { stylelint },
["javascriptreact"] = { stylelint },
["typescript"] = { stylelint },
["typescriptreact"] = { stylelint },
})
return opts
end,
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"html",
"css",
"sass",
},
},
},
}

View File

@@ -0,0 +1,18 @@
return {
{
"neovim/nvim-lspconfig",
opts = {
servers = {
htmx = {},
},
},
},
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"htmx-lsp",
},
},
},
}

View File

@@ -0,0 +1,32 @@
return {
{ import = "lazyvim.plugins.extras.lang.php" },
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"phpdoc",
},
},
},
{
"nvim-neotest/neotest",
optional = true,
dependencies = {
"olimorris/neotest-phpunit",
},
opts = {
adapters = {
["neotest-phpunit"] = {},
},
},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"php",
},
},
},
}

View File

@@ -0,0 +1,51 @@
local inlay_hints_settings = {
parameterNames = { enabled = "all" },
parameterTypes = { enabled = true },
variableTypes = { enabled = true },
propertyDeclarationTypes = { enabled = true },
functionLikeReturnTypes = { enabled = true },
enumMemberValues = { enabled = true },
}
return {
{ import = "lazyvim.plugins.extras.lang.svelte" },
{ import = "plugins.extras.lang.web.typescript-extended" },
{
"neovim/nvim-lspconfig",
opts = {
servers = {
svelte = {
settings = {
typescript = {
updateImportsOnFileMove = { enabled = "always" },
inlayHints = inlay_hints_settings,
},
javascript = {
updateImportsOnFileMove = { enabled = "always" },
inlayHints = inlay_hints_settings,
},
},
handlers = {
["textDocument/publishDiagnostics"] = function(err, result, ctx, config)
require("ts-error-translator").translate_diagnostics(err, result, ctx, config)
vim.lsp.diagnostic.on_publish_diagnostics(err, result, ctx, config)
end,
},
},
},
},
},
{
"dmmulroy/ts-error-translator.nvim",
opts = {},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"svelte",
},
},
},
}

View File

@@ -0,0 +1,20 @@
return {
{ import = "lazyvim.plugins.extras.lang.tailwind" },
{ import = "plugins.extras.ui.inline-fold" },
{
"MaximilianLloyd/tw-values.nvim",
keys = {
{ "<leader>cT", "<cmd>TWValues<cr>", desc = "Tailwind CSS values" },
},
opts = {},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"tailwindcss",
},
},
},
}

View File

@@ -0,0 +1,104 @@
return {
{ import = "lazyvim.plugins.extras.lang.typescript" },
{ import = "plugins.extras.lang.json-extended" },
{
"neovim/nvim-lspconfig",
opts = {
servers = {
vtsls = {
handlers = {
["textDocument/publishDiagnostics"] = function(err, result, ctx, config)
require("ts-error-translator").translate_diagnostics(err, result, ctx, config)
vim.lsp.diagnostic.on_publish_diagnostics(err, result, ctx, config)
end,
},
init_options = {
preferences = {
disableSuggestions = true,
},
},
},
},
},
},
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"javascript",
"jsdoc",
},
},
},
{
"dmmulroy/tsc.nvim",
opts = {
auto_start_watch_mode = false,
use_trouble_qflist = true,
flags = {
watch = false,
},
},
keys = {
{ "<leader>ct", ft = { "typescript", "typescriptreact" }, "<cmd>TSC<cr>", desc = "Type Check" },
{ "<leader>xy", ft = { "typescript", "typescriptreact" }, "<cmd>TSCOpen<cr>", desc = "Type Check Quickfix" },
},
ft = {
"typescript",
"typescriptreact",
},
cmd = {
"TSC",
"TSCOpen",
"TSCClose",
"TSStop",
},
},
{
"dmmulroy/ts-error-translator.nvim",
opts = {},
},
{
"nvim-neotest/neotest",
optional = true,
dependencies = {
"nvim-neotest/neotest-jest",
"adrigzr/neotest-mocha",
"marilari88/neotest-vitest",
},
opts = {
adapters = {
["neotest-jest"] = {
jestCommand = "npm test --",
jestConfigFile = "custom.jest.config.ts",
env = { CI = true },
cwd = function()
return vim.fn.getcwd()
end,
},
["neotest-mocha"] = {
command = "npm test --",
env = { CI = true },
cwd = function()
return vim.fn.getcwd()
end,
},
["neotest-vitest"] = {},
},
},
-- stylua: ignore
keys = {
{ "<leader>tw", function() require('neotest').run.run({ jestCommand = 'jest --watch ' }) end, desc = "Run Watch" },
},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"react",
"typescript",
},
},
},
}

View File

@@ -0,0 +1,38 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"vue",
},
},
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
vuels = {},
volar = {
enabled = false,
},
},
},
},
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"vetur-vls",
},
},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"vue-2",
},
},
},
}

View File

@@ -0,0 +1,51 @@
local inlay_hints_settings = {
parameterNames = { enabled = "all" },
parameterTypes = { enabled = true },
variableTypes = { enabled = true },
propertyDeclarationTypes = { enabled = true },
functionLikeReturnTypes = { enabled = true },
enumMemberValues = { enabled = true },
}
return {
{ import = "lazyvim.plugins.extras.lang.vue" },
{ import = "plugins.extras.lang.web.typescript-extended" },
{
"neovim/nvim-lspconfig",
opts = {
servers = {
volar = {
settings = {
typescript = {
updateImportsOnFileMove = { enabled = "always" },
inlayHints = inlay_hints_settings,
},
javascript = {
updateImportsOnFileMove = { enabled = "always" },
inlayHints = inlay_hints_settings,
},
},
handlers = {
["textDocument/publishDiagnostics"] = function(err, result, ctx, config)
require("ts-error-translator").translate_diagnostics(err, result, ctx, config)
vim.lsp.diagnostic.on_publish_diagnostics(err, result, ctx, config)
end,
},
},
},
},
},
{
"dmmulroy/ts-error-translator.nvim",
opts = {},
},
{
"luckasRanarison/nvim-devdocs",
optional = true,
opts = {
ensure_installed = {
"vue-3",
},
},
},
}

View File

@@ -0,0 +1,26 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"xml",
},
},
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
lemminx = {},
},
},
},
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"lemminx",
},
},
},
}

View File

@@ -0,0 +1,53 @@
return {
{ import = "lazyvim.plugins.extras.lang.zig" },
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"codelldb",
},
},
},
{
"mfussenegger/nvim-dap",
optional = true,
opts = function()
local dap = require("dap")
dap.configurations.zig = {
{
name = "Zig Run",
type = "codelldb",
request = "launch",
program = function()
os.execute("zig build")
local command = "find ! -type d -path './zig-out/bin/*' | grep -v 'Test' | sed 's#.*/##'"
local bin_location = io.popen(command, "r")
if bin_location ~= nil then
return "zig-out/bin/" .. bin_location:read("*a"):gsub("[\n\r]", "")
else
return ""
end
end,
cwd = "${workspaceFolder}",
stopOnEntry = false,
args = function()
local argv = {}
arg = vim.fn.input(string.format("Arguments: "))
for a in string.gmatch(arg, "%S+") do
table.insert(argv, a)
end
return argv
end,
},
}
end,
},
{
"stevearc/conform.nvim",
opts = function(_, opts)
opts.formatters_by_ft.python = opts.formatters_by_ft.python or {}
table.insert(opts.formatters_by_ft.python, "zigfmt")
return opts
end,
},
}