Loading...
Comment:
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...
Status: all builds with this change have finished
Revision: 6b0471e93679cb6cd2b0d1d9c39409c1cbf811ca VCS Roots: minecraft-dev/MinecraftDev (Git), minecraft-dev/MinecraftDev Nightly (Git)
Parent revisions: 85e493a9ccd22882fa306b17b043e781b727ae1f  
User: Unknown (none of TeamCity users defined joseph burton username in their VCS username settings)
×

Edit change description

Here you can change the description in TeamCity only. You may consider changing it in the VCS as well, to avoid an ambiguity and inconsistency.

Cancel
Changed: 128 files (83 added, 45 edited) in
edited build.gradle.kts
edited gradle/libs.versions.toml
added mixin-test-data/src/main/java/com/demonwav/mcdev/mixintestdata/meExpression/MEExpressionTestData.java
added src/main/grammars/MEExpressionLexer.flex
added src/main/grammars/MEExpressionParser.bnf
edited src/main/kotlin/MinecraftConfigurable.kt
added src/main/kotlin/MinecraftProjectConfigurable.kt
added src/main/kotlin/MinecraftProjectSettings.kt
edited src/main/kotlin/MinecraftSettings.kt
edited src/main/kotlin/asset/MCDevBundle.kt
edited src/main/kotlin/nbt/lang/colors/NbttColorSettingsPage.kt
edited src/main/kotlin/platform/mixin/action/GenerateShadowAction.kt
edited src/main/kotlin/platform/mixin/completion/MixinCompletionConfidence.kt
added src/main/kotlin/platform/mixin/expression/MEDefinitionFoldingBuilder.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionAnnotator.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionBraceMatcher.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionColorSettingsPage.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionCompletionContributor.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionCompletionUtil.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionElementFactory.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionFileType.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionInjector.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionLanguage.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionLexerAdapter.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionMatchUtil.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionParserDefinition.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionQuoteHandler.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionRefactoringSupport.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionService.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionSyntaxHighlighter.kt
added src/main/kotlin/platform/mixin/expression/MEExpressionTypedHandlerDelegate.kt
added src/main/kotlin/platform/mixin/expression/MEFlowContext.kt
added src/main/kotlin/platform/mixin/expression/MESourceMatchContext.kt
added src/main/kotlin/platform/mixin/expression/psi/MEExpressionElementType.kt
added src/main/kotlin/platform/mixin/expression/psi/MEExpressionFile.kt
added src/main/kotlin/platform/mixin/expression/psi/MEExpressionParserUtil.kt
added src/main/kotlin/platform/mixin/expression/psi/MEExpressionTokenSets.kt
added src/main/kotlin/platform/mixin/expression/psi/MEExpressionTokenType.kt
added src/main/kotlin/platform/mixin/expression/psi/MEMatchableElement.kt
added src/main/kotlin/platform/mixin/expression/psi/MENameElementManipulator.kt
added src/main/kotlin/platform/mixin/expression/psi/MEPsiUtil.kt
added src/main/kotlin/platform/mixin/expression/psi/MERecursiveWalkingVisitor.kt
added src/main/kotlin/platform/mixin/expression/psi/METypeUtil.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/MEArgumentsMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/MEArrayAccessExpressionMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/MEBinaryExpressionMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/MECastExpressionMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/MEDeclarationItemMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/MELitExpressionMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/MENameMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/MENewExpressionMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/METypeMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/MEUnaryExpressionMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEArgumentsImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEArrayAccessExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEAssignStatementImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEBinaryExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEBoundReferenceExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MECapturingExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MECastExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEClassConstantExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEConstructorReferenceExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEDeclarationImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEDeclarationItemImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEExpressionStatementImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEFreeMethodReferenceExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MELitExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEMemberAccessExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEMethodCallExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MENameExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MENameImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MENewExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEParenthesizedExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEReturnStatementImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEStatementImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEStaticMethodCallExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MESuperCallExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/METhisExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/METhrowStatementImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/METypeImplMixin.kt
added src/main/kotlin/platform/mixin/expression/psi/mixins/impl/MEUnaryExpressionImplMixin.kt
added src/main/kotlin/platform/mixin/expression/reference/MEDefinitionReference.kt
added src/main/kotlin/platform/mixin/expression/reference/MEExpressionFindUsagesProvider.kt
edited src/main/kotlin/platform/mixin/folding/MixinFoldingOptionsProvider.kt
edited src/main/kotlin/platform/mixin/folding/MixinFoldingSettings.kt
edited src/main/kotlin/platform/mixin/handlers/InjectAnnotationHandler.kt
edited src/main/kotlin/platform/mixin/handlers/InjectorAnnotationHandler.kt
edited src/main/kotlin/platform/mixin/handlers/ModifyArgHandler.kt
edited src/main/kotlin/platform/mixin/handlers/ModifyArgsHandler.kt
edited src/main/kotlin/platform/mixin/handlers/ModifyConstantHandler.kt
edited src/main/kotlin/platform/mixin/handlers/ModifyVariableHandler.kt
edited src/main/kotlin/platform/mixin/handlers/RedirectInjectorHandler.kt
edited src/main/kotlin/platform/mixin/handlers/injectionPoint/AtResolver.kt
edited src/main/kotlin/platform/mixin/handlers/injectionPoint/InjectionPoint.kt
edited src/main/kotlin/platform/mixin/handlers/injectionPoint/LoadInjectionPoint.kt
added src/main/kotlin/platform/mixin/handlers/mixinextras/ExpressionInjectionPoint.kt
edited src/main/kotlin/platform/mixin/handlers/mixinextras/MixinExtrasInjectorAnnotationHandler.kt
edited src/main/kotlin/platform/mixin/handlers/mixinextras/ModifyExpressionValueHandler.kt
edited src/main/kotlin/platform/mixin/handlers/mixinextras/ModifyReceiverHandler.kt
edited src/main/kotlin/platform/mixin/handlers/mixinextras/ModifyReturnValueHandler.kt
added src/main/kotlin/platform/mixin/handlers/mixinextras/TargetInsn.kt
edited src/main/kotlin/platform/mixin/handlers/mixinextras/WrapMethodHandler.kt
edited src/main/kotlin/platform/mixin/handlers/mixinextras/WrapOperationHandler.kt
edited src/main/kotlin/platform/mixin/handlers/mixinextras/WrapWithConditionHandler.kt
edited src/main/kotlin/platform/mixin/inspection/injector/InvalidInjectorMethodSignatureInspection.kt
edited src/main/kotlin/platform/mixin/inspection/injector/MethodSignature.kt
edited src/main/kotlin/platform/mixin/inspection/suppress/MixinClassCastInspectionSuppressor.kt
edited src/main/kotlin/platform/mixin/reference/MixinReferenceContributor.kt
edited src/main/kotlin/platform/mixin/reference/MixinSelectors.kt
added src/main/kotlin/platform/mixin/reference/target/DefinitionReferenceGTDHandler.kt
added src/main/kotlin/platform/mixin/reference/target/DefinitionReferences.kt
edited src/main/kotlin/platform/mixin/util/AsmDfaUtil.kt
edited src/main/kotlin/platform/mixin/util/AsmUtil.kt
edited src/main/kotlin/platform/mixin/util/LocalInfo.kt
edited src/main/kotlin/platform/mixin/util/LocalVariables.kt
edited src/main/kotlin/platform/mixin/util/MixinConstants.kt
added src/main/kotlin/platform/mixin/util/UnsafeCachedValueCapture.kt
added src/main/kotlin/util/BeforeOrAfter.kt
edited src/main/kotlin/util/MemberReference.kt
edited src/main/kotlin/util/bytecode-utils.kt
edited src/main/kotlin/util/psi-utils.kt
edited src/main/resources/META-INF/plugin.xml
edited src/main/resources/messages/MinecraftDevelopment.properties
edited src/test/kotlin/platform/mixin/BaseMixinTest.kt
edited src/test/kotlin/platform/mixin/InvalidInjectorMethodSignatureFixTest.kt
edited src/test/kotlin/platform/mixin/InvalidInjectorMethodSignatureInspectionTest.kt
added src/test/kotlin/platform/mixin/expression/MEExpressionCompletionTest.kt
×

Add build comment

Cancel
×

Mute test

×

×

Server communication failure

Server is unavailable

Server stopped or communication with the server is not possible due to network failure.

Server shutdown started.

Please relogin to continue your work.

×

Run Custom Build

×

TODO

Loading related builds...
Cancel
×

Responsibility

×

Edit tags

Cancel
×

Loading...

×

Are you sure?

Cancel
×

Please type to confirm.
Cancel