⁠
joseph burton: Add support for MixinExtras expressions (#2274 )
* Start on MixinExtras Expression language
* MEExpression color settings page
* MEExpression annotator
* MEExpression brace matcher and quote handler
* Switch LHS of MEExpression assignmentExpression to themselves be certain types of expression
* MEExpression language injection inside @Expression
* Fix formatting and licenses
* Add MIXINEXTRAS:EXPRESSION injection point and add @Expression annotation on completion
* Fix licenser errors
* Add new ME expression features
* Implement MixinExtras expression collect visitor
* Fix cast expressions
* Simple best-effort source matching for ME expressions
* Fix name expression source matching
* Fix MEName.isWildcard
* Fix MELitExpression source matching
* operationSign - operationTokenType
* Add built-in definitions
* Update MixinExtras
* Start with ME definition references
* Attempt to overhaul ME expression injection
* Some fixes to the new injection + navigation
* MixinExtras: Add handler signature support for expressions. (#2244 )
* Partially fix ME definition renaming
* Attempt to get inplace rename refactoring to work (it doesn't)
* MixinExtras: Use expression-suggested parameter names if they're present. (#2257 )
* Fix MEExpressionInjector. Rename refactoring works!
* Suppress deprecation warning
* ME expression `@Definition` find usages
* Fix/expressions int like types (#2261 )
* Mixin: Combine parameter and return type inspections.
* MixinExtras: Offer a choice between all valid int-like types.
* Mixin: Fix tests for handler signature inspection.
* Add simple keyword completion to ME expressions
* Why didn't my local ktlint tell me about these
* Store whether a declaration is a type in the ME PSI
* Add completions for items that already have a definition
* Extract some ME expression matching into its own class, and cache some more things
* Remove some debug...
* Start on MixinExtras Expression language
* MEExpression color settings page
* MEExpression annotator
* MEExpression brace matcher and quote handler
* Switch LHS of MEExpression assignmentExpression to themselves be certain types of expression
* MEExpression language injection inside @Expression
* Fix formatting and licenses
* Add MIXINEXTRAS:EXPRESSION injection point and add @Expression annotation on completion
* Fix licenser errors
* Add new ME expression features
* Implement MixinExtras expression collect visitor
* Fix cast expressions
* Simple best-effort source matching for ME expressions
* Fix name expression source matching
* Fix MEName.isWildcard
* Fix MELitExpression source matching
* operationSign - operationTokenType
* Add built-in definitions
* Update MixinExtras
* Start with ME definition references
* Attempt to overhaul ME expression injection
* Some fixes to the new injection + navigation
* MixinExtras: Add handler signature support for expressions. (#2244 )
* Partially fix ME definition renaming
* Attempt to get inplace rename refactoring to work (it doesn't)
* MixinExtras: Use expression-suggested parameter names if they're present. (#2257 )
* Fix MEExpressionInjector. Rename refactoring works!
* Suppress deprecation warning
* ME expression `@Definition` find usages
* Fix/expressions int like types (#2261 )
* Mixin: Combine parameter and return type inspections.
* MixinExtras: Offer a choice between all valid int-like types.
* Mixin: Fix tests for handler signature inspection.
* Add simple keyword completion to ME expressions
* Why didn't my local ktlint tell me about these
* Store whether a declaration is a type in the ME PSI
* Add completions for items that already have a definition
* Extract some ME expression matching into its own class, and cache some more things
* Remove some debug...
- [versions]
- coroutines = "1.6.4"
- junit = "5.9.0"
- junit-platform = "1.9.0"
- asm = "9.3"
- fuel = "2.3.1"
- [libraries]
- coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
- coroutines-jdk8 = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8", version.ref = "coroutines" }
- coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "coroutines" }
- mappingIo = "net.fabricmc:mapping-io:0.2.1"
- # GrammarKit
- jflex-lib = "org.jetbrains.idea:jflex:1.7.0-b7f882a"
- jflex-skeleton = "org.jetbrains.idea:jflex:1.7.0-c1fdf11"
- grammarKit = "org.jetbrains.idea:grammar-kit:1.5.1"
- # Gradle Tooling
- gradleToolingExtension = "com.jetbrains.intellij.gradle:gradle-tooling-extension:232-EAP-SNAPSHOT"
- annotations = "org.jetbrains:annotations:23.0.0"
- groovy = "org.codehaus.groovy:groovy-all:2.5.18"
- asm = { module = "org.ow2.asm:asm", version.ref = "asm" }
- asm-tree = { module = "org.ow2.asm:asm-tree", version.ref = "asm" }
- asm-analysis = { module = "org.ow2.asm:asm-analysis", version.ref = "asm" }
- fuel = { module = "com.github.kittinunf.fuel:fuel", version.ref = "fuel" }
- fuel-coroutines = { module = "com.github.kittinunf.fuel:fuel-coroutines", version.ref = "fuel" }
- # Testing
- test-mockJdk = "org.jetbrains.idea:mock-jdk:1.7-4d76c50"
- test-mixin = "org.spongepowered:mixin:0.8.5"
- test-spongeapi = "org.spongepowered:spongeapi:7.4.0"
- test-fabricloader = "net.fabricmc:fabric-loader:0.15.11"
- test-nbt = "com.demonwav.mcdev:all-types-nbt:1.0"
- junit-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" }
- junit-entine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" }
- junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junit-platform" }
- [bundles]
- coroutines = ["coroutines-core", "coroutines-jdk8", "coroutines-swing"]
- asm = ["asm", "asm-tree", "asm-analysis"]
- fuel = ["fuel", "fuel-coroutines"]
- [versions]
- coroutines = "1.6.4"
- junit = "5.9.0"
- junit-platform = "1.9.0"
- asm = "9.3"
- fuel = "2.3.1"
- [libraries]
- coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
- coroutines-jdk8 = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8", version.ref = "coroutines" }
- coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "coroutines" }
- mappingIo = "net.fabricmc:mapping-io:0.2.1"
- mixinExtras-expressions = "io.github.llamalad7:mixinextras-expressions:0.0.1"
- # GrammarKit
- jflex-lib = "org.jetbrains.idea:jflex:1.7.0-b7f882a"
- jflex-skeleton = "org.jetbrains.idea:jflex:1.7.0-c1fdf11"
- grammarKit = "org.jetbrains.idea:grammar-kit:1.5.1"
- # Gradle Tooling
- gradleToolingExtension = "com.jetbrains.intellij.gradle:gradle-tooling-extension:232-EAP-SNAPSHOT"
- annotations = "org.jetbrains:annotations:23.0.0"
- groovy = "org.codehaus.groovy:groovy-all:2.5.18"
- asm = { module = "org.ow2.asm:asm", version.ref = "asm" }
- asm-tree = { module = "org.ow2.asm:asm-tree", version.ref = "asm" }
- asm-analysis = { module = "org.ow2.asm:asm-analysis", version.ref = "asm" }
- fuel = { module = "com.github.kittinunf.fuel:fuel", version.ref = "fuel" }
- fuel-coroutines = { module = "com.github.kittinunf.fuel:fuel-coroutines", version.ref = "fuel" }
- # Testing
- test-mockJdk = "org.jetbrains.idea:mock-jdk:1.7-4d76c50"
- test-mixin = "org.spongepowered:mixin:0.8.5"
- test-spongeapi = "org.spongepowered:spongeapi:7.4.0"
- test-fabricloader = "net.fabricmc:fabric-loader:0.15.11"
- test-nbt = "com.demonwav.mcdev:all-types-nbt:1.0"
- junit-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" }
- junit-entine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" }
- junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junit-platform" }
- mixinExtras-common = "io.github.llamalad7:mixinextras-common:0.5.0-beta.1"
- [bundles]
- coroutines = ["coroutines-core", "coroutines-jdk8", "coroutines-swing"]
- asm = ["asm", "asm-tree", "asm-analysis"]
- fuel = ["fuel", "fuel-coroutines"]