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

This commit is contained in:
Oleksandr T
2022-12-09 08:38:08 -08:00
committed by GitHub
parent f3d55db45a
commit 1f32fef5a2
2 changed files with 30 additions and 1 deletions
+3 -1
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);
@@ -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,
},
})