From 0b3ec247bcbce77115b4155688f5b718ce7f7ee1 Mon Sep 17 00:00:00 2001 From: uniqueiniquity Date: Wed, 9 Aug 2017 09:00:46 -0700 Subject: [PATCH] Fix name capture logic --- src/services/outliningElementsCollector.ts | 23 ++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/services/outliningElementsCollector.ts b/src/services/outliningElementsCollector.ts index e79175b4b24..255e7c9aad6 100644 --- a/src/services/outliningElementsCollector.ts +++ b/src/services/outliningElementsCollector.ts @@ -8,8 +8,8 @@ namespace ts.OutliningElementsCollector { let depth = 0; const regions: RegionRange[] = []; const regionText = "#region"; - const regionStart = new RegExp("// #region( .+| *)", "g"); - const regionEnd = new RegExp("// #endregion *"); + const regionStart = new RegExp("//\\s*#region(\\s+.*)?$", "gm"); + const regionEnd = new RegExp("//\\s*#endregion(\\s|$)", "gm"); walk(sourceFile); gatherRegions(); @@ -165,12 +165,23 @@ namespace ts.OutliningElementsCollector { const result = comment.match(regionStart); if (result && result.length > 0) { - const name = result[0].substring(10).trim(); - if (name) { - return name; + const sections = result[0].split(" ").filter(function (s) { return s !== ""; }); + + if (sections[0] === "//") { + if (sections.length > 2) { + return result[0].substring(result[0].indexOf(sections[2])); + } + else { + return regionText; + } } else { - return regionText; + if (sections.length > 1) { + return result[0].substring(result[0].indexOf(sections[1])); + } + else { + return regionText; + } } } return "";