Skip to content

feat: add LSP support for TypeScript/JavaScript via vtsls (desktop only)#2981

Merged
abose merged 24 commits into
mainfrom
ai
Jun 19, 2026
Merged

feat: add LSP support for TypeScript/JavaScript via vtsls (desktop only)#2981
abose merged 24 commits into
mainfrom
ai

test: add hover quick-action integration tests (Go to Definition / Fi…

a940ee9
Select commit
Loading
Failed to load commit list.
SonarQubeCloud / SonarCloud Code Analysis failed Jun 19, 2026 in 45s

Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Annotations

Check failure on line 336 in src/languageTools/DefaultProviders.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Unexpected var, use let or const instead.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKGlBmZ1wgeS0GY&open=AZ7ZUuKGlBmZ1wgeS0GY&pullRequest=2981

Check warning on line 435 in src/languageTools/LSPClient.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer using an optional chain expression instead, as it's more concise and easier to read.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKnlBmZ1wgeS0HF&open=AZ7ZUuKnlBmZ1wgeS0HF&pullRequest=2981

Check warning on line 69 in src/languageTools/DocumentSync.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer using an optional chain expression instead, as it's more concise and easier to read.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuJllBmZ1wgeS0F1&open=AZ7ZUuJllBmZ1wgeS0F1&pullRequest=2981

Check warning on line 95 in src/languageTools/LSPClient.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Move function '_toVirtualPath' to the outer scope.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKnlBmZ1wgeS0G0&open=AZ7ZUuKnlBmZ1wgeS0G0&pullRequest=2981

Check warning on line 51 in src/languageTools/DocumentSync.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer using an optional chain expression instead, as it's more concise and easier to read.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuJllBmZ1wgeS0Fw&open=AZ7ZUuJllBmZ1wgeS0Fw&pullRequest=2981

Check warning on line 196 in src/languageTools/DefaultProviders.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Use `.includes()`, rather than `.indexOf()`, when checking for existence.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKGlBmZ1wgeS0GP&open=AZ7ZUuKGlBmZ1wgeS0GP&pullRequest=2981

Check warning on line 165 in src/extensions/default/TypeScriptSupport/main.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Use `.includes()`, rather than `.indexOf()`, when checking for existence.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7bZeCbErf5Gt1K6v9i&open=AZ7bZeCbErf5Gt1K6v9i&pullRequest=2981

Check warning on line 77 in src/languageTools/HoverProvider.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer using an optional chain expression instead, as it's more concise and easier to read.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7b0sG1cO69wzd-_D7j&open=AZ7b0sG1cO69wzd-_D7j&pullRequest=2981

Check failure on line 544 in src/editor/CodeHintList.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Unexpected var, use let or const instead.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuLKlBmZ1wgeS0Hu&open=AZ7ZUuLKlBmZ1wgeS0Hu&pullRequest=2981

Check failure on line 218 in src/languageTools/DefaultProviders.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Unexpected var, use let or const instead.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKGlBmZ1wgeS0GQ&open=AZ7ZUuKGlBmZ1wgeS0GQ&pullRequest=2981

Check failure on line 546 in src/editor/CodeHintList.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Unexpected var, use let or const instead.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuLKlBmZ1wgeS0Hv&open=AZ7ZUuLKlBmZ1wgeS0Hv&pullRequest=2981

Check warning on line 91 in src/languageTools/HoverProvider.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer using an optional chain expression instead, as it's more concise and easier to read.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKelBmZ1wgeS0Gn&open=AZ7ZUuKelBmZ1wgeS0Gn&pullRequest=2981

Check warning on line 533 in src/languageTools/LSPClient.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer using an optional chain expression instead, as it's more concise and easier to read.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKnlBmZ1wgeS0HJ&open=AZ7ZUuKnlBmZ1wgeS0HJ&pullRequest=2981

Check failure on line 468 in src/languageTools/LSPClient.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Do not assign `this` to `self`.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKnlBmZ1wgeS0HH&open=AZ7ZUuKnlBmZ1wgeS0HH&pullRequest=2981

Check failure on line 223 in src/editor/TabstopManager.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Unexpected var, use let or const instead.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKvlBmZ1wgeS0Hk&open=AZ7ZUuKvlBmZ1wgeS0Hk&pullRequest=2981

Check failure on line 362 in src/languageTools/LSPClient.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this code to not nest functions more than 4 levels deep.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKnlBmZ1wgeS0HC&open=AZ7ZUuKnlBmZ1wgeS0HC&pullRequest=2981

Check failure on line 212 in src/editor/TabstopManager.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Unexpected var, use let or const instead.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKvlBmZ1wgeS0Hj&open=AZ7ZUuKvlBmZ1wgeS0Hj&pullRequest=2981

Check warning on line 339 in src/languageTools/DefaultProviders.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer using an optional chain expression instead, as it's more concise and easier to read.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKGlBmZ1wgeS0GZ&open=AZ7ZUuKGlBmZ1wgeS0GZ&pullRequest=2981

Check warning on line 199 in src/languageTools/HoverProvider.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Expected the Promise rejection reason to be an Error.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKelBmZ1wgeS0Gu&open=AZ7ZUuKelBmZ1wgeS0Gu&pullRequest=2981

Check warning on line 43 in src/languageTools/HoverProvider.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Move function '_contentsToMarkdown' to the outer scope.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKelBmZ1wgeS0Gm&open=AZ7ZUuKelBmZ1wgeS0Gm&pullRequest=2981

Check failure on line 197 in src/editor/TabstopManager.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Unexpected var, use let or const instead.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKvlBmZ1wgeS0Hi&open=AZ7ZUuKvlBmZ1wgeS0Hi&pullRequest=2981

Check warning on line 102 in src/languageTools/DefaultProviders.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer `globalThis` over `window`.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKGlBmZ1wgeS0GG&open=AZ7ZUuKGlBmZ1wgeS0GG&pullRequest=2981

Check failure on line 332 in src/languageTools/DefaultProviders.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Unexpected var, use let or const instead.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKGlBmZ1wgeS0GX&open=AZ7ZUuKGlBmZ1wgeS0GX&pullRequest=2981

Check failure on line 412 in src/languageTools/LSPClient.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Do not assign `this` to `self`.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7ZUuKnlBmZ1wgeS0HE&open=AZ7ZUuKnlBmZ1wgeS0HE&pullRequest=2981

Check warning on line 156 in src/extensions/default/TypeScriptSupport/unittests.js

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Prefer using an optional chain expression instead, as it's more concise and easier to read.

See more on https://sonarcloud.io/project/issues?id=phcode-dev_phoenix&issues=AZ7b0sBkcO69wzd-_D7c&open=AZ7b0sBkcO69wzd-_D7c&pullRequest=2981