Use preview tab when using "Go to Declaration" (IDEA-261073)

GitOrigin-RevId: 598fc6111101d2668d50c321d1fca8c8873b178a
This commit is contained in:
Dmitry Jemerov
2022-08-24 18:21:02 +00:00
committed by intellij-monorepo-bot
parent 187aee3d74
commit dbb6a4633c
3 changed files with 14 additions and 1 deletions
@@ -1,11 +1,13 @@
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.ide.util;
import com.intellij.ide.ui.UISettings;
import com.intellij.navigation.NavigationItem;
import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.fileEditor.OpenFileDescriptor;
import com.intellij.openapi.roots.GeneratedSourcesFilter;
import com.intellij.openapi.util.UserDataHolder;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.vfs.VFileProperty;
import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
@@ -45,6 +47,9 @@ public final class EditSourceUtil {
}
OpenFileDescriptor desc = new OpenFileDescriptor(navigationElement.getProject(), virtualFile, offset);
desc.setUseCurrentWindow(FileEditorManager.USE_CURRENT_WINDOW.isIn(navigationElement));
if (UISettings.getInstance().getOpenInPreviewTabIfPossible() && Registry.is("editor.preview.tab.navigation")) {
desc.setUsePreviewTab(true);
}
return desc;
}
@@ -9,6 +9,7 @@ import com.intellij.codeInsight.lookup.LookupManager
import com.intellij.codeInsight.navigation.impl.NavigationRequestor
import com.intellij.codeInsight.navigation.impl.gtdTargetNavigatable
import com.intellij.ide.IdeEventQueue
import com.intellij.ide.ui.UISettings
import com.intellij.idea.ActionsBundle
import com.intellij.lang.LanguageNamesValidation
import com.intellij.navigation.NavigationRequest
@@ -58,7 +59,11 @@ internal fun navigateRequest(project: Project, request: NavigationRequest) {
when (request) {
is SourceNavigationRequest -> {
// TODO support pure source request without OpenFileDescriptor
OpenFileDescriptor(project, request.file, request.offset).navigate(true)
val openFileDescriptor = OpenFileDescriptor(project, request.file, request.offset)
if (UISettings.getInstance().openInPreviewTabIfPossible && Registry.`is`("editor.preview.tab.navigation")) {
openFileDescriptor.isUsePreviewTab = true
}
openFileDescriptor.navigate(true)
}
is RawNavigationRequest -> {
request.navigatable.navigate(true)
@@ -2239,5 +2239,8 @@ ide.ui.wrap.colors.description=Wrap UI colors to colors with name
ide.gutter.update.free.markers.on.hover=true
ide.gutter.update.free.markers.on.hover.description=Make VCS gutter wider when hovering mouse
editor.preview.tab.navigation=true
editor.preview.tab.navigation.description=Use preview tabs also when Goto Declaration is used
# please leave this note as last line
# TODO please use EP com.intellij.registryKey for plugin/product specific keys