in src/language/providers/closeElementSlash.ts [142:191]
function checkItemsOnLine(
document: vscode.TextDocument,
position: vscode.Position,
itemsOnLine: number,
nearestTagNotClosed: string,
backpos: vscode.Position,
nsPrefix: string,
triggerText: string
) {
nsPrefix = getItemPrefix(nearestTagNotClosed, nsPrefix)
if (
!(nearestTagNotClosed == 'none') &&
(itemsOnLine == 1 || itemsOnLine == 0)
) {
if (
nearestTagNotClosed.includes('defineVariable') ||
nearestTagNotClosed.includes('setVariable')
) {
insertSnippet('/>\n', backpos)
} else {
insertSnippet('/>$0', backpos)
}
}
if (itemsOnLine > 1) {
if (
triggerText.endsWith('/') &&
triggerText.includes('<' + nsPrefix + nearestTagNotClosed)
) {
let tagPos = triggerText.lastIndexOf('<' + nsPrefix + nearestTagNotClosed)
let tagEndPos = triggerText.indexOf('>', tagPos)
if (
tagPos != -1 &&
!triggerText.substring(tagEndPos - 1, 2).includes('/>') &&
triggerText
.substring(backpos.character - 1, backpos.character)
.includes('>') &&
!triggerText
.substring(tagEndPos)
.includes('</' + nsPrefix + nearestTagNotClosed)
) {
insertSnippet('</' + nsPrefix + nearestTagNotClosed + '>$0', backpos)
} else {
insertSnippet('/>$0', backpos)
}
}
}
}