Skip to content

Commit

Permalink
Properly support TableEntryNavigateEventArgs.ShouldActivate
Browse files Browse the repository at this point in the history
  • Loading branch information
sharwell committed Nov 19, 2021
1 parent 0433307 commit 404a1cd
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ public bool CanNavigateTo()
return false;
}

public Task NavigateToAsync(bool isPreview, CancellationToken cancellationToken)
public Task NavigateToAsync(bool isPreview, bool shouldActivate, CancellationToken cancellationToken)
{
Contract.ThrowIfFalse(CanNavigateTo());

Expand All @@ -309,7 +309,9 @@ public Task NavigateToAsync(bool isPreview, CancellationToken cancellationToken)
workspace,
_excerptResult.Document.Id,
_excerptResult.Span,
solution.Options.WithChangedOption(NavigationOptions.PreferProvisionalTab, isPreview),
solution.Options
.WithChangedOption(NavigationOptions.PreferProvisionalTab, isPreview)
.WithChangedOption(NavigationOptions.ActivateTab, shouldActivate),
cancellationToken);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ public MetadataDefinitionItemEntry(
public bool CanNavigateTo()
=> true;

public Task NavigateToAsync(bool isPreview, CancellationToken cancellationToken)
public Task NavigateToAsync(bool isPreview, bool shouldActivate, CancellationToken cancellationToken)
=> DefinitionBucket.DefinitionItem.TryNavigateToAsync(
Presenter._workspace, showInPreviewTab: isPreview, activateTab: !isPreview, cancellationToken); // Only activate the tab if not opening in preview
Presenter._workspace, showInPreviewTab: isPreview, activateTab: shouldActivate, cancellationToken); // Only activate the tab if requested

protected override IList<Inline> CreateLineTextInlines()
=> DefinitionBucket.DefinitionItem.DisplayParts
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ public static Task<Entry> CreateAsync(
public bool CanNavigateTo()
=> _navigationBucket != null && _navigationBucket.CanNavigateTo();

public Task NavigateToAsync(bool isPreview, CancellationToken cancellationToken)
public Task NavigateToAsync(bool isPreview, bool shouldActivate, CancellationToken cancellationToken)
{
Contract.ThrowIfFalse(CanNavigateTo());
Contract.ThrowIfNull(_navigationBucket);
return _navigationBucket.NavigateToAsync(isPreview, cancellationToken);
return _navigationBucket.NavigateToAsync(isPreview, shouldActivate, cancellationToken);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ async static Task ProcessNavigateAsync(
allowCancellation: true,
showProgress: false);

await supportsNavigation.NavigateToAsync(e.IsPreview, context.UserCancellationToken).ConfigureAwait(false);
await supportsNavigation.NavigateToAsync(e.IsPreview, e.ShouldActivate, context.UserCancellationToken).ConfigureAwait(false);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ namespace Microsoft.VisualStudio.LanguageServices.FindUsages
internal interface ISupportsNavigation
{
bool CanNavigateTo();
Task NavigateToAsync(bool isPreview, CancellationToken cancellationToken);
Task NavigateToAsync(bool isPreview, bool shouldActivate, CancellationToken cancellationToken);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ public static RoslynDefinitionBucket Create(
public bool CanNavigateTo()
=> true;

public Task NavigateToAsync(bool isPreview, CancellationToken cancellationToken)
public Task NavigateToAsync(bool isPreview, bool shouldActivate, CancellationToken cancellationToken)
=> DefinitionItem.TryNavigateToAsync(
_presenter._workspace, showInPreviewTab: isPreview, activateTab: !isPreview, cancellationToken); // Only activate the tab if not opening in preview
_presenter._workspace, showInPreviewTab: isPreview, activateTab: shouldActivate, cancellationToken); // Only activate the tab if requested

public override bool TryGetValue(string key, out object? content)
{
Expand Down

0 comments on commit 404a1cd

Please sign in to comment.