mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-06 16:08:05 +00:00
vtsls has no workspace/willRenameFiles: after didRenameFiles it updates imports itself, behind a prompt sent as window/showMessageRequest. The IDE shows that request as a message without choices, so moving a TypeScript or JavaScript file never updated the imports of the files that use it. For a tsserver-backed server without willRename filters, the IDE now asks tsserver for the edits up front (getEditsForFileRename through typescript.tsserverRequest). The edits join the move's preview and undo like any server's. The server's own update is turned off (updateImportsOnFileMove.enabled = "never"), so it no longer prompts.
73 lines
2.6 KiB
TOML
73 lines
2.6 KiB
TOML
id = "typescript"
|
|
name = "TypeScript"
|
|
formatter = { tool = "prettier", parser = "typescript", range = true }
|
|
extensions = ["ts", "mts", "cts"]
|
|
line-comment = "//"
|
|
block-comment = ["/*", "*/"]
|
|
indent = { tab-size = 2, insert-spaces = true }
|
|
ui-mode = "TypeScript"
|
|
tree-sitter = "typescript"
|
|
|
|
[[language-servers]]
|
|
name = "vtsls"
|
|
tsserver-project = true
|
|
command = "vtsls"
|
|
args = ["--stdio"]
|
|
root-markers = ["tsconfig.json", "jsconfig.json", "package.json"]
|
|
install-hint = "npm i -g @vtsls/language-server"
|
|
|
|
# Rename renames the symbol everywhere: no `import { a as b }` alias in the file renamed from.
|
|
[language-servers.initialization-options.typescript.preferences]
|
|
useAliasesForRenames = false
|
|
|
|
[language-servers.initialization-options.javascript.preferences]
|
|
useAliasesForRenames = false
|
|
|
|
# Moving a file: the IDE asks for the import updates up front (preview, undo); the server
|
|
# doesn't prompt after the move.
|
|
[language-servers.initialization-options.typescript.updateImportsOnFileMove]
|
|
enabled = "never"
|
|
|
|
[language-servers.initialization-options.javascript.updateImportsOnFileMove]
|
|
enabled = "never"
|
|
|
|
[[language-servers]]
|
|
name = "typescript-language-server"
|
|
tsserver-project = true
|
|
# Alternative: used only when the server above is not installed.
|
|
fallback = true
|
|
command = "typescript-language-server"
|
|
args = ["--stdio"]
|
|
root-markers = ["tsconfig.json", "jsconfig.json", "package.json"]
|
|
install-hint = "npm i -g typescript@6 typescript-language-server"
|
|
|
|
# Rename renames the symbol everywhere: no `import { a as b }` alias in the file renamed from.
|
|
[language-servers.initialization-options.preferences]
|
|
providePrefixAndSuffixTextForRename = false
|
|
|
|
# Angular projects only: templates inline in components (`template: ...`),
|
|
# and their usages and renames in templates. Last: TypeScript's own hover,
|
|
# definition and symbols come first.
|
|
[[language-servers]]
|
|
name = "angular-language-server"
|
|
command = "ngserver"
|
|
args = ["--stdio", "--includeCompletionsWithSnippetText", "--includeAutomaticOptionalChainCompletions"]
|
|
root-markers = ["angular.json", "node_modules/@angular/core"]
|
|
require-root-marker = true
|
|
install-hint = "npm i -g @angular/language-server"
|
|
|
|
[[language-servers]]
|
|
name = "oxlint"
|
|
command = "oxlint"
|
|
args = ["--lsp"]
|
|
root-markers = [".oxlintrc.json", ".oxlintrc.jsonc", "oxlint.config.ts", "oxlint.config.mts"]
|
|
require-root-marker = true
|
|
install-hint = "npm i -D oxlint"
|
|
|
|
[debugger]
|
|
adapter = "js-debug"
|
|
command = "js-debug-adapter"
|
|
args = ["${port}", "127.0.0.1"]
|
|
transport = "tcp"
|
|
install-hint = "Install vscode-js-debug's DAP server (js-debug-dap-*.tar.gz from https://github.com/microsoft/vscode-js-debug/releases) as `js-debug-adapter`"
|