diff --git a/lua/lspconfig/server_configurations/mdx_analyzer.lua b/lua/lspconfig/server_configurations/mdx_analyzer.lua index d41ba84e5e..1dfbcb5a8b 100644 --- a/lua/lspconfig/server_configurations/mdx_analyzer.lua +++ b/lua/lspconfig/server_configurations/mdx_analyzer.lua @@ -1,5 +1,10 @@ local util = require 'lspconfig.util' +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')) or '' +end + return { default_config = { cmd = { 'mdx-language-server', '--stdio' }, @@ -7,6 +12,14 @@ return { root_dir = util.root_pattern 'package.json', single_file_support = true, settings = {}, + init_options = { + typescript = {}, + }, + on_new_config = function(new_config, new_root_dir) + if vim.tbl_get(new_config.init_options, 'typescript') and not new_config.init_options.typescript.tsdk then + new_config.init_options.typescript.tsdk = get_typescript_server_path(new_root_dir) + end + end, }, commands = {}, docs = {