mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-09 20:51:43 -06:00
Rename of non-intrinsic JSX element should rename the declaration (#28066)
This commit is contained in:
parent
82773b8550
commit
5becc3b170
@ -3089,7 +3089,7 @@ namespace ts {
|
||||
|
||||
export function isIntrinsicJsxName(name: __String | string) {
|
||||
const ch = (name as string).charCodeAt(0);
|
||||
return (ch >= CharacterCodes.a && ch <= CharacterCodes.z) || (name as string).indexOf("-") > -1;
|
||||
return (ch >= CharacterCodes.a && ch <= CharacterCodes.z) || stringContains((name as string), "-");
|
||||
}
|
||||
|
||||
function get16BitUnicodeEscapeSequence(charCode: number): string {
|
||||
|
||||
@ -1542,7 +1542,7 @@ namespace ts {
|
||||
synchronizeHostData();
|
||||
const sourceFile = getValidSourceFile(fileName);
|
||||
const node = getTouchingPropertyName(sourceFile, position);
|
||||
if (isIdentifier(node) && isJsxOpeningElement(node.parent) || isJsxClosingElement(node.parent)) {
|
||||
if (isIdentifier(node) && (isJsxOpeningElement(node.parent) || isJsxClosingElement(node.parent)) && isIntrinsicJsxName(node.escapedText)) {
|
||||
const { openingElement, closingElement } = node.parent.parent;
|
||||
return [openingElement, closingElement].map((node): RenameLocation =>
|
||||
({ fileName: sourceFile.fileName, textSpan: createTextSpanFromNode(node.tagName, sourceFile) }));
|
||||
|
||||
@ -1,15 +1,23 @@
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
// @jsx: preserve
|
||||
|
||||
//@Filename: file.tsx
|
||||
////declare module JSX {
|
||||
//// interface Element {}
|
||||
//// interface IntrinsicElements {}
|
||||
//// interface IntrinsicElements {
|
||||
//// div: {};
|
||||
//// }
|
||||
////}
|
||||
////class [|MyClass|] {}
|
||||
////
|
||||
////<[|MyClass|]></[|MyClass|]>;
|
||||
////<[|MyClass|]/>;
|
||||
////
|
||||
////<[|div|]> </[|div|]>
|
||||
|
||||
const [r0, r1, r2, r3] = test.ranges();
|
||||
verify.renameLocations([r0, r3], [r0, r1, r2, r3]);
|
||||
verify.renameLocations([r1, r2], [r1, r2]);
|
||||
verify.noErrors();
|
||||
|
||||
const [r0, r1, r2, r3, d0, d1] = test.ranges();
|
||||
verify.rangesAreRenameLocations([r0, r1, r2, r3]);
|
||||
verify.rangesAreRenameLocations([d0, d1]);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user