From dd640a944bfa2faa71883f3ef26325493a749040 Mon Sep 17 00:00:00 2001 From: Yassine Chbani Date: Sat, 16 Feb 2019 12:29:14 +0100 Subject: [PATCH] Use regex in excluded tags --- src/extension.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index 9bd17f9..b6e89d6 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -17,6 +17,14 @@ export function activate(context: vscode.ExtensionContext) { export function deactivate() { } +function isTagExcluded(tag:string, excludedTags:string[]): boolean { + if (excludedTags.length < 1) { + return false; + } + let regex = new RegExp(excludedTags.join('|')); + return regex.test(tag); +} + function insertAutoCloseTag(event: vscode.TextDocumentChangeEvent): void { if (!event.contentChanges[0]) { return; @@ -81,7 +89,7 @@ function insertAutoCloseTag(event: vscode.TextDocumentChangeEvent): void { if (result !== null && ((occurrenceCount(result[0], "'") % 2 === 0) && (occurrenceCount(result[0], "\"") % 2 === 0) && (occurrenceCount(result[0], "`") % 2 === 0))) { if (result[2] === ">") { - if (excludedTags.indexOf(result[1].toLowerCase()) === -1) { + if (!isTagExcluded(result[1].toLowerCase(), excludedTags)) { editor.edit((editBuilder) => { editBuilder.insert(originalPosition, ""); }).then(() => { @@ -143,7 +151,7 @@ function getCloseTag(text: string, excludedTags: string[]): string { while ((result = regex.exec(text)) !== null) { let isStartTag = result[1].substr(0, 1) !== "/"; let tag = isStartTag ? result[1] : result[1].substr(1); - if (excludedTags.indexOf(tag.toLowerCase()) === -1) { + if (!isTagExcluded(tag.toLowerCase(), excludedTags)) { if (isStartTag) { stack.push(tag); } else if (stack.length > 0) {