@glint/ember-tsc 1.7.4 → 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
|
|
68
|
-
const tagStart =
|
|
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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"}
|
package/package.json
CHANGED
|
@@ -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
|
|
98
|
-
const tagStart =
|
|
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;
|