implement support for type definitions

This commit is contained in:
Alex Zenla
2025-07-20 19:28:01 -07:00
parent 5ac70d800e
commit f7ff896f81
19 changed files with 212 additions and 5 deletions

View File

@ -0,0 +1,15 @@
// GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.idea.psi.gen
import com.intellij.lang.ASTNode
import com.intellij.navigation.ItemPresentation
import gay.pizza.pork.idea.psi.PorkElementHelpers
import javax.swing.Icon
class NativeTypeDescriptorElement(node: ASTNode) : PorkElement(node) {
override fun getIcon(flags: Int): Icon? =
PorkElementHelpers.iconOf(this)
override fun getPresentation(): ItemPresentation? =
PorkElementHelpers.presentationOf(this)
}

View File

@ -43,7 +43,9 @@ object PorkElementFactory {
NodeType.Return -> ReturnElement(node)
NodeType.NoneLiteral -> NoneLiteralElement(node)
NodeType.NativeFunctionDescriptor -> NativeFunctionDescriptorElement(node)
NodeType.NativeTypeDescriptor -> NativeTypeDescriptorElement(node)
NodeType.IndexedBy -> IndexedByElement(node)
NodeType.TypeDefinition -> TypeDefinitionElement(node)
else -> ASTWrapperPsiElement(node)
}
}

View File

@ -0,0 +1,25 @@
// GENERATED CODE FROM PORK AST CODEGEN
package gay.pizza.pork.idea.psi.gen
import com.intellij.lang.ASTNode
import com.intellij.navigation.ItemPresentation
import com.intellij.psi.PsiElement
import gay.pizza.pork.idea.psi.PorkElementHelpers
import javax.swing.Icon
class TypeDefinitionElement(node: ASTNode) : PorkNamedElement(node) {
override fun getName(): String? =
PorkElementHelpers.nameOfNamedElement(this)
override fun setName(name: String): PsiElement =
PorkElementHelpers.setNameOfNamedElement(this, name)
override fun getNameIdentifier(): PsiElement? =
PorkElementHelpers.nameIdentifierOfNamedElement(this)
override fun getIcon(flags: Int): Icon? =
PorkElementHelpers.iconOf(this)
override fun getPresentation(): ItemPresentation? =
PorkElementHelpers.presentationOf(this)
}