File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed
src/main/kotlin/com/github/xepozz/php_opcodes_language/language Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change 11package com.github.xepozz.php_opcodes_language.language
22
3+ import com.github.xepozz.php_opcodes_language.language.psi.PHPOpBlock
34import com.intellij.lang.ASTNode
45import com.intellij.lang.folding.FoldingBuilderEx
56import com.intellij.lang.folding.FoldingDescriptor
67import com.intellij.openapi.editor.Document
78import com.intellij.openapi.project.DumbAware
9+ import com.intellij.openapi.util.TextRange
810import com.intellij.psi.PsiElement
11+ import com.intellij.psi.util.PsiTreeUtil
912
1013class PHPOpFoldingBuilder : FoldingBuilderEx (), DumbAware {
11- override fun buildFoldRegions (root : PsiElement , document : Document , quick : Boolean ) = emptyArray<FoldingDescriptor >()
14+ override fun buildFoldRegions (root : PsiElement , document : Document , quick : Boolean ) =
15+ collectFoldingBlocks(root).toTypedArray()
16+
17+ private fun collectFoldingBlocks (element : PsiElement ) =
18+ PsiTreeUtil
19+ .findChildrenOfType(element, PHPOpBlock ::class .java)
20+ .map {
21+ FoldingDescriptor (
22+ it.node,
23+ TextRange (it.blockName.textRange.endOffset + 1 , it.textRange.endOffset)
24+ )
25+ }
1226
1327 override fun getPlaceholderText (node : ASTNode ) = " { ... }"
1428
You can’t perform that action at this time.
0 commit comments