WEB-65855 Folder breadcrumbs no longer show when the cursor is within html in a JS/TS file

GitOrigin-RevId: ac81a1cd61921fb1c809345d15319d3843a0ef5a
This commit is contained in:
Piotr Tomiak
2024-03-12 15:33:43 +00:00
committed by intellij-monorepo-bot
parent 3ef88d1ea7
commit 5f519ec45c
3 changed files with 28 additions and 0 deletions
@@ -612,3 +612,5 @@ language.services.widget.item.initializing={0} | Initializing\u2026
language.services.widget.item.shutdown.normally={0} | Stopped
language.services.widget.item.shutdown.unexpectedly={0} | Terminated
language.services.widget.open.settings.action=Open Settings
navBar.element.injected.file=<Injected {0} file>
@@ -7,6 +7,8 @@ import com.intellij.ide.navbar.NavBarItemPresentation
import com.intellij.ide.navigationToolbar.NavBarModelExtension
import com.intellij.ide.projectView.ProjectView
import com.intellij.ide.projectView.impl.ProjectRootsUtil
import com.intellij.injected.editor.VirtualFileWindow
import com.intellij.lang.LangBundle
import com.intellij.model.Pointer
import com.intellij.model.Pointer.hardPointer
import com.intellij.openapi.editor.colors.CodeInsightColors.ERRORS_ATTRIBUTES
@@ -34,6 +36,7 @@ import com.intellij.refactoring.suggested.createSmartPointer
import com.intellij.ui.SimpleTextAttributes
import com.intellij.ui.SimpleTextAttributes.*
import com.intellij.util.IconUtil
import com.intellij.util.asSafely
import com.intellij.util.concurrency.annotations.RequiresBackgroundThread
import com.intellij.util.concurrency.annotations.RequiresReadLock
import com.intellij.util.ui.JBUI
@@ -132,6 +135,24 @@ internal class ModuleNavBarItem(data: Module) : DefaultNavBarItem<Module>(data),
internal class PsiNavBarItem(data: PsiElement, val ownerExtension: NavBarModelExtension?) : DefaultNavBarItem<PsiElement>(
data) {
override fun presentation(): NavBarItemPresentation {
if (data is PsiFile) {
data.virtualFile
?.asSafely<VirtualFileWindow>()
?.let {
return NavBarItemPresentation(
getIcon(),
LangBundle.message("navBar.element.injected.file", data.language.displayName),
null,
REGULAR_ITALIC_ATTRIBUTES,
REGULAR_ITALIC_ATTRIBUTES,
true
)
}
}
return super.presentation()
}
override fun createPointer(): Pointer<out NavBarItem> {
val data = data
val ownerExtension = ownerExtension
@@ -3,6 +3,8 @@ package com.intellij.ide.navigationToolbar;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.ide.scratch.RootType;
import com.intellij.injected.editor.VirtualFileWindow;
import com.intellij.lang.injection.InjectedLanguageManager;
import com.intellij.openapi.application.ReadAction;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
@@ -146,6 +148,9 @@ public class DefaultNavBarExtension extends AbstractNavBarModelExtension {
if (containingDirectory != null) {
return containingDirectory;
}
if (containingFile.getVirtualFile() instanceof VirtualFileWindow) {
return InjectedLanguageManager.getInstance(psiElement.getProject()).getTopLevelFile(containingFile);
}
}
else if (psiElement instanceof PsiDirectory psiDirectory) {
Project project = psiElement.getProject();