diff options
Diffstat (limited to 'lua/lspconfig/server_configurations/glint.lua')
| -rw-r--r-- | lua/lspconfig/server_configurations/glint.lua | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/lua/lspconfig/server_configurations/glint.lua b/lua/lspconfig/server_configurations/glint.lua index e915af67..9c131d2f 100644 --- a/lua/lspconfig/server_configurations/glint.lua +++ b/lua/lspconfig/server_configurations/glint.lua @@ -1,15 +1,26 @@ local util = require 'lspconfig.util' local bin_name = 'glint-language-server' +local cmd = { bin_name } --- Glint should not be installed globally. -local path_to_node_modules = util.find_node_modules_ancestor(vim.fn.getcwd()) - -local cmd = { path_to_node_modules .. '/node_modules/.bin/' .. bin_name } +if vim.fn.has 'win32' == 1 then + cmd = { 'cmd.exe', '/C', bin_name } +end return { default_config = { cmd = cmd, + on_new_config = function(config, new_root_dir) + local project_root = util.find_node_modules_ancestor(new_root_dir) + -- Glint should not be installed globally. + local node_bin_path = util.path.join(project_root, 'node_modules', '.bin') + local path = node_bin_path .. util.path.path_separator .. vim.env.PATH + if config.cmd_env then + config.cmd_env.PATH = path + else + config.cmd_env = { PATH = path } + end + end, filetypes = { 'html.handlebars', 'handlebars', @@ -18,7 +29,14 @@ return { 'javascript', 'javascript.glimmer', }, - root_dir = util.root_pattern '.glintrc.yml', + root_dir = util.root_pattern( + '.glintrc.yml', + '.glintrc', + '.glintrc.json', + '.glintrc.js', + 'glint.config.js', + 'package.json' + ), }, docs = { description = [[ |
