Skip to content

Commit

Permalink
Back to Shared Project so that the Community Toolkit windows events w…
Browse files Browse the repository at this point in the history
…ork correctly
  • Loading branch information
Samir L. Boulema committed Jul 3, 2021
1 parent 94108ce commit b82134e
Show file tree
Hide file tree
Showing 125 changed files with 1,092 additions and 496 deletions.
187 changes: 187 additions & 0 deletions CodeNav.Shared/CodeNav.Shared.projitems
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects Condition="'$(MSBuildVersion)' == '' Or '$(MSBuildVersion)' &lt; '16.0'">$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<HasSharedItems>true</HasSharedItems>
<SharedGUID>fdb3d737-bcd7-42b1-a560-ca869de9bce3</SharedGUID>
</PropertyGroup>
<PropertyGroup Label="Configuration">
<Import_RootNamespace>CodeNav.Shared</Import_RootNamespace>
</PropertyGroup>
<ItemGroup>
<Page Include="$(MSBuildThisFileDirectory)CodeViewUserControl.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)CodeViewUserControlTop.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Controls\ClassDataTemplate.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Controls\DepthGroupDataTemplate.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Controls\FilterToolbar.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Controls\ItemDataTemplate.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Controls\MainToolbar.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Controls\NamespaceDataTemplate.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Controls\RegionDataTemplate.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Menus\ItemContextMenu.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Styles\BookmarkButtonStyle.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Styles\ComboBoxStyle.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Styles\PlusMinusExpanderStyles.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)CodeNavMargin.cs" />
<Compile Include="$(MSBuildThisFileDirectory)CodeNavMarginFactory.cs" />
<Compile Include="$(MSBuildThisFileDirectory)CodeViewUserControl.xaml.cs">
<DependentUpon>CodeViewUserControl.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)CodeViewUserControlTop.xaml.cs">
<DependentUpon>CodeViewUserControlTop.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Controls\FilterToolbar.xaml.cs">
<DependentUpon>FilterToolbar.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Controls\MainToolbar.xaml.cs">
<DependentUpon>MainToolbar.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Helpers\BookmarkHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\CodeItemExtensions.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\ColorHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\DocumentHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\FindHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\HighlightHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\HistoryHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\LanguageHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\LogHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\NavBarOverrider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\OutliningHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\SettingsHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\SolutionStorageHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\SortHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\SymbolHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\VisibilityHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\WindowHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\WpfHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)ICodeViewUserControl.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\BaseMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\ClassMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\DelegateEventMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\EnumMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\FieldMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\FontStyleMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\IconMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\IdMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\IndexerMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\InterfaceMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\JavaScript\BaseMapperJS.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\JavaScript\FunctionMapperJS.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\JavaScript\SyntaxMapperJS.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\MethodMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\NamespaceMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\ParameterMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\PropertyMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\RegionMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\StatementMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\StructMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\SyntaxMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\TooltipMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\TriviaSummaryMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mappers\TypeMapper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\BookmarkStyle.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\CodeClassItem.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\CodeDepthGroupItem.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\CodeDocumentViewModel.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\CodeFunctionItem.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\CodeInterfaceItem.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\CodeItem.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\CodeItemAccessEnum.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\CodeItemKindEnum.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\CodeNamespaceItem.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\CodePropertyItem.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\CodeRegionItem.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\FilterRule.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\ICodeCollapsible.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\IMembers.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\LanguageEnum.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\MarginSideEnum.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\SolutionStorageModel.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Models\SortOrderEnum.cs" />
<Compile Include="$(MSBuildThisFileDirectory)ToolWindow\CodeNavToolWindow.cs" />
<Compile Include="$(MSBuildThisFileDirectory)ToolWindow\CodeNavToolWindowCommand.cs" />
<Compile Include="$(MSBuildThisFileDirectory)ToolWindow\CodeNavToolWindowPackage.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Windows\CustomizeBookmarkStylesWindow.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Windows\CustomizeBookmarkStylesWindow.Designer.cs">
<DependentUpon>CustomizeBookmarkStylesWindow.cs</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Windows\FilterWindow.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Windows\FilterWindow.Designer.cs">
<DependentUpon>FilterWindow.cs</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Windows\OptionsWindow.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Windows\OptionsWindow.Designer.cs">
<DependentUpon>OptionsWindow.cs</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)ToolWindow\CodeNavToolWindowPackage.vsct" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)ToolWindow\VSPackage.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)VSPackage.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Windows\CustomizeBookmarkStylesWindow.resx">
<DependentUpon>CustomizeBookmarkStylesWindow.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Windows\FilterWindow.resx">
<DependentUpon>FilterWindow.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Windows\OptionsWindow.resx">
<DependentUpon>OptionsWindow.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)app.config" />
</ItemGroup>
</Project>
13 changes: 13 additions & 0 deletions CodeNav.Shared/CodeNav.Shared.shproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>fdb3d737-bcd7-42b1-a560-ca869de9bce3</ProjectGuid>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
<PropertyGroup />
<Import Project="CodeNav.Shared.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
</Project>
21 changes: 7 additions & 14 deletions CodeNav/CodeNavMargin.cs → CodeNav.Shared/CodeNavMargin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
using Task = System.Threading.Tasks.Task;
using Community.VisualStudio.Toolkit;
using Settings = CodeNav.Properties.Settings;
using EnvDTE;

