@glint/ember-tsc 1.7.3 → 1.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -63,10 +63,34 @@ function findComponentAtOffset(transformedModule, offset) {
63
63
  return null; // plain element
64
64
  }
65
65
  const elementStart = span.originalStart + elementNode.originalRange.start;
66
+ const elementEnd = span.originalStart + elementNode.originalRange.end;
66
67
  const source = span.originalFile.contents;
67
- const tagNameIdx = source.indexOf(tagName, elementStart);
68
- const tagStart = tagNameIdx >= 0 ? tagNameIdx : elementStart;
68
+ const openIdx = source.indexOf(tagName, elementStart);
69
+ const tagStart = openIdx >= 0 ? openIdx : elementStart;
69
70
  const tagEnd = tagStart + tagName.length;
71
+ // Also look for the closing tag (`</Foo>`) so hover works there too. The
72
+ // search is bounded by `elementEnd`; `lastIndexOf` returns -1 for a
73
+ // self-closing element (which has no `</Foo>`) or any index <= `tagStart`
74
+ // we treat as "no closing tag" so the closing-tag check is a no-op.
75
+ const closeMarker = `</${tagName}`;
76
+ const closeMarkerIdx = source.lastIndexOf(closeMarker, elementEnd);
77
+ const closeStart = closeMarkerIdx > tagStart ? closeMarkerIdx + 2 : -1;
78
+ const closeEnd = closeStart >= 0 ? closeStart + tagName.length : -1;
79
+ // Only contribute a component-signature hover when the cursor is on the
80
+ // tag name itself (opening OR closing). Without this gate the plugin
81
+ // returns a hit for any offset inside the element's source range (args,
82
+ // attributes, content), and the language client concatenates the
83
+ // synthesized `interface XSignature { ... }` block with the TS hover for
84
+ // whatever symbol the user is actually pointing at (e.g. `@size`),
85
+ // producing a confusing two-part tooltip.
86
+ const onOpen = offset >= tagStart && offset < tagEnd;
87
+ const onClose = closeStart >= 0 && offset >= closeStart && offset < closeEnd;
88
+ if (!onOpen && !onClose) {
89
+ return null;
90
+ }
91
+ if (onClose) {
92
+ return { tagName, tagStart: closeStart, tagEnd: closeEnd };
93
+ }
70
94
  return { tagName, tagStart, tagEnd };
71
95
  }
