Skip to content

Commit

Permalink
Fix Visual Studio 2017 Community Crashes when Collapse All Regions #28
Browse files Browse the repository at this point in the history
  • Loading branch information
sboulema committed Jul 31, 2017
1 parent 20eeb29 commit 8364af5
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 14 deletions.
10 changes: 5 additions & 5 deletions CodeNav/CodeViewUserControl.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ public partial class CodeViewUserControl
private List<CodeItem> _cache;
private readonly BackgroundWorker _backgroundWorker;
internal readonly CodeDocumentViewModel CodeDocumentViewModel;
private readonly IWpfTextView _textView;
private readonly IOutliningManager _outliningManager;
internal IWpfTextView TextView;
internal IOutliningManager OutliningManager;
private VisualStudioWorkspace _workspace;
private CodeNavMargin _margin;
public DTE Dte;
Expand All @@ -52,8 +52,8 @@ public CodeViewUserControl(Window window, ColumnDefinition column = null,

_window = window;
_column = column;
_textView = textView;
_outliningManager = outliningManager;
TextView = textView;
OutliningManager = outliningManager;
_workspace = workspace;
_margin = margin;
Dte = dte;
Expand Down Expand Up @@ -254,7 +254,7 @@ private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerComplet
VisibilityHelper.SetCodeItemVisibility(CodeDocumentViewModel.CodeDocument);

// Sync all regions
OutliningHelper.SyncAllRegions(_outliningManager, _textView, CodeDocumentViewModel.CodeDocument);
OutliningHelper.SyncAllRegions(OutliningManager, TextView, CodeDocumentViewModel.CodeDocument);

LogHelper.Log($"CodeNav for '{_window.Document.Name}' updated");
}
Expand Down
15 changes: 8 additions & 7 deletions CodeNav/ToolWindow/CodeNavToolWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ public class CodeNavToolWindow : ToolWindowPane
private WindowEvents _windowEvents;
private DocumentEvents _documentEvents;
private DTE _dte;
private IOutliningManager _outliningManager;
private VisualStudioWorkspace _workspace;

/// <summary>
Expand Down Expand Up @@ -70,15 +69,17 @@ private void WindowEvents_WindowActivated(Window gotFocus, Window lostFocus)
var textViewHost = GetCurrentViewHost();
if (textViewHost != null)
{
_control.TextView = textViewHost.TextView;
textViewHost.TextView.Caret.PositionChanged += Caret_PositionChanged;

// Subscribe to Outlining events
_outliningManager = OutliningHelper.GetManager(Package as CodeNavToolWindowPackage, GetCurrentViewHost().TextView);
if (_outliningManager == null) return;
_outliningManager.RegionsExpanded -= OutliningManager_RegionsExpanded;
_outliningManager.RegionsExpanded += OutliningManager_RegionsExpanded;
_outliningManager.RegionsCollapsed -= OutliningManager_RegionsCollapsed;
_outliningManager.RegionsCollapsed += OutliningManager_RegionsCollapsed;
var outliningManager = OutliningHelper.GetManager(Package as CodeNavToolWindowPackage, GetCurrentViewHost().TextView);
if (outliningManager == null) return;
_control.OutliningManager = outliningManager;
outliningManager.RegionsExpanded -= OutliningManager_RegionsExpanded;
outliningManager.RegionsExpanded += OutliningManager_RegionsExpanded;
outliningManager.RegionsCollapsed -= OutliningManager_RegionsCollapsed;
outliningManager.RegionsCollapsed += OutliningManager_RegionsCollapsed;
}

UpdateDocument(gotFocus, gotFocus != lostFocus);
Expand Down
2 changes: 1 addition & 1 deletion CodeNav/source.extension.vsixmanifest
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
<Identity Id="CodeNav.Samir Boulema.19687465-dc94-413d-ad72-6141e90c94d4" Version="2.8" Language="en-US" Publisher="Samir Boulema" />
<Identity Id="CodeNav.Samir Boulema.19687465-dc94-413d-ad72-6141e90c94d4" Version="2.9" Language="en-US" Publisher="Samir Boulema" />
<DisplayName>CodeNav</DisplayName>
<Description xml:space="preserve">Show the code structure of your current document</Description>
<MoreInfo>https://github.com/sboulema/CodeNav</MoreInfo>
Expand Down
2 changes: 1 addition & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version: 2.8.{build}
version: 2.9.{build}
skip_tags: true
configuration:
- Release
Expand Down

0 comments on commit 8364af5

Please sign in to comment.