Ayaz Hafiz 55979fe0ae feat(language-service): TS references from template items (#37437)
Keen and I were talking about what it would take to support getting
references at a position in the current language service, since it's
unclear when more investment in the Ivy LS will be available. Getting TS
references from a template is trivial -- we simply need to get the
definition of a symbol, which is already handled by the language
service, and ask the TS language service to give us the references for
that definition.

This doesn't handle references in templates, but that could be done in a
subsequent pass.

Part of https://github.com/angular/vscode-ng-language-service/issues/29

PR Close #37437
2020-06-08 17:23:49 -07:00

136 lines
3.1 KiB
Python

load("//tools:defaults.bzl", "jasmine_node_test", "ts_library")
load("//tools/circular_dependency_test:index.bzl", "circular_dependency_test")
circular_dependency_test(
name = "circular_deps_test",
entry_point = "angular/packages/language-service/index.js",
deps = ["//packages/language-service"],
)
ts_library(
name = "test_utils_lib",
testonly = True,
srcs = [
"test_utils.ts",
],
deps = [
"//packages/compiler",
"//packages/compiler-cli/test:test_utils",
"//packages/language-service",
"@npm//typescript",
],
)
ts_library(
name = "features_test_lib",
testonly = True,
srcs = [
"completions_spec.ts",
"definitions_spec.ts",
"diagnostics_spec.ts",
"hover_spec.ts",
"references_spec.ts",
],
data = [":project"],
deps = [
":test_utils_lib",
"//packages/language-service",
"@npm//typescript",
],
)
ts_library(
name = "infra_test_lib",
testonly = True,
srcs = [
"diagnostic_messages_spec.ts",
"global_symbols_spec.ts",
"html_info_spec.ts",
"language_service_spec.ts",
"reflector_host_spec.ts",
"ts_plugin_spec.ts",
"typescript_host_spec.ts",
"utils_spec.ts",
],
data = [":project"],
deps = [
":test_utils_lib",
"//packages/compiler",
"//packages/language-service",
"//packages/language-service:ts_utils",
"@npm//typescript",
],
)
filegroup(
name = "project",
srcs = glob(["project/**/*"]),
visibility = ["//packages/language-service:__subpackages__"],
)
jasmine_node_test(
name = "test",
data = [
"//packages/common:npm_package",
"//packages/core:npm_package",
"//packages/forms:npm_package",
],
tags = [
# the language service is not yet compatible with Ivy
"no-ivy-aot",
],
deps = [
":features_test_lib",
],
)
jasmine_node_test(
name = "infra_test",
data = [
"//packages/common:npm_package",
"//packages/core:npm_package",
"//packages/forms:npm_package",
],
tags = [
# the language service is not yet compatible with Ivy
"no-ivy-aot",
],
deps = [
":infra_test_lib",
],
)
ts_library(
name = "diagnostics_lib",
testonly = True,
srcs = [
"expression_diagnostics_spec.ts",
"mocks.ts",
"typescript_symbols_spec.ts",
],
deps = [
"//packages/compiler",
"//packages/compiler-cli/test:test_utils",
"//packages/core",
"//packages/language-service",
"@npm//typescript",
],
)
jasmine_node_test(
name = "diagnostics",
data = [
"//packages/common:npm_package",
"//packages/core:npm_package",
"//packages/forms:npm_package",
],
tags = [
# Disabled as these tests pertain to diagnostics in the old ngc compiler. The Ivy ngtsc
# compiler has its own tests for diagnostics.
"no-ivy-aot",
],
deps = [
":diagnostics_lib",
],
)