fix(51077): skip insertText for jsx attribute with existing initializer (#51093)

This commit is contained in:
Oleksandr T 2022-12-09 18:38:08 +02:00 committed by GitHub
parent f3d55db45a
commit 1f32fef5a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 1 deletions

View File

@ -1392,7 +1392,9 @@ function createCompletionEntry(
sortText = SortText.SortBelow(sortText);
}
if (isJsxIdentifierExpected && !isRightOfOpenTag && preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle && preferences.jsxAttributeCompletionStyle !== "none") {
if (isJsxIdentifierExpected && !isRightOfOpenTag
&& preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle
&& preferences.jsxAttributeCompletionStyle !== "none" && !(isJsxAttribute(location.parent) && location.parent.initializer)) {
let useBraces = preferences.jsxAttributeCompletionStyle === "braces";
const type = typeChecker.getTypeOfSymbolAtLocation(symbol, location);

View File

@ -0,0 +1,27 @@
/// <reference path="fourslash.ts" />
// @filename: /foo.tsx
////declare namespace JSX {
//// interface Element { }
//// interface IntrinsicElements {
//// foo: {
//// className: string;
//// }
//// }
////}
////<foo cl/**/={""} />
verify.completions({
marker: "",
includes: {
name: "className",
text: "(property) className: string",
insertText: undefined,
isSnippet: undefined,
},
preferences: {
jsxAttributeCompletionStyle: "braces",
includeCompletionsWithSnippetText: true,
includeCompletionsWithInsertText: true,
},
})