Skip to content

Commit 8b05dc6

Browse files
committed
Merge pull request #846 from SlavaRa/feature/fix_crashes_outline_panel
Fix crashes OutlinePanel when use //{ region ... //} endregion
2 parents 568e841 + 0b408e6 commit 8b05dc6

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

External/Plugins/ASCompletion/PluginUI.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -555,8 +555,8 @@ internal void UpdateView(FileModel aFile)
555555
names.Add(member.Name);
556556
}
557557
}
558-
559-
foreach (MemberModel region in aFile.Regions) {
558+
foreach (MemberModel region in aFile.Regions)
559+
{
560560
sb.Append(region.Name);
561561
lines.Add(region.LineFrom);
562562
names.Add(region.Name);
@@ -572,9 +572,10 @@ internal void UpdateView(FileModel aFile)
572572
}
573573
else
574574
{
575+
int prevLinesCount = prevLines.Count;
575576
for (int i = 0, count = lines.Count; i < count; i++)
576577
{
577-
if (lines[i] == prevLines[i]) continue;
578+
if (i < prevLinesCount && lines[i] == prevLines[i]) continue;
578579
UpdateTree(aFile, names, lines);
579580
prevLines = lines;
580581
break;
@@ -706,11 +707,13 @@ private void UpdateTree(FileModel aFile, List<string> modelNames, List<int> newL
706707
return;
707708

708709
var mapping = new Dictionary<string, string>();
709-
710+
int prevLinesCount = prevLines.Count;
710711
for (int i = 0, count = newLines.Count; i < count; i++)
711712
{
712713
string name = modelNames[i];
713-
mapping[name + "@" + prevLines[i]] = name + "@" + newLines[i];
714+
string value = name + "@" + newLines[i];
715+
if (i < prevLinesCount) mapping[name + "@" + prevLines[i]] = value;
716+
else mapping[value] = value;
714717
}
715718

716719
var tree = new Stack<TreeNodeCollection>();

0 commit comments

Comments
 (0)