mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-03 16:10:05 +08:00
51 lines
1.4 KiB
Lua
Vendored
51 lines
1.4 KiB
Lua
Vendored
local util = require 'lspconfig.util'
|
|
|
|
local bin_name = 'astro-ls'
|
|
local cmd = { bin_name, '--stdio' }
|
|
|
|
if vim.fn.has 'win32' == 1 then
|
|
cmd = { 'cmd.exe', '/C', bin_name, '--stdio' }
|
|
end
|
|
|
|
local function get_typescript_server_path(root_dir)
|
|
local project_root = util.find_node_modules_ancestor(root_dir)
|
|
return project_root and (util.path.join(project_root, 'node_modules', 'typescript', 'lib', 'tsserverlibrary.js'))
|
|
or ''
|
|
end
|
|
|
|
return {
|
|
default_config = {
|
|
cmd = cmd,
|
|
filetypes = { 'astro' },
|
|
root_dir = util.root_pattern('package.json', 'tsconfig.json', 'jsconfig.json', '.git'),
|
|
init_options = {
|
|
typescript = {
|
|
serverPath = '',
|
|
},
|
|
configuration = {},
|
|
},
|
|
on_new_config = function(new_config, new_root_dir)
|
|
if
|
|
new_config.init_options
|
|
and new_config.init_options.typescript
|
|
and new_config.init_options.typescript.serverPath == ''
|
|
then
|
|
new_config.init_options.typescript.serverPath = get_typescript_server_path(new_root_dir)
|
|
end
|
|
end,
|
|
},
|
|
docs = {
|
|
description = [[
|
|
https://github.com/withastro/language-tools/tree/main/packages/language-server
|
|
|
|
`astro-ls` can be installed via `npm`:
|
|
```sh
|
|
npm install -g @astrojs/language-server
|
|
```
|
|
]],
|
|
default_config = {
|
|
root_dir = [[root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git")]],
|
|
},
|
|
},
|
|
}
|