mirror of
https://github.com/LazyVim/LazyVim.git
synced 2025-06-30 12:34:37 +02:00
refactor: refactored mason/typescript/vue support
This commit is contained in:
parent
135150307b
commit
9d999fa210
6 changed files with 70 additions and 37 deletions
|
@ -106,8 +106,7 @@ return {
|
|||
{ "<leader>dPc", function() require('dap-python').test_class() end, desc = "Debug Class", ft = "python" },
|
||||
},
|
||||
config = function()
|
||||
local path = require("mason-registry").get_package("debugpy"):get_install_path()
|
||||
require("dap-python").setup(path .. "/venv/bin/python")
|
||||
require("dap-python").setup(LazyVim.get_pkg_path("debugpy", "/venv/bin/python"))
|
||||
end,
|
||||
},
|
||||
},
|
||||
|
|
|
@ -32,10 +32,21 @@ return {
|
|||
enabled = false,
|
||||
},
|
||||
vtsls = {
|
||||
-- explicitly add default filetypes, so that we can extend
|
||||
-- them in related extras
|
||||
filetypes = {
|
||||
"javascript",
|
||||
"javascriptreact",
|
||||
"javascript.jsx",
|
||||
"typescript",
|
||||
"typescriptreact",
|
||||
"typescript.tsx",
|
||||
},
|
||||
settings = {
|
||||
complete_function_calls = true,
|
||||
vtsls = {
|
||||
enableMoveToFileCodeAction = true,
|
||||
autoUseWorkspaceTsdk = true,
|
||||
experimental = {
|
||||
completion = {
|
||||
enableServerSideFuzzyMatch = true,
|
||||
|
@ -147,8 +158,7 @@ return {
|
|||
command = "node",
|
||||
-- 💀 Make sure to update this path to point to your installation
|
||||
args = {
|
||||
require("mason-registry").get_package("js-debug-adapter"):get_install_path()
|
||||
.. "/js-debug/src/dapDebugServer.js",
|
||||
LazyVim.get_pkg_path("js-debug-adapter", "/js-debug/src/dapDebugServer.js"),
|
||||
"${port}",
|
||||
},
|
||||
},
|
||||
|
|
|
@ -6,6 +6,9 @@ return {
|
|||
})
|
||||
end,
|
||||
|
||||
-- depends on the typescript extra
|
||||
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
||||
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = function(_, opts)
|
||||
|
@ -15,34 +18,30 @@ return {
|
|||
end,
|
||||
},
|
||||
|
||||
-- Add LSP servers
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
servers = {
|
||||
volar = {},
|
||||
vtsls = {},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- Configure tsserver plugin
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = function(_, opts)
|
||||
local vue_typescript_plugin = require("mason-registry").get_package("vue-language-server"):get_install_path()
|
||||
.. "/node_modules/@vue/language-server"
|
||||
.. "/node_modules/@vue/typescript-plugin"
|
||||
|
||||
opts.servers = vim.tbl_deep_extend("force", opts.servers, {
|
||||
volar = {},
|
||||
-- Volar 2.0 has discontinued their "take over mode" which in previous version provided support for typescript in vue files.
|
||||
-- The new approach to get typescript support involves using the typescript language server along side volar.
|
||||
vtsls = {
|
||||
filetypes = {
|
||||
"javascript",
|
||||
"javascriptreact",
|
||||
"javascript.jsx",
|
||||
"typescript",
|
||||
"typescriptreact",
|
||||
"typescript.tsx",
|
||||
"vue",
|
||||
},
|
||||
},
|
||||
})
|
||||
table.insert(opts.servers.vtsls.filetypes, "vue")
|
||||
LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {
|
||||
name = "@vue/typescript-plugin",
|
||||
location = vue_typescript_plugin,
|
||||
languages = { "vue" },
|
||||
configNamespace = "typescript",
|
||||
{
|
||||
name = "@vue/typescript-plugin",
|
||||
location = LazyVim.get_pkg_path("vue-language-server", "/node_modules/@vue/language-server"),
|
||||
languages = { "vue" },
|
||||
configNamespace = "typescript",
|
||||
enableForWorkspaceTypeScriptVersions = true,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue