From 8af8493da6cf25c89dc2c62483ce5b80c7962ffb Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Tue, 18 Jun 2024 20:16:03 +0200 Subject: [PATCH] typescript: Make VTSLS the default language server for Typescript (#13140) Additionally, limit # of returned completion items + use fuzzy filtering on VTSLS side. Prime LSP handler for response handling. Release Notes: - VTSLS is now a default language server for TypeScript, TSX, and JavaScript. --- assets/settings/default.json | 15 ++++++++--- crates/languages/src/vtsls.rs | 49 ++++++++++++++++++++++++++++++++++- 2 files changed, 59 insertions(+), 5 deletions(-) diff --git a/assets/settings/default.json b/assets/settings/default.json index 10624aa0c13fe2ed9b148bad70302b81b185b582..709b418b9844fe33637da24187f9d1347b684194 100644 --- a/assets/settings/default.json +++ b/assets/settings/default.json @@ -131,7 +131,14 @@ // The default number of lines to expand excerpts in the multibuffer by. "expand_excerpt_lines": 3, // Globs to match against file paths to determine if a file is private. - "private_files": ["**/.env*", "**/*.pem", "**/*.key", "**/*.cert", "**/*.crt", "**/secrets.yml"], + "private_files": [ + "**/.env*", + "**/*.pem", + "**/*.key", + "**/*.cert", + "**/*.crt", + "**/secrets.yml" + ], // Whether to use additional LSP queries to format (and amend) the code after // every "trigger" symbol input, defined by LSP server capabilities. "use_on_type_format": true, @@ -722,7 +729,7 @@ } }, "JavaScript": { - "language_servers": ["typescript-language-server", "!vtsls", "..."], + "language_servers": ["!typescript-language-server", "vtsls", "..."], "prettier": { "allowed": true } @@ -765,7 +772,7 @@ } }, "TSX": { - "language_servers": ["typescript-language-server", "!vtsls", "..."], + "language_servers": ["!typescript-language-server", "vtsls", "..."], "prettier": { "allowed": true } @@ -776,7 +783,7 @@ } }, "TypeScript": { - "language_servers": ["typescript-language-server", "!vtsls", "..."], + "language_servers": ["!typescript-language-server", "vtsls", "..."], "prettier": { "allowed": true } diff --git a/crates/languages/src/vtsls.rs b/crates/languages/src/vtsls.rs index cccbccfdbb462ce1cdd0bc4e49b9f66280e4bdcd..8cf3fda7b041490908152266da2bc21e12b553f1 100644 --- a/crates/languages/src/vtsls.rs +++ b/crates/languages/src/vtsls.rs @@ -174,8 +174,8 @@ impl LspAdapter for VtslsLspAdapter { "enabled": "all", "suppressWhenArgumentMatchesName": false, - } }, + "parameterTypes": { "enabled": true @@ -193,6 +193,15 @@ impl LspAdapter for VtslsLspAdapter { "enumMemberValues":{ "enabled": true, } + } + }, + "vtsls": + {"experimental": { + "completion": { + "enableServerSideFuzzyMatch": true, + "entriesLimit": 5000, + } + } } }))) } @@ -206,8 +215,46 @@ impl LspAdapter for VtslsLspAdapter { "typescript": { "suggest": { "completeFunctionCalls": true + }, + "tsdk": "node_modules/typescript/lib", + "format": { + "enable": true + }, + "inlayHints":{ + "parameterNames": + { + "enabled": "all", + "suppressWhenArgumentMatchesName": false, + + }, + + "parameterTypes": + { + "enabled": true + }, + "variableTypes": { + "enabled": true, + "suppressWhenTypeMatchesName": false, + }, + "propertyDeclarationTypes":{ + "enabled": true, + }, + "functionLikeReturnTypes": { + "enabled": true, + }, + "enumMemberValues":{ + "enabled": true, + } + } + }, + "vtsls": + {"experimental": { + "completion": { + "enableServerSideFuzzyMatch": true, + "entriesLimit": 5000, } } + } })) }