tutorial:mixin_glossary
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tutorial:mixin_glossary [2025/10/11 14:52] – Misc. changes gauntrecluse | tutorial:mixin_glossary [2025/11/29 03:49] (current) – gauntrecluse | ||
|---|---|---|---|
| Line 20: | Line 20: | ||
| TODO notes should always describe what should be added there and should ideally be in //italics// | TODO notes should always describe what should be added there and should ideally be in //italics// | ||
| + | |||
| + | Example definition: | ||
| + | |||
| + | == Words! == | ||
| + | - First def | ||
| + | - Sub-def | ||
| + | * Note on First def | ||
| + | - Second def | ||
| + | * Note on Second def | ||
| + | |||
| + | === Referencing other definitions === | ||
| + | |||
| + | You can reference another definition on the page by referencing the definition' | ||
| + | [[# | ||
| + | [[#asm|The ASM definition]] - '' | ||
| + | |||
| ---- | ---- | ||
| - | :!: //This is under heavy construction and probably contains inaccuracies, | + | :!: //This is under heavy construction and probably contains inaccuracies, |
| ===== Definitions ===== | ===== Definitions ===== | ||
| - | ==== General/Misc. Terms ==== | + | ==== General |
| - | FIXME //The defs for lambda funs and anon classes are really barebone so far and should be improved.// | + | == Lambda |
| - | == Lambda | + | - Unnamed method |
| - | - A lambda function in Java is an unnamed function | + | * For a more thorough technical definition, see [[https:// |
| - | == Anonymous | + | == Anonymous |
| - | - An anonymous class is a nameless inner class declared and instantiated a single time. As with any inner class, anonymous classes must be mixed into specifically rather than outer classes. | + | - A nameless inner class declared and instantiated a single time. Anonymous classes may be declared within a method' |
| == Enclosing Method == | == Enclosing Method == | ||
| - | - When speaking of an anonymous class, | + | - The method containing the relevant subject, such as an [[# |
| + | == Encapsulating Class, Outer Class == | ||
| + | - The class containing the relevant subject, often an inner class such as an [[# | ||
| == Mixin, Mixin Class == | == Mixin, Mixin Class == | ||
| - When used as a single term in the form of a proper noun, references the Mixin Subsystem as a whole. Mixin is a subsystem with the primary purpose of allowing a developer to describe modifications to be made at runtime using code. See [[tutorial: | - When used as a single term in the form of a proper noun, references the Mixin Subsystem as a whole. Mixin is a subsystem with the primary purpose of allowing a developer to describe modifications to be made at runtime using code. See [[tutorial: | ||
| - "a Mixin" or "a Mixin Class" refers to classes or interfaces that are annotated with '' | - "a Mixin" or "a Mixin Class" refers to classes or interfaces that are annotated with '' | ||
| + | |||
| == Target Class == | == Target Class == | ||
| - A class with contents being targeted by the relevant Mixin Class' | - A class with contents being targeted by the relevant Mixin Class' | ||
| + | |||
| == Target Method == | == Target Method == | ||
| - | - A method within a target class being targeted by transformations from a Mixin class. | + | - A method within a [[# |
| == Merging, to merge == | == Merging, to merge == | ||
| - | - In the context of a Mixin class being merged | + | - In the context of Mixin, merging most of members and new interface implementations from the Mixin class into the target class's bytecode. |
| + | |||
| + | |||
| + | == Shadowing == | ||
| + | - Reference to usages of '' | ||
| + | |||
| + | == Double-Casting == | ||
| + | - For Mixins, references the practice of casting a '' | ||
| + | |||
| + | |||
| + | == Accessor == | ||
| + | - Reference to an [[tutorial: | ||
| + | - Reference to the '' | ||
| + | |||
| + | == Invoker == | ||
| + | - Reference to the '' | ||
| Line 66: | Line 102: | ||
| == MCDev == | == MCDev == | ||
| - References the IntelliJ Minecraft Development Plugin. It is very frequently used for Mixin development due to the added convenience, | - References the IntelliJ Minecraft Development Plugin. It is very frequently used for Mixin development due to the added convenience, | ||
| + | |||
| + | |||
| + | == ASM == | ||
| + | - Java framework used by Mixin and other tools to modify and manipulate JVM bytecode at runtime. | ||
| + | - In general programming contexts, may refer to Assembly. | ||
| + | |||
| ---- | ---- | ||
| Line 83: | Line 125: | ||
| == Field Descriptor == | == Field Descriptor == | ||
| - A field descriptor represents the type of a field, parameter, local variable, or value. | - A field descriptor represents the type of a field, parameter, local variable, or value. | ||
| - | - See the below table for possible field descriptors. | + | * See the below table for possible field descriptors. |
| ^ FieldType term ^ Type ^ | ^ FieldType term ^ Type ^ | ||
| Line 111: | Line 153: | ||
| == Injector == | == Injector == | ||
| - Also known as " | - Also known as " | ||
| + | * Typically only refers to injectors that can chain and do not remove the targeted operations, which excludes redirectors such as '' | ||
| == Handler method / Handler == | == Handler method / Handler == | ||
| - | - In the context of Mixins, a method decorated by an injector annotation and then merged into the target class. It is then invoked/ | + | - In Mixins, a method decorated by an injector annotation and then merged into the target class. It is then invoked/ |
| == Callback == | == Callback == | ||
| - | - A series of injected instructions | + | - A series of injected instructions |
| + | |||
| + | |||
| + | == CallbackInfo == | ||
| + | - An argument passed to an injector allowing to interact with the callback instructions. Notably, it may be " | ||
| + | * If the target method returns a value, the injector will instead be passed a '' | ||
| + | * See the JavaDocs for the [[https:// | ||
| == Injection Point == | == Injection Point == | ||
| - | - An injection point is the primary value used by Mixin to determine where to insert the callback instructions for a given injector. Injection points are typically passed in the '' | + | - An injection point is the primary value used by Mixin to determine where to insert the callback instructions for a given injector. Injection points are typically passed in the '' |
| - The injection point " | - The injection point " | ||
| - In some cases, injection point may refer to the specific point an injector' | - In some cases, injection point may refer to the specific point an injector' | ||
| + | |||
| + | |||
| + | == WrapOp, @WrapOperation == | ||
| + | - Injector from MixinExtras, | ||
| + | * See [[https:// | ||
| + | |||
| + | |||
| + | == MEV, @ModifyExpressionValue == | ||
| + | - Injector from MixinExtras, | ||
| + | * See [[https:// | ||
| + | |||
| + | |||
| + | == MRV, @ModifyReturnValue == | ||
| + | - Injector from Mixinextras, | ||
| + | * See [[https:// | ||
| + | |||
| + | |||
| + | == Inject == | ||
| + | - (Verb) To use a Mixin injector to add to or modify existing operations. | ||
| + | - Reference to the '' | ||
| + | |||
| + | |||
| + | == Local == | ||
| + | - (General programming) Value confined to the relevant scope. | ||
| + | - When working with Mixins, the relevant scope will be the target method and its locals. | ||
| + | - Reference to the '' | ||
| + | * See the [[https:// | ||
| + | |||
| + | == Capturing Locals == | ||
| + | - The process of using [[# | ||
| + | |||
| + | |||
| + | == Cancel, Cancellable == | ||
| + | - (Verb) In the context of injectors, means to cancel the remaining operations of the target method. | ||
| + | - (Annotation) Reference to the '' | ||
| + | * See the [[https:// | ||
| + | |||
| + | |||
| + | == Share, Sharing == | ||
| + | - '' | ||
| + | * See the [[https:// | ||
| + | |||
| ---- | ---- | ||
| + | |||
| + | ==== Targeting Tools ==== | ||
| + | Outside of [[# | ||
| + | |||
| + | |||
| + | == Brittle == | ||
| + | - A " | ||
| + | |||
| + | |||
| + | == Slice, Slicing == | ||
| + | - Reference to the '' | ||
| + | |||
| + | |||
| + | == Expressions == | ||
| + | - Added in MixinExtras '' | ||
| + | - To "use an expression" | ||
| + | * See [[https:// | ||
| + | |||
| + | == MixinExtras Flowchart == | ||
| + | - An IDE feature added by the [# | ||
| + | |||
| + | == @Definition == | ||
| + | - In the context of [[# | ||
| + | |||
| + | == Wildcard == | ||
| + | - In the context of Expressions, | ||
| + | |||
| + | |||
| + | == Ordinal == | ||
| + | - A discriminator which, between all valid targets once other filters and discriminators are applied, uses a zero-indexed value to select one of the remaining targets for the injector to target. | ||
| + | * Ordinals are generally a more [[# | ||
tutorial/mixin_glossary.1760194352.txt.gz · Last modified: 2025/10/11 14:52 by gauntrecluse