IDEA-285738: Folders can't be shown in Bookmarks popup window
authorSergey Malenkov <sergey.malenkov@jetbrains.com>
Thu, 20 Jan 2022 10:58:57 +0000 (13:58 +0300)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Thu, 20 Jan 2022 23:14:17 +0000 (23:14 +0000)
GitOrigin-RevId: d99e313b1c538cf1bd23264675dc8f56d146bc79

platform/lang-api/resources/messages/BookmarkBundle.properties
platform/lang-impl/src/com/intellij/ide/bookmark/actions/ShowLineBookmarksAction.kt
platform/lang-impl/src/com/intellij/ide/bookmark/ui/tree/BookmarksTreeStructure.kt
platform/lang-impl/src/com/intellij/ide/bookmark/ui/tree/GroupNode.kt
platform/platform-resources/src/META-INF/PlatformLangPlugin.xml

index 07822951f6d3d98c493ba0914343c716b0082e51..2c5888aa481bf6b489cb7b9cc1f6feef7a426107 100644 (file)
@@ -3,6 +3,7 @@ action.bookmark.delete=Delete Bookmark
 action.bookmark.edit.description.dialog.message=Enter a short bookmark description
 action.bookmark.edit.description.dialog.title=Bookmark Description
 action.bookmark.edit.description=Edit Description
+advanced.setting.show.line.bookmarks.in.popup=Show only line bookmarks in popup
 bookmark.file.X.line.Y={0}, line {1}
 bookmark.shortcut.to.jump={0} to jump to
 bookmark.shortcut.to.toggle.and.jump={0} to toggle, {1} to jump to
@@ -45,6 +46,7 @@ dialog.group.help.tooltip=<html>New bookmarks will be added here<br>automaticall
 dialog.name.exists.error=A list with the specified name already exists
 default.group.marker=Default
 goto.bookmark.type.action.text=Go to Bookmark {0}
+group.advanced.settings.bookmarks=Bookmarks
 mnemonic.chooser.bookmark.create.action.text=Add Mnemonic Bookmark...
 mnemonic.chooser.bookmark.create.popup.title=Add Mnemonic Bookmark
 mnemonic.chooser.mnemonic.assign.action.text=Assign Mnemonic...
@@ -58,7 +60,8 @@ mnemonic.chooser.legend.current.bookmark=Current
 popup.title.bookmarks=Bookmarks
 popup.title.type.bookmarks=Go to Mnemonic
 select.in.target.name=Bookmarks
-show.bookmarks.action.text=Show Line Bookmarks...
+show.bookmarks.action.text=Show Bookmarks...
+show.line.bookmarks.action.text=Show Line Bookmarks...
 show.type.bookmarks.action.text=Go to Mnemonic...
 sort.group.bookmarks.action.text=Sort Bookmarks by Type \\&\\& Name
 status.text.add.bookmark=Add Bookmark to code lines,
index d68d5e39ce5545af792d2aaf934127ddc3dc26e4..d218c8d6305826655c5271803073e52505cdffa1 100644 (file)
@@ -1,9 +1,10 @@
-// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
 package com.intellij.ide.bookmark.actions
 
 import com.intellij.ide.bookmark.BookmarkBundle
 import com.intellij.ide.bookmark.ui.BookmarksView
 import com.intellij.openapi.actionSystem.AnActionEvent
+import com.intellij.openapi.options.advanced.AdvancedSettings
 import com.intellij.openapi.project.DumbAwareAction
 import com.intellij.openapi.ui.popup.JBPopupFactory
 import com.intellij.openapi.util.Disposer
@@ -15,6 +16,10 @@ internal class ShowLineBookmarksAction : DumbAwareAction(BookmarkBundle.messageP
 
   override fun update(event: AnActionEvent) {
     event.presentation.isEnabled = event.project != null
+    event.presentation.text = when (AdvancedSettings.getBoolean("show.line.bookmarks.in.popup")) {
+      true -> BookmarkBundle.message("show.line.bookmarks.action.text")
+      else -> BookmarkBundle.message("show.bookmarks.action.text")
+    }
   }
 
   override fun actionPerformed(event: AnActionEvent) {
index 0cb6b7630e2e41e931e6fcdc56da3f34eab3d803..519b1cf3a90e527c6e9105c0a305c5882cb6c53d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
 package com.intellij.ide.bookmark.ui.tree
 
 import com.intellij.ide.bookmark.ui.BookmarksView
@@ -19,6 +19,7 @@ class BookmarksTreeStructure(val panel: BookmarksView) : AbstractTreeStructure()
   override fun getParentElement(element: Any): Any? = element.asAbstractTreeNode?.parent
   override fun getChildElements(element: Any): Array<Any> {
     val node = element as? AbstractTreeNode<*>
+    if (panel.isPopup && node !is RootNode && node !is GroupNode) return emptyArray()
     val children = node?.children?.ifEmpty { null } ?: return emptyArray()
     val parent = node.parentFolderNode ?: return children.toTypedArray()
     val provider = CompoundTreeStructureProvider.get(panel.project) ?: return children.toTypedArray()
index 9b6cb44f5cc7276030c28d349aa83acee91ba098..d68dbbe43600b9ad5c5160c628909fa546d99472 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
 package com.intellij.ide.bookmark.ui.tree
 
 import com.intellij.icons.AllIcons
@@ -10,6 +10,7 @@ import com.intellij.ide.bookmark.LineBookmark
 import com.intellij.ide.projectView.PresentationData
 import com.intellij.ide.util.treeView.AbstractTreeNode
 import com.intellij.ide.util.treeView.AbstractTreeNodeCache
+import com.intellij.openapi.options.advanced.AdvancedSettings
 import com.intellij.openapi.project.Project
 import com.intellij.ui.SimpleTextAttributes
 
@@ -20,7 +21,7 @@ internal class GroupNode(project: Project, group: BookmarkGroup) : AbstractTreeN
     var bookmarks = value.getBookmarks()
 
     // shows line bookmarks only in the popup
-    if (parentRootNode?.value?.isPopup == true) {
+    if (parentRootNode?.value?.isPopup == true && AdvancedSettings.getBoolean("show.line.bookmarks.in.popup")) {
       bookmarks = bookmarks.filterIsInstance<LineBookmark>()
     }
 
index 466f491c2b21d819c7cb7c3a3db5341d04fa5458..b78e0212c433ef1d10c139b649ea26dc4910ae7d 100644 (file)
@@ -83,6 +83,8 @@
     <bookmarksListProvider implementation="com.intellij.ide.bookmark.ui.tree.GroupListProvider"/>
     <bookmarksListProvider implementation="com.intellij.xdebugger.impl.breakpoints.BreakpointListProvider"/>
     <projectService serviceImplementation="com.intellij.ide.bookmark.BookmarksListProviderService"/>
+    <advancedSetting id="show.line.bookmarks.in.popup" default="true"
+                     bundle="messages.BookmarkBundle" groupKey="group.advanced.settings.bookmarks"/>
 
     <moduleRendererFactory implementation="com.intellij.ide.util.PlatformModuleRendererFactory" order="last" id="platform"/>
     <projectService serviceInterface="com.intellij.lang.injection.InjectedLanguageManager"