From 92c061f30c8e857b4ba46db1d663afdb787bc233 Mon Sep 17 00:00:00 2001 From: "Alexander.Kirsanov" Date: Thu, 19 Apr 2018 01:09:21 +0300 Subject: [PATCH] Allow to treat FoldRegion as belonging to a doc comment without having psi (RIDER-5092) --- .../impl/CollapseExpandDocCommentsHandler.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/CollapseExpandDocCommentsHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/CollapseExpandDocCommentsHandler.java index 02a8bedb3593..9f120b391bd5 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/CollapseExpandDocCommentsHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/CollapseExpandDocCommentsHandler.java @@ -20,14 +20,21 @@ import com.intellij.codeInsight.folding.CodeFoldingManager; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.FoldRegion; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.Key; import com.intellij.psi.PsiDocCommentBase; -import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class CollapseExpandDocCommentsHandler implements CodeInsightActionHandler { + + private static final Key DOC_COMMENT_MARK = Key.create("explicit.fold.region.doc.comment.mark"); + + public static void setDocCommentMark(@NotNull FoldRegion region, boolean value) { + region.putUserData(DOC_COMMENT_MARK, value); + } + private final boolean myExpand; public CollapseExpandDocCommentsHandler(boolean isExpand) { @@ -42,7 +49,7 @@ public class CollapseExpandDocCommentsHandler implements CodeInsightActionHandle Runnable processor = () -> { for (FoldRegion region : allFoldRegions) { PsiElement element = EditorFoldingInfo.get(editor).getPsiElement(region); - if (element instanceof PsiDocCommentBase) { + if (element instanceof PsiDocCommentBase || Boolean.TRUE.equals(region.getUserData(DOC_COMMENT_MARK))) { region.setExpanded(myExpand); } }