diff options
Diffstat (limited to 'lua/lspconfig/util.lua')
| -rw-r--r-- | lua/lspconfig/util.lua | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/lua/lspconfig/util.lua b/lua/lspconfig/util.lua index 698cd2d9..ae2b1ada 100644 --- a/lua/lspconfig/util.lua +++ b/lua/lspconfig/util.lua @@ -4,6 +4,8 @@ local api = vim.api local lsp = vim.lsp local uv = vim.loop +local is_windows = uv.os_uname().sysname == 'Windows_NT' + local M = {} M.default_config = { @@ -94,8 +96,6 @@ end -- Some path utilities M.path = (function() - local is_windows = uv.os_uname().version:match 'Windows' - local function escape_wildcards(path) return path:gsub('([%[%]%?%*])', '\\%1') end @@ -487,6 +487,21 @@ function M.find_package_json_ancestor(startpath) end) end +function M.insert_package_json(config_files, field) + local root_with_package = M.find_package_json_ancestor(vim.fn.expand '%:p:h') + + if root_with_package then + -- only add package.json if it contains field parameter + local path_sep = is_windows and '\\' or '/' + for line in io.lines(root_with_package .. path_sep .. 'package.json') do + if line:find(field) then + return table.insert(config_files, 'package.json') + end + end + end + return config_files +end + function M.get_active_clients_list_by_ft(filetype) local clients = vim.lsp.get_active_clients() local clients_list = {} |
