generated from JetBrains/intellij-platform-plugin-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Peva Blanchard
committed
Jan 27, 2024
1 parent
21bdf11
commit 712e71a
Showing
19 changed files
with
407 additions
and
101 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
51 changes: 51 additions & 0 deletions
51
plugin/src/main/kotlin/ch/kleis/lcaac/plugin/language/psi/mixin/PsiBlockForEachMixin.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
package ch.kleis.lcaac.plugin.language.psi.mixin | ||
|
||
import ch.kleis.lcaac.plugin.language.psi.type.PsiBlockForEach | ||
import ch.kleis.lcaac.plugin.psi.* | ||
import com.intellij.extapi.psi.ASTWrapperPsiElement | ||
import com.intellij.lang.ASTNode | ||
import com.intellij.psi.PsiElement | ||
import com.intellij.psi.ResolveState | ||
import com.intellij.psi.scope.PsiScopeProcessor | ||
import com.intellij.psi.util.PsiTreeUtil | ||
|
||
abstract class PsiBlockForEachMixin(node: ASTNode) : ASTWrapperPsiElement(node), PsiBlockForEach { | ||
override fun getDataRef(): LcaDataRef { | ||
return PsiTreeUtil.getChildrenOfTypeAsList(this, LcaDataRef::class.java).elementAt(0) | ||
} | ||
|
||
override fun getValue(): LcaDataSourceExpression { | ||
return PsiTreeUtil.getChildrenOfTypeAsList(this, LcaDataSourceExpression::class.java).elementAt(1) | ||
} | ||
|
||
override fun getName(): String { | ||
return getDataRef().name | ||
} | ||
|
||
override fun setName(name: String): PsiElement { | ||
getDataRef().name = name | ||
return this | ||
} | ||
|
||
override fun getNameIdentifier(): PsiElement? { | ||
return getDataRef().nameIdentifier | ||
} | ||
|
||
override fun processDeclarations( | ||
processor: PsiScopeProcessor, | ||
state: ResolveState, | ||
lastParent: PsiElement?, | ||
place: PsiElement | ||
): Boolean { | ||
for (block in getVariablesList()) { | ||
if (!processor.execute(block, state)) { | ||
return false | ||
} | ||
} | ||
return processor.execute(this, state) | ||
} | ||
|
||
override fun getVariablesList(): Collection<LcaVariables> { | ||
return PsiTreeUtil.getChildrenOfTypeAsList(this, LcaVariables::class.java) | ||
} | ||
} |
32 changes: 32 additions & 0 deletions
32
plugin/src/main/kotlin/ch/kleis/lcaac/plugin/language/psi/mixin/PsiColumnDefinitionMixin.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package ch.kleis.lcaac.plugin.language.psi.mixin | ||
|
||
import ch.kleis.lcaac.plugin.psi.LcaColumnDefinition | ||
import ch.kleis.lcaac.plugin.psi.LcaColumnRef | ||
import ch.kleis.lcaac.plugin.psi.LcaDataExpression | ||
import com.intellij.extapi.psi.ASTWrapperPsiElement | ||
import com.intellij.lang.ASTNode | ||
import com.intellij.psi.PsiElement | ||
import com.intellij.psi.util.PsiTreeUtil | ||
|
||
abstract class PsiColumnDefinitionMixin(node: ASTNode) : ASTWrapperPsiElement(node), LcaColumnDefinition { | ||
override fun getColumnRef(): LcaColumnRef { | ||
return PsiTreeUtil.getChildrenOfTypeAsList(this, LcaColumnRef::class.java).elementAt(0) | ||
} | ||
|
||
override fun getValue(): LcaDataExpression { | ||
return PsiTreeUtil.getChildrenOfTypeAsList(this, LcaDataExpression::class.java).elementAt(1) | ||
} | ||
|
||
override fun getName(): String { | ||
return getColumnRef().name | ||
} | ||
|
||
override fun setName(name: String): PsiElement { | ||
getColumnRef().name = name | ||
return this | ||
} | ||
|
||
override fun getNameIdentifier(): PsiElement? { | ||
return getColumnRef().nameIdentifier | ||
} | ||
} |
18 changes: 18 additions & 0 deletions
18
plugin/src/main/kotlin/ch/kleis/lcaac/plugin/language/psi/mixin/ref/PsiColumnRefMixin.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package ch.kleis.lcaac.plugin.language.psi.mixin.ref | ||
|
||
import ch.kleis.lcaac.plugin.language.psi.reference.ColumnReference | ||
import ch.kleis.lcaac.plugin.language.psi.reference.DataReference | ||
import ch.kleis.lcaac.plugin.language.psi.type.ref.PsiColumnRef | ||
import ch.kleis.lcaac.plugin.language.psi.type.ref.PsiDataRef | ||
import com.intellij.extapi.psi.ASTWrapperPsiElement | ||
import com.intellij.lang.ASTNode | ||
|
||
abstract class PsiColumnRefMixin(node: ASTNode) : ASTWrapperPsiElement(node), PsiColumnRef { | ||
override fun getReference(): ColumnReference { | ||
return super<PsiColumnRef>.getReference() | ||
} | ||
|
||
override fun getName(): String { | ||
return super<PsiColumnRef>.getName() | ||
} | ||
} |
13 changes: 13 additions & 0 deletions
13
plugin/src/main/kotlin/ch/kleis/lcaac/plugin/language/psi/reference/ColumnReference.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package ch.kleis.lcaac.plugin.language.psi.reference | ||
|
||
import ch.kleis.lcaac.plugin.language.psi.type.ref.PsiColumnRef | ||
import com.intellij.psi.PsiPolyVariantReferenceBase | ||
import com.intellij.psi.ResolveResult | ||
|
||
class ColumnReference( | ||
element: PsiColumnRef | ||
): PsiPolyVariantReferenceBase<PsiColumnRef>(element) { | ||
override fun multiResolve(incompleteCode: Boolean): Array<ResolveResult> { | ||
TODO("Not yet implemented") | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
16 changes: 16 additions & 0 deletions
16
plugin/src/main/kotlin/ch/kleis/lcaac/plugin/language/psi/type/PsiBlockForEach.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package ch.kleis.lcaac.plugin.language.psi.type | ||
|
||
import ch.kleis.lcaac.plugin.language.psi.type.ref.PsiDataRef | ||
import ch.kleis.lcaac.plugin.psi.LcaDataSourceExpression | ||
import ch.kleis.lcaac.plugin.psi.LcaVariables | ||
import com.intellij.psi.PsiNameIdentifierOwner | ||
|
||
interface PsiBlockForEach : PsiNameIdentifierOwner { | ||
override fun getName(): String | ||
|
||
fun getDataRef(): PsiDataRef | ||
|
||
fun getValue(): LcaDataSourceExpression | ||
|
||
fun getVariablesList(): Collection<LcaVariables> | ||
} |
11 changes: 11 additions & 0 deletions
11
plugin/src/main/kotlin/ch/kleis/lcaac/plugin/language/psi/type/PsiColumnDefinition.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package ch.kleis.lcaac.plugin.language.psi.type | ||
|
||
import ch.kleis.lcaac.plugin.language.psi.type.ref.PsiColumnRef | ||
import ch.kleis.lcaac.plugin.psi.LcaDataExpression | ||
import com.intellij.psi.PsiNameIdentifierOwner | ||
|
||
interface PsiColumnDefinition : PsiNameIdentifierOwner { | ||
override fun getName(): String | ||
fun getColumnRef(): PsiColumnRef | ||
fun getValue(): LcaDataExpression | ||
} |
10 changes: 10 additions & 0 deletions
10
plugin/src/main/kotlin/ch/kleis/lcaac/plugin/language/psi/type/ref/PsiColumnRef.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package ch.kleis.lcaac.plugin.language.psi.type.ref | ||
|
||
import ch.kleis.lcaac.plugin.language.psi.reference.ColumnReference | ||
import ch.kleis.lcaac.plugin.language.psi.type.trait.PsiUIDOwner | ||
|
||
interface PsiColumnRef : PsiUIDOwner { | ||
override fun getReference(): ColumnReference { | ||
return ColumnReference(this) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.