Skip to content

Commit ad279ef

Browse files
alan-agius4AndrewKushnir
authored andcommitted
build: use @angular/language-service from source (angular#64306)
This commit updates the VSCode Angular Language Service extension to use the `@angular/language-service` package built from source within the workspace, rather than a version downloaded from npm. This change simplifies development and testing by ensuring the extension always uses the latest code from the local repository. The Bazel build configuration, VSCode launch settings, and e2e tests have been updated to reflect this change. PR Close angular#64306
1 parent 461eeda commit ad279ef

File tree

9 files changed

+40
-41
lines changed

9 files changed

+40
-41
lines changed

.vscode/launch.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"runtimeExecutable": "${execPath}",
2121
"args": [
2222
"--disable-extensions",
23-
"--extensionDevelopmentPath=${workspaceFolder}/dist/bin/vscode-ng-language-service/npm/vscode-ng-language-service/vsix_sandbox"
23+
"--extensionDevelopmentPath=${workspaceFolder}/dist/bin/vscode-ng-language-service/development_package"
2424
],
2525
"preLaunchTask": "VSCE: package"
2626
},

pnpm-lock.yaml

Lines changed: 10 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vscode-ng-language-service/BUILD.bazel

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ expand_template_rule(
2323
name = "package_json_expanded",
2424
out = "package_expanded.json",
2525
stamp_substitutions = {
26-
"0.0.0-PLACEHOLDER": "{{BUILD_SCM_VERSION}}",
26+
"workspace:*": "{{STABLE_PROJECT_VERSION}}",
2727
},
2828
substitutions = {
29+
"workspace:*": "0.0.0",
2930
"../dist/bin/vscode-ng-language-service/client/src/extension.js": "./index",
3031
},
3132
template = "package.json",
@@ -34,12 +35,12 @@ expand_template_rule(
3435
npm_package(
3536
name = "vsix_sandbox",
3637
srcs = [
37-
"package_expanded.json",
38-
"angular.png",
3938
"CHANGELOG.md",
4039
"README.md",
40+
"angular.png",
41+
"package_expanded.json",
4142
"//vscode-ng-language-service/client:index.js",
42-
"//vscode-ng-language-service/server:npm_files",
43+
"//vscode-ng-language-service/server:npm_package",
4344
"//vscode-ng-language-service/syntaxes:npm_files",
4445
# Transitive closure of npm deps that are marked as "external" in esbuild needed for vsce;
4546
# this set was determined manually by running `bazel build //:vsix` and burning down missing packages.
@@ -56,7 +57,7 @@ npm_package(
5657
],
5758
replace_prefixes = {
5859
"package_expanded.json": "package.json",
59-
"server/package_expanded.json": "server/package.json",
60+
"server/npm_package/": "server/",
6061
"client/": "",
6162
"syntaxes/src/": "syntaxes/",
6263
},
@@ -82,16 +83,14 @@ vsce_bin.vsce(
8283
)
8384

8485
npm_package(
85-
name = "npm",
86+
name = "development_package",
8687
srcs = [
8788
":vsix",
8889
":vsix_sandbox",
8990
],
90-
data = [
91-
"//vscode-ng-language-service:node_modules/@angular/language-service",
92-
],
9391
root_paths = [
94-
"vsix_sandbox",
92+
"vscode-ng-language-service/vsix_sandbox",
93+
"vscode-ng-language-service",
9594
],
96-
visibility = ["//vscode-ng-language-service/integration:__subpackages__"],
95+
visibility = ["//vscode-ng-language-service/integration/e2e:__subpackages__"],
9796
)

vscode-ng-language-service/common/resolver.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ export class Version {
7070
}
7171

7272
isVersionZero() {
73-
return this.versionStr === '0.0.0';
73+
// Handle both `0.0.0`, `0.0.0-PLACEHOLDER` and similar
74+
return this.major === 0 && this.minor === 0 && this.patch === 0;
7475
}
7576

7677
toString(): string {

vscode-ng-language-service/integration/e2e/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ js_test(
3030
name = "test",
3131
data = [
3232
":e2e",
33-
"//vscode-ng-language-service:npm",
33+
"//vscode-ng-language-service:development_package",
3434
],
3535
entry_point = ":index.js",
3636
env = {

vscode-ng-language-service/integration/e2e/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {mkdtemp} from 'node:fs/promises';
99
import Xvfb from 'xvfb';
1010

1111
async function main() {
12-
const EXT_DEVELOPMENT_PATH = join(PACKAGE_ROOT, 'npm/vscode-ng-language-service/vsix_sandbox');
12+
const EXT_DEVELOPMENT_PATH = join(PACKAGE_ROOT, 'development_package');
1313
const EXT_TESTS_PATH = join(PACKAGE_ROOT, 'integration', 'e2e', 'jasmine');
1414
const xvfb = new Xvfb();
1515

vscode-ng-language-service/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"name": "ng-template",
33
"displayName": "Angular Language Service",
44
"description": "Editor services for Angular templates",
5-
"version": "20.2.2",
5+
"version": "0.0.0",
6+
"private": true,
67
"publisher": "Angular",
78
"icon": "angular.png",
89
"license": "MIT",
@@ -246,7 +247,7 @@
246247
"scripts": {
247248
"build:syntaxes": "bazel run //vscode-ng-language-service/syntaxes:syntaxes",
248249
"watch": "ibazel build //vscode-ng-language-service/client/src //vscode-ng-language-service/server/src",
249-
"package": "bazel build //vscode-ng-language-service:npm --config=release",
250+
"package": "bazel build //vscode-ng-language-service:development_package --config=release",
250251
"test": "bazel test --test_tag_filters=unit_test //vscode-ng-language-service/...",
251252
"test:watch": "ibazel test --test_tag_filters=unit_test //vscode-ng-language-service/...",
252253
"test:lsp": "bazel test --test_output=streamed //vscode-ng-language-service/integration/lsp:test",
@@ -257,10 +258,9 @@
257258
"test:inspect-syntaxes": "bazel run --config=debug //vscode-ng-language-service/syntaxes/test:test"
258259
},
259260
"dependencies": {
260-
"@angular/language-service": "21.0.0-next.7"
261+
"@angular/language-service": "workspace:*"
261262
},
262263
"devDependencies": {
263-
"@angular/core": "21.0.0-next.7",
264264
"@types/jasmine": "~5.1.9",
265265
"@types/jasmine-reporters": "~2.5.3",
266266
"@types/node": "^24.5.2",

vscode-ng-language-service/server/BUILD.bazel

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
load("@aspect_bazel_lib//lib:expand_template.bzl", "expand_template_rule")
22
load("@aspect_rules_esbuild//esbuild:defs.bzl", "esbuild")
3+
load("@aspect_rules_js//npm:defs.bzl", "npm_package")
34
load("@aspect_rules_ts//ts:defs.bzl", "ts_config")
45
load("@npm//:defs.bzl", "npm_link_all_packages")
56

@@ -73,21 +74,27 @@ expand_template_rule(
7374
name = "package_json_expanded",
7475
out = "package_expanded.json",
7576
stamp_substitutions = {
76-
"0.0.0-PLACEHOLDER": "{{BUILD_SCM_VERSION}}",
77+
"0.0.0-PLACEHOLDER": "{{STABLE_PROJECT_VERSION}}",
78+
"workspace:*": "{{STABLE_PROJECT_VERSION}}",
7779
},
7880
substitutions = {
81+
"0.0.0-PLACEHOLDER": "0.0.0",
82+
"workspace:*": "0.0.0",
7983
"../../dist/bin/vscode-ng-language-service/server/src/server.js": "./index.js",
8084
},
8185
template = "package.json",
8286
)
8387

84-
filegroup(
85-
name = "npm_files",
88+
npm_package(
89+
name = "npm_package",
8690
srcs = [
8791
"README.md",
8892
"bin/ngserver",
8993
"index.js",
9094
"package_expanded.json",
9195
],
96+
replace_prefixes = {
97+
"package_expanded.json": "package.json",
98+
},
9299
visibility = ["//vscode-ng-language-service:__pkg__"],
93100
)

vscode-ng-language-service/server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"ngserver": "./bin/ngserver"
1818
},
1919
"dependencies": {
20-
"@angular/language-service": "21.0.0-next.7",
20+
"@angular/language-service": "workspace:*",
2121
"typescript": "5.9.3"
2222
},
2323
"devDependencies": {

0 commit comments

Comments
 (0)