Skip to content

Commit

Permalink
feat: fold method body
Browse files Browse the repository at this point in the history
  • Loading branch information
yjl9903 committed Oct 17, 2023
1 parent 395970a commit e66f452
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

- Support invoke dynamic stmt
- Support monitor stmts
- Fold method body

## [0.1.2] - 2023-10-16

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package pascal.taie.intellij.tir.editing

import com.intellij.lang.ASTNode
import com.intellij.lang.folding.FoldingBuilderEx
import com.intellij.lang.folding.FoldingDescriptor
import com.intellij.openapi.editor.Document
import com.intellij.openapi.project.DumbAware
import com.intellij.psi.PsiElement
import com.intellij.psi.SyntaxTraverser
import pascal.taie.intellij.tir.syntax.psi.TirMethodBody

class TirFoldingBuilder : FoldingBuilderEx(), DumbAware {
override fun buildFoldRegions(
root: PsiElement, document: Document, quick: Boolean
) = SyntaxTraverser
.psiTraverser(root)
.filter { it is TirMethodBody }
.map { TirFoldingDescriptor(it, "{…}") }
.toList().toTypedArray()

override fun getPlaceholderText(node: ASTNode) = ""

override fun isCollapsedByDefault(node: ASTNode) = false

class TirFoldingDescriptor(element: PsiElement, private val holder: String) :
FoldingDescriptor(element.node, element.textRange) {
override fun getPlaceholderText() = holder
}
}
3 changes: 3 additions & 0 deletions src/main/resources/META-INF/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@
<lang.syntaxHighlighterFactory
language="tir"
implementationClass="pascal.taie.intellij.tir.highlight.TirSyntaxHighlighterFactory"/>
<lang.foldingBuilder
language="tir"
implementationClass="pascal.taie.intellij.tir.editing.TirFoldingBuilder"/>
<additionalTextAttributes scheme="Darcula" file="/colorSchemes/tir.xml"/>
<additionalTextAttributes scheme="Default" file="/colorSchemes/tir.xml"/>
<colorSettingsPage
Expand Down

0 comments on commit e66f452

Please sign in to comment.