Vue features

This commit is contained in:
Mathias Schneider
2026-04-07 20:29:06 +02:00
parent dcd7c3e92f
commit 3eee935f25
5 changed files with 54 additions and 1 deletions
+12 -1
View File
@@ -36,7 +36,7 @@ return {
adapters = { "pwa-node", "pwa-chrome", "pwa-msedge", "node-terminal", "pwa-extensionHost" }, adapters = { "pwa-node", "pwa-chrome", "pwa-msedge", "node-terminal", "pwa-extensionHost" },
}) })
for _, language in ipairs({ "typescript", "javascript", "typescriptreact", "javascriptreact" }) do for _, language in ipairs({ "typescript", "javascript", "typescriptreact", "javascriptreact", "vue" }) do
dap.configurations[language] = { dap.configurations[language] = {
{ {
type = "pwa-node", type = "pwa-node",
@@ -73,6 +73,17 @@ return {
url = "http://localhost:3000", url = "http://localhost:3000",
webRoot = "${workspaceFolder}", webRoot = "${workspaceFolder}",
}, },
{
type = "pwa-chrome",
request = "launch",
name = "Launch Chrome (Vue dev server)",
url = function()
local port = vim.fn.input("Port (default 8080): ", "8080")
return "http://localhost:" .. port
end,
webRoot = "${workspaceFolder}",
sourceMaps = true,
},
} }
end end
@@ -7,6 +7,33 @@ return {
end, end,
}, },
-- Mason Tool Installer (auto-install formatters and linters)
{
"WhoIsSethDaniel/mason-tool-installer.nvim",
dependencies = { "mason-org/mason.nvim" },
config = function()
require("mason-tool-installer").setup({
ensure_installed = {
-- Formatters
"prettier",
"black",
"stylua",
"shfmt",
-- Linters
"eslint_d",
"ruff",
"selene",
"shellcheck",
"jsonlint",
"yamllint",
"markdownlint",
},
auto_update = false,
run_on_start = true,
})
end,
},
-- Mason-LSPconfig (bridge Mason and nvim-lspconfig) -- Mason-LSPconfig (bridge Mason and nvim-lspconfig)
{ {
"mason-org/mason-lspconfig.nvim", "mason-org/mason-lspconfig.nvim",
@@ -15,6 +42,7 @@ return {
ensure_installed = { ensure_installed = {
"pyright", -- Python "pyright", -- Python
"ts_ls", -- TypeScript/JavaScript "ts_ls", -- TypeScript/JavaScript
"vuels", -- Vue (Volar)
"jsonls", -- JSON "jsonls", -- JSON
"yamlls", -- YAML "yamlls", -- YAML
"html", -- HTML "html", -- HTML
@@ -92,6 +120,16 @@ return {
}, },
}) })
-- Vue
vim.lsp.config("vuels", {
filetypes = { "vue" },
init_options = {
typescript = {
tsdk = vim.fn.getcwd() .. "/node_modules/typescript/lib",
},
},
})
-- Other languages -- Other languages
vim.lsp.config("jsonls", {}) vim.lsp.config("jsonls", {})
vim.lsp.config("yamlls", {}) vim.lsp.config("yamlls", {})
@@ -103,6 +141,7 @@ return {
vim.lsp.enable("lua_ls") vim.lsp.enable("lua_ls")
vim.lsp.enable("pyright") vim.lsp.enable("pyright")
vim.lsp.enable("ts_ls") vim.lsp.enable("ts_ls")
vim.lsp.enable("vuels")
vim.lsp.enable("jsonls") vim.lsp.enable("jsonls")
vim.lsp.enable("yamlls") vim.lsp.enable("yamlls")
vim.lsp.enable("html") vim.lsp.enable("html")
@@ -10,6 +10,7 @@ return {
jsx = { "prettier", "eslint" }, jsx = { "prettier", "eslint" },
typescript = { "prettier", "eslint" }, typescript = { "prettier", "eslint" },
typescriptreact = { "prettier", "eslint" }, typescriptreact = { "prettier", "eslint" },
vue = { "prettier" },
json = { "prettier" }, json = { "prettier" },
jsonc = { "prettier" }, jsonc = { "prettier" },
html = { "prettier" }, html = { "prettier" },
@@ -6,6 +6,7 @@ return {
javascriptreact = { "eslint_d" }, javascriptreact = { "eslint_d" },
typescript = { "eslint_d" }, typescript = { "eslint_d" },
typescriptreact = { "eslint_d" }, typescriptreact = { "eslint_d" },
vue = { "eslint_d" },
python = { "ruff" }, python = { "ruff" },
lua = { "selene" }, lua = { "selene" },
sh = { "shellcheck" }, sh = { "shellcheck" },
@@ -16,6 +16,7 @@ return {
"javascript", "javascript",
"typescript", "typescript",
"tsx", "tsx",
"vue",
"html", "html",
"css", "css",
"bash", "bash",