72
96
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"g-component-hover.js","sourceRoot":"","sources":["../../src/plugins/g-component-hover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"g-component-hover.js","sourceRoot":"","sources":["../../src/plugins/g-component-hover.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tagged-strings.d.ts","sourceRoot":"","sources":["../../../../src/transform/template/inlining/tagged-strings.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAIlB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAU,KAAK,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAoB,UAAU,EAAkB,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAA4C,MAAM,YAAY,CAAC;AAE7F,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,KAAK,EACT,IAAI,EAAE,EAAE,CAAC,wBAAwB,EACjC,IAAI,EAAE,iBAAiB,GAAG,SAAS,EACnC,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,gBAAgB,GAC5B,qBAAqB,CA0GvB"}
1
+ {"version":3,"file":"tagged-strings.d.ts","sourceRoot":"","sources":["../../../../src/transform/template/inlining/tagged-strings.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAIlB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAU,KAAK,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAoB,UAAU,EAAkB,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAA4C,MAAM,YAAY,CAAC;AAE7F,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,KAAK,EACT,IAAI,EAAE,EAAE,CAAC,wBAAwB,EACjC,IAAI,EAAE,iBAAiB,GAAG,SAAS,EACnC,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,gBAAgB,GAC5B,qBAAqB,CAsHvB"}
@@ -14,7 +14,19 @@ export function calculateTaggedTemplateSpans(ts, node, meta, script, environment
14
14
  if (info) {
15
15
  assert(ts.isNoSubstitutionTemplateLiteral(node.template), 'No interpolated values in template strings');
16
16
  let { typesModule, globals } = info.tagConfig;
17
- let template = node.template.rawText ?? node.template.text;
17
+ // Use the cooked text (`text`) rather than `rawText`. For .gts files, the
18
+ // gts preprocessor (see `environment-ember-template-imports/-private/
19
+ // environment/preprocess.ts`) escapes backticks and `${{` sequences inside
20
+ // template content so the wrapped chunk parses as a valid JS template
21
+ // literal. `rawText` preserves those backslash-escapes as literal
22
+ // characters, which inflates the template length by 1 per escape and
23
+ // shifts every downstream source-map offset by the same amount (manifests
24
+ // as hover/go-to-definition spans landing past the start of any identifier
25
+ // that follows an escaped backtick or `${{` in the same template, e.g.
26
+ // hyphenated keywords used after backtick-quoted text in a comment). The
27
+ // cooked `text` reverses those escapes, restoring 1:1 correspondence with
28
+ // the original source.
29
+ let template = node.template.text;
18
30
  // environment-specific transforms may emit templateLocation in meta, in
19
31
  // which case we use that. Otherwise we use the reported location from the
20
32
  // node itself (which is presumably correct because no transform has messed
@@ -1 +1 @@
1
- {"version":3,"file":"tagged-strings.js","sourceRoot":"","sources":["../../../../src/transform/template/inlining/tagged-strings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tagged-strings.js","sourceRoot":"","sources":["../../../../src/transform/template/inlining/tagged-strings.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glint/ember-tsc",
3
- "version": "1.7.3",
3
+ "version": "1.7.5",
4
4
  "repository": "typed-ember/glint",
5
5
  "description": "A CLI for performing typechecking on Glimmer templates",
6
6
  "license": "MIT",
@@ -93,11 +93,36 @@ function findComponentAtOffset(
93
93
  }
94
94
 
95
95
  const elementStart = span.originalStart + elementNode.originalRange.start;
96
+ const elementEnd = span.originalStart + elementNode.originalRange.end;
96
97
  const source = span.originalFile.contents;
97
- const tagNameIdx = source.indexOf(tagName, elementStart);
98
- const tagStart = tagNameIdx >= 0 ? tagNameIdx : elementStart;
98
+ const openIdx = source.indexOf(tagName, elementStart);
99
+ const tagStart = openIdx >= 0 ? openIdx : elementStart;
99
100
  const tagEnd = tagStart + tagName.length;
100
101
 
102
+ // Also look for the closing tag (`</Foo>`) so hover works there too. The
103
+ // search is bounded by `elementEnd`; `lastIndexOf` returns -1 for a
104
+ // self-closing element (which has no `</Foo>`) or any index <= `tagStart`
105
+ // we treat as "no closing tag" so the closing-tag check is a no-op.
106
+ const closeMarker = `</${tagName}`;
107
+ const closeMarkerIdx = source.lastIndexOf(closeMarker, elementEnd);
108
+ const closeStart = closeMarkerIdx > tagStart ? closeMarkerIdx + 2 : -1;
109
+ const closeEnd = closeStart >= 0 ? closeStart + tagName.length : -1;
110
+
111
+ // Only contribute a component-signature hover when the cursor is on the
112
+ // tag name itself (opening OR closing). Without this gate the plugin
113
+ // returns a hit for any offset inside the element's source range (args,
114
+ // attributes, content), and the language client concatenates the
115
+ // synthesized `interface XSignature { ... }` block with the TS hover for
116
+ // whatever symbol the user is actually pointing at (e.g. `@size`),
117
+ // producing a confusing two-part tooltip.
118
+ const onOpen = offset >= tagStart && offset < tagEnd;
119
+ const onClose = closeStart >= 0 && offset >= closeStart && offset < closeEnd;
120
+ if (!onOpen && !onClose) {
121
+ return null;
122
+ }
123
+ if (onClose) {
124
+ return { tagName, tagStart: closeStart, tagEnd: closeEnd };
125
+ }
101
126
  return { tagName, tagStart, tagEnd };
102
127
  }
103
128
  return null;
@@ -36,7 +36,19 @@ export function calculateTaggedTemplateSpans(
36
36
  );
37
37
 
38
38
  let { typesModule, globals } = info.tagConfig;
39
- let template = node.template.rawText ?? node.template.text;
39
+ // Use the cooked text (`text`) rather than `rawText`. For .gts files, the
40
+ // gts preprocessor (see `environment-ember-template-imports/-private/
41
+ // environment/preprocess.ts`) escapes backticks and `${{` sequences inside
42
+ // template content so the wrapped chunk parses as a valid JS template
43
+ // literal. `rawText` preserves those backslash-escapes as literal
44
+ // characters, which inflates the template length by 1 per escape and
45
+ // shifts every downstream source-map offset by the same amount (manifests
46
+ // as hover/go-to-definition spans landing past the start of any identifier
47
+ // that follows an escaped backtick or `${{` in the same template, e.g.
48
+ // hyphenated keywords used after backtick-quoted text in a comment). The
49
+ // cooked `text` reverses those escapes, restoring 1:1 correspondence with
50
+ // the original source.
51
+ let template = node.template.text;
40
52
 
41
53
  // environment-specific transforms may emit templateLocation in meta, in
42
54
  // which case we use that. Otherwise we use the reported location from the