Change:
return; } <del> let noiseCheckPromise: Thenable<any> = Promise.resolve(); </del> <ins> let isNoisePromise: Thenable<boolean> = Promise.resolve(false); </ins> // Fix for https://github.com/microsoft/vscode/issues/32647 // Check for document symbols in js/ts/jsx/tsx and avoid triggering emmet for abbreviations of the form symbolName.sometext // Presence of > or * or + in the abbreviation denotes valid abbreviation that should trigger emmet if (!isStyleSheet(syntax) && (document.languageId === 'javascript' || document.languageId === 'javascriptreact' || document.languageId === 'typescript' || document.languageId === 'typescriptreact')) { let abbreviation: string = extractAbbreviationResults.abbreviation; <del> if (abbreviation.startsWith('this.')) { noiseCheckPromise = Promise.resolve(true); </del> <ins> // For the second condition, we don't want abbreviations that have [] characters but not ='s in them to expand // In turn, users must explicitly expand abbreviations of the form Component[attr1 attr2], but it means we don't try to expand a[i]. if (abbreviation.startsWith('this.') || /[[^]=]*]/.test(abbreviation)) { isNoisePromise = Promise.resolve(true); </ins> } else { <del> noiseCheckPromise = vscode.commands.executeCommand<vscode.SymbolInformation[]>('vscode.executeDocumentSymbolProvider', document.uri).then((symbols: vscode.SymbolInformation[] | undefined) => { return symbols && symbols.find(x => abbreviation === x.name || (abbreviation.startsWith(x.name + '.') && !/>|*|+/.test(abbreviation))); </del> <ins> isNoisePromise = vscode.commands.executeCommand<vscode.SymbolInformation[] | undefined>('vscode.executeDocumentSymbolProvider', document.uri).then(symbols => { return !!symbols && symbols.some(x => abbreviation === x.name || (abbreviation.startsWith(x.name + '.') && !/>|*|+/.test(abbreviation))); </ins> }); } } <del> return noiseCheckPromise.then((noise): vscode.CompletionList | undefined => { if (noise) { return; </del> <ins> return isNoisePromise.then((isNoise): vscode.CompletionList | undefined => { if (isNoise) { return undefined; </ins> } const config = getEmmetConfiguration(syntax!);

Discussion:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes (disabling Emmet) <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: - 1.62.3 OS Version: - Ubuntu 21.10 Steps to Reproduce: a .js file which is denoted a React file by VSCode part of the coding implement state for a counter with the following simple line: getting as far as typing I wish to just exit the square brackets however Emmet takes the first position tab results in an HTML string appearing, see pictures Question: How do I move Emmet down the list of suggestions in Autocomplete for a React file, I am using other extensions like TabOut (to get out of the square brackets without any autocomplete) which would be more appropriate. ! ! ! !
This issue heavily affect the react users.
Verification steps: a JSX file. . should not be an Emmet suggestion.
/verified