namespace CodeNav
{
Expand All @@ -32,7 +31,6 @@ public class CodeNavMargin : DockPanel, IWpfTextViewMargin
private readonly IOutliningManager _outliningManager;
private readonly VisualStudioWorkspace _workspace;
public readonly MarginSideEnum MarginSide;
private DocumentEvents _documentEvents;

public CodeNavMargin(IWpfTextViewHost textViewHost, IOutliningManagerService outliningManagerService,
VisualStudioWorkspace workspace, MarginSideEnum side)
Expand All @@ -42,7 +40,6 @@ public CodeNavMargin(IWpfTextViewHost textViewHost, IOutliningManagerService out
_outliningManagerService = outliningManagerService;
_outliningManager = OutliningHelper.GetOutliningManager(outliningManagerService, _textView);
_workspace = workspace;
_documentEvents = VS.Events.DocumentEvents;
MarginSide = side;

// Add the view/content to the margin area
Expand Down Expand Up @@ -213,11 +210,7 @@ public void RegisterEvents()
}

// Subscribe to Document events
_documentEvents.DocumentSaved -= DocumentEvents_DocumentSaved;
_documentEvents.DocumentSaved += DocumentEvents_DocumentSaved;

_documentEvents.DocumentOpened -= DocumentEvents_DocumentOpened;
_documentEvents.DocumentOpened += DocumentEvents_DocumentOpened;
VS.Events.DocumentEvents.Saved += DocumentEvents_Saved;

// Subscribe to Outlining events
if (_outliningManager != null)
Expand All @@ -227,18 +220,18 @@ public void RegisterEvents()
_outliningManager.RegionsCollapsed -= OutliningManager_RegionsCollapsed;
_outliningManager.RegionsCollapsed += OutliningManager_RegionsCollapsed;
}
}

private void DocumentEvents_DocumentOpened(EnvDTE.Document Document)
{
_ = UpdateDocument();
VS.Events.WindowEvents.ActiveFrameChanged += WindowEvents_ActiveFrameChanged;
}

private void DocumentEvents_DocumentSaved(EnvDTE.Document Document)
private void WindowEvents_ActiveFrameChanged(ActiveFrameChangeEventArgs obj)
{
_ = UpdateDocument();
=> _ = UpdateDocument();
}

private void DocumentEvents_Saved(object sender, string e)
=> _ = UpdateDocument();

private void TextBuffer_ChangedLowPriority(object sender, TextContentChangedEventArgs e)
{
var changedSpans = e.Changes.Select(c => c.OldSpan);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Utilities;
using CodeNav.Models;
using EnvDTE;
using System.Threading.Tasks;

namespace CodeNav
{
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -58,51 +58,8 @@ public CodeViewUserControl(ColumnDefinition column = null,

private void VSColorTheme_ThemeChanged(ThemeChangedEventArgs e) => _ = UpdateDocument(true);

public async Task SelectLine(object startLinePosition, bool extend = false)
{
int line;
int offset;

try
{
var linePosition = (LinePosition)startLinePosition;
line = linePosition.Line + 1;
offset = linePosition.Character + 1;
}
catch (Exception)
{
// StartLine is not a valid int for document
return;
}

var textSelection = await DocumentHelper.GetActiveDocumentTextSelection().ConfigureAwait(false);

if (textSelection == null)
{
return;
}

try
{
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

textSelection.MoveToLineAndOffset(line, offset, extend);

var tp = (TextPoint)textSelection.TopPoint;
_ = tp.TryToShow(vsPaneShowHow.vsPaneShowCentered, null);
}
catch (Exception)
{
// GotoLine failed
return;
}
}

public async Task Select(object startLinePosition, object endLinePosition)
{
await SelectLine(startLinePosition).ConfigureAwait(false);
await SelectLine(endLinePosition, true).ConfigureAwait(false);
}
=> await DocumentHelper.SelectLines((LinePosition)startLinePosition, (LinePosition)endLinePosition).ConfigureAwait(false);

public void FilterBookmarks()
=> VisibilityHelper.SetCodeItemVisibility(CodeDocumentViewModel);
Expand All @@ -120,7 +77,7 @@ public void ToggleAll(bool isExpanded, List<CodeItem> root = null)

public async Task UpdateDocument(bool forceUpdate = false)
{
CodeDocumentViewModel.FilePath = await DocumentHelper.GetFileName();
CodeDocumentViewModel.FilePath = await DocumentHelper.GetFilePath();

_ = SwitchMarginSides();

Expand Down Expand Up @@ -290,9 +247,8 @@ private async Task SwitchMarginSides()
if (_margin?.MarginSide != null &&
_margin?.MarginSide != Settings.Default.MarginSide)
{
var dte = await VS.GetDTEAsync();
dte?.ExecuteCommand("File.Close");
await VS.Shell.OpenDocumentViaProjectAsync(CodeDocumentViewModel.FilePath);
await VS.Commands.ExecuteAsync("File.Close");
await VS.Commands.ExecuteAsync("File.Open", CodeDocumentViewModel.FilePath);
}
}
}
Expand Down
File renamed without changes.
Loading

0 comments on commit b82134e

Please sign in to comment.