Files
nvim/nvim/lua/plugins/lsp/ls/web.lua

96 lines
2.5 KiB
Lua

-- ┌ ┐
-- │ Web technology │
-- └ ┘
local lsp = vim.lsp
local capabilities = require("lsp-options").capabilities
local on_attach = require("lsp-options").on_attach
local on_attach_no_formatting = require("lsp-options").on_attach_no_formatting
-- ┌ ┐
-- │ HTML, CSS, JSON │
-- └ ┘
lsp.config("cssls", {
capabilities = capabilities,
on_attach = on_attach,
})
lsp.config("html", {
capabilities = capabilities,
on_attach = on_attach,
})
lsp.config("jsonls", {
capabilities = capabilities,
on_attach = on_attach,
})
-- ┌ ┐
-- │ PHP │
-- └ ┘
lsp.config("phpactor", {
capabilities = capabilities,
on_attach = on_attach,
})
-- ┌ ┐
-- │ Vue │
-- └ ┘
lsp.config("vue_ls", {
capabilities = capabilities,
on_attach = on_attach_no_formatting,
filetypes = {
"vue",
},
})
local vue_plugin = {
name = "@vue/typescript-plugin",
location = "/usr/lib/node_modules/",
languages = { "vue" },
configNamespace = "typescript",
enableForWorkspaceTypeScriptVersions = true,
}
-- ┌ ┐
-- │ TS, JS, TSX, JSX │
-- └ ┘
lsp.config("vtsls", {
capabilities = capabilities,
on_attach = on_attach_no_formatting,
filetypes = {
"javascript",
"typescript",
"typescriptreact",
"javascriptreact",
"vue",
},
settings = {
vtsls = {
tsserver = {
globalPlugins = {
vue_plugin,
},
},
},
},
})
-- ┌ ┐
-- │ nginx │
-- └ ┘
lsp.config("nginx_language_server", {
capabilities = capabilities,
on_attach = on_attach,
})
-- ── Enable configs ───────────────────────────────────────────────
local enable = vim.lsp.enable
enable("jsonls")
enable("html")
enable("cssls")
enable("phpactor")
enable("vtsls")
enable("vue_ls")
enable("nginx_language_server")