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 Root: minecraft-dev/MinecraftDev (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