mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-09-07 02:41:33 +00:00
lsp: add vstls LSP with vue support
This commit is contained in:
parent
e35a74c44a
commit
4b7357166d
2 changed files with 54 additions and 3 deletions
|
@ -52,6 +52,57 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# vtsls language server, including Vue support
|
||||||
|
# https://github.com/yioneko/vtsls
|
||||||
|
# https://github.com/vuejs/language-tools/wiki/Neovim
|
||||||
|
vtsls = {
|
||||||
|
package = pkgs.vtsls;
|
||||||
|
lspConfig =
|
||||||
|
# lua
|
||||||
|
''
|
||||||
|
local vue_language_server_path = '${pkgs.vue-language-server + "/lib/node_modules/@vue/language-server"}'
|
||||||
|
local vue_plugin = {
|
||||||
|
name = '@vue/typescript-plugin',
|
||||||
|
location = vue_language_server_path,
|
||||||
|
languages = { 'vue' },
|
||||||
|
configNamespace = 'typescript',
|
||||||
|
}
|
||||||
|
|
||||||
|
--- lsconfig method doesn't work in nvf, it says
|
||||||
|
--- it cannot find vue_ls or vtsls config.md
|
||||||
|
--- Using it this way means they're always enabled configs
|
||||||
|
vim.lsp.config("vtsls", {
|
||||||
|
capabilities = capabilities,
|
||||||
|
on_attach = function(client, bufnr)
|
||||||
|
attach_keymaps(client, bufnr);
|
||||||
|
-- TODO: do we need to disable formatting for this LS?
|
||||||
|
client.server_capabilities.documentFormattingProvider = false;
|
||||||
|
end,
|
||||||
|
filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue' },
|
||||||
|
settings = {
|
||||||
|
vtsls = {
|
||||||
|
tsserver = {
|
||||||
|
globalPlugins = {
|
||||||
|
vue_plugin,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cmd = ${
|
||||||
|
if isList cfg.lsp.package
|
||||||
|
then expToLua cfg.lsp.package
|
||||||
|
else ''{"${cfg.lsp.package}/bin/vtsls", "--stdio"}''
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.lsp.config('vue_ls', {
|
||||||
|
cmd = {"${getExe pkgs.vue-language-server}", "--stdio"}
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.lsp.enable({'vtsls', 'vue_ls'})
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
# Here for backwards compatibility. Still consider tsserver a valid
|
# Here for backwards compatibility. Still consider tsserver a valid
|
||||||
# configuration in the enum, but assert if it's set to *properly*
|
# configuration in the enum, but assert if it's set to *properly*
|
||||||
# redirect the user to the correct server.
|
# redirect the user to the correct server.
|
||||||
|
|
|
@ -1860,9 +1860,9 @@
|
||||||
},
|
},
|
||||||
"branch": "master",
|
"branch": "master",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "4d3b3bb8815fbe37bcaf3dbdb12a22382bc11ebe",
|
"revision": "3db16ceeea947517f0dc1404c24dcb5ab0c91d26",
|
||||||
"url": "https://github.com/neovim/nvim-lspconfig/archive/4d3b3bb8815fbe37bcaf3dbdb12a22382bc11ebe.tar.gz",
|
"url": "https://github.com/neovim/nvim-lspconfig/archive/3db16ceeea947517f0dc1404c24dcb5ab0c91d26.tar.gz",
|
||||||
"hash": "1lssglccyxlzkypklr4cwz20zik0qwnv514hp06722vcrxs32pzw"
|
"hash": "0gam1rxqkxksayblhj1i7jkh4sqjp6lpvyb1psmrhkryj6967ir2"
|
||||||
},
|
},
|
||||||
"nvim-metals": {
|
"nvim-metals": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue