- <!--
- Minecraft Development for IntelliJ
- https://mcdev.io/
- Copyright (C) 2024 minecraft-dev
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published
- by the Free Software Foundation, version 3.0 only.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see https://www.gnu.org/licenses/.
- -->
- <idea-plugin require-restart="true">
- <depends>com.intellij.modules.java</depends>
- <depends>org.jetbrains.idea.maven</depends>
- <depends>com.intellij.gradle</depends>
- <depends optional="true" config-file="mcdev-kotlin.xml">org.jetbrains.kotlin</depends>
- <depends>org.intellij.groovy</depends>
- <depends>com.intellij.properties</depends>
- <depends>ByteCodeViewer</depends>
- <depends optional="true" config-file="mcdev-toml.xml">org.toml.lang</depends>
- <depends optional="true" config-file="mcdev-yaml.xml">org.jetbrains.plugins.yaml</depends>
- <id>com.demonwav.minecraft-dev</id>
- <name>Minecraft Development</name>
- <vendor email="[email protected]" url="https://mcdev.io/">minecraft-dev</vendor>
- <description><![CDATA[
- Provides first-class support for every major Java Minecraft modding or plugin development platform, including:
- <ul>
- <li>Bukkit</li>
- <li>Spigot</li>
- <li>Paper</li>
- <li>Sponge</li>
- <li>Forge</li>
- <li>NeoForge</li>
- <li>Fabric</li>
- <li>Architectury</li>
- <li>Velocity</li>
- <li>BungeeCord</li>
- </ul>
- Also includes additional features supporting MCP mappings and Mixins for mod development. This plugin also
- includes a text-based NBT editor.
- ]]></description>
- <resource-bundle>messages.MinecraftDevelopment</resource-bundle>
- <change-notes><![CDATA[
- Please report issues to <a href="https://github.com/minecraft-dev/MinecraftDev/issues">the issue tracker</a>!
- ]]>
- </change-notes>
- <extensionPoints>
- <extensionPoint name="platformTypeWizard"
- interface="com.demonwav.mcdev.creator.platformtype.PlatformTypeStep$Factory" dynamic="true"/>
- <extensionPoint name="modPlatformWizard"
- interface="com.demonwav.mcdev.creator.platformtype.ModPlatformStep$Factory" dynamic="true"/>
- <extensionPoint name="pluginPlatformWizard"
- interface="com.demonwav.mcdev.creator.platformtype.PluginPlatformStep$Factory" dynamic="true"/>
- <extensionPoint name="bukkitPlatformWizard"
- interface="com.demonwav.mcdev.platform.bukkit.creator.BukkitPlatformStep$Factory"
- dynamic="true"/>
- <extensionPoint name="bungeePlatformWizard"
- interface="com.demonwav.mcdev.platform.bungeecord.creator.BungeePlatformStep$Factory"
- dynamic="true"/>
- <extensionPoint name="projectSetupFinalizer"
- interface="com.demonwav.mcdev.creator.ProjectSetupFinalizer$Factory" dynamic="true"/>
- <extensionPoint name="buildSystemWizard"
- interface="com.demonwav.mcdev.creator.buildsystem.AbstractBuildSystemStep$Factory"
- dynamic="true"/>
- <extensionPoint name="buildSystemSupport"
- beanClass="com.demonwav.mcdev.creator.buildsystem.BuildSystemSupportEntry" dynamic="true">
- <with attribute="implementation" implements="com.demonwav.mcdev.creator.buildsystem.BuildSystemSupport"/>
- </extensionPoint>
- <extensionPoint name="gradleFileType" interface="com.demonwav.mcdev.creator.buildsystem.GradleFile$Type"
- dynamic="true"/>
- <extensionPoint name="creatorPropertyType"
- beanClass="com.demonwav.mcdev.creator.custom.types.CreatorPropertyFactoryBean" dynamic="true">
- <with attribute="implementation"
- implements="com.demonwav.mcdev.creator.custom.types.CreatorPropertyFactory"/>
- </extensionPoint>
- <extensionPoint name="creatorTemplateProvider"
- beanClass="com.demonwav.mcdev.creator.custom.providers.TemplateProviderBean" dynamic="true">
- <with attribute="implementation" implements="com.demonwav.mcdev.creator.custom.providers.TemplateProvider"/>
- </extensionPoint>
- <extensionPoint name="creatorFinalizer"
- beanClass="com.demonwav.mcdev.creator.custom.finalizers.CreatorFinalizerBean" dynamic="true">
- <with attribute="implementation"
- implements="com.demonwav.mcdev.creator.custom.finalizers.CreatorFinalizer"/>
- </extensionPoint>
- <extensionPoint name="mixinSelectorParser" interface="com.demonwav.mcdev.platform.mixin.reference.MixinSelectorParser" dynamic="true"/>
- <extensionPoint name="mixinAnnotationHandler" beanClass="com.demonwav.mcdev.platform.mixin.handlers.MixinAnnotationHandlerInfo" dynamic="true">
- <with attribute="implementation" implements="com.demonwav.mcdev.platform.mixin.handlers.MixinAnnotationHandler"/>
- </extensionPoint>
- <extensionPoint name="injectionPoint"
- beanClass="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.InjectionPointInfo"
- dynamic="true">
- <with attribute="implementation"
- implements="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.InjectionPoint"/>
- </extensionPoint>
- <extensionPoint name="injectionPointAnnotation"
- beanClass="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.InjectionPointAnnotation"
- dynamic="true"/>
- <extensionPoint name="eventGenHelper" beanClass="com.intellij.lang.LanguageExtensionPoint" dynamic="true">
- <with attribute="implementationClass" implements="com.demonwav.mcdev.insight.generation.EventGenHelper"/>
- </extensionPoint>
- </extensionPoints>
- <extensions defaultExtensionNs="com.demonwav.minecraft-dev">
- <platformTypeWizard implementation="com.demonwav.mcdev.creator.platformtype.ModPlatformStep$TypeFactory"/>
- <platformTypeWizard implementation="com.demonwav.mcdev.creator.platformtype.PluginPlatformStep$TypeFactory"/>
- <modPlatformWizard implementation="com.demonwav.mcdev.platform.forge.creator.ForgePlatformStep$Factory"/>
- <modPlatformWizard implementation="com.demonwav.mcdev.platform.neoforge.creator.NeoForgePlatformStep$Factory"/>
- <modPlatformWizard implementation="com.demonwav.mcdev.platform.fabric.creator.FabricPlatformStep$Factory"/>
- <modPlatformWizard
- implementation="com.demonwav.mcdev.platform.architectury.creator.ArchitecturyPlatformStep$Factory"/>
- <pluginPlatformWizard implementation="com.demonwav.mcdev.platform.sponge.creator.SpongePlatformStep$Factory"/>
- <pluginPlatformWizard
- implementation="com.demonwav.mcdev.platform.bukkit.creator.BukkitPlatformStep$PlatformFactory"/>
- <pluginPlatformWizard
- implementation="com.demonwav.mcdev.platform.velocity.creator.VelocityPlatformStep$Factory"/>
- <pluginPlatformWizard
- implementation="com.demonwav.mcdev.platform.bungeecord.creator.BungeePlatformStep$PlatformFactory"/>
- <bukkitPlatformWizard implementation="com.demonwav.mcdev.platform.bukkit.creator.PaperPlatformStep$Factory"/>
- <bukkitPlatformWizard implementation="com.demonwav.mcdev.platform.bukkit.creator.SpigotPlatformStep$Factory"/>
- <bungeePlatformWizard
- implementation="com.demonwav.mcdev.platform.bungeecord.creator.WaterfallPlatformStep$Factory"/>
- <bungeePlatformWizard
- implementation="com.demonwav.mcdev.platform.bungeecord.creator.BungeeMainPlatformStep$Factory"/>
- <projectSetupFinalizer implementation="com.demonwav.mcdev.creator.JdkProjectSetupFinalizer$Factory"/>
- <buildSystemWizard implementation="com.demonwav.mcdev.creator.buildsystem.GradleBuildSystem"/>
- <buildSystemWizard implementation="com.demonwav.mcdev.creator.buildsystem.MavenBuildSystem"/>
- <buildSystemSupport platform="Forge" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.forge.creator.ForgeGradleSupport"/>
- <buildSystemSupport platform="NeoForge" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.neoforge.creator.NeoForgeGradleSupport"/>
- <buildSystemSupport platform="Fabric" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.fabric.creator.FabricGradleSupport"/>
- <buildSystemSupport platform="Architectury" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.architectury.creator.ArchitecturyGradleSupport"/>
- <buildSystemSupport platform="Sponge" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.sponge.creator.SpongeGradleSupport"/>
- <buildSystemSupport platform="Sponge" buildSystem="Maven"
- implementation="com.demonwav.mcdev.platform.sponge.creator.SpongeMavenSupport"/>
- <buildSystemSupport platform="Bukkit" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.bukkit.creator.BukkitGradleSupport"/>
- <buildSystemSupport platform="Bukkit" buildSystem="Maven"
- implementation="com.demonwav.mcdev.platform.bukkit.creator.BukkitMavenSupport"/>
- <buildSystemSupport platform="Velocity" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.velocity.creator.VelocityGradleSupport"/>
- <buildSystemSupport platform="Velocity" buildSystem="Maven"
- implementation="com.demonwav.mcdev.platform.velocity.creator.VelocityMavenSupport"/>
- <buildSystemSupport platform="BungeeCord" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.bungeecord.creator.BungeeGradleSupport"/>
- <buildSystemSupport platform="BungeeCord" buildSystem="Maven"
- implementation="com.demonwav.mcdev.platform.bungeecord.creator.BungeeMavenSupport"/>
- <gradleFileType implementation="com.demonwav.mcdev.creator.buildsystem.GroovyGradleFile$Type"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.ArchitecturyVersionsCreatorProperty$Factory"
- type="architectury_versions"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.BooleanCreatorProperty$Factory"
- type="boolean"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.BuildSystemCoordinatesCreatorProperty$Factory"
- type="build_system_coordinates"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.ClassFqnCreatorProperty$Factory"
- type="class_fqn"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.FabricVersionsCreatorProperty$Factory"
- type="fabric_versions"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.ForgeVersionsCreatorProperty$Factory"
- type="forge_versions"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.InlineStringListCreatorProperty$Factory"
- type="inline_string_list"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.IntegerCreatorProperty$Factory"
- type="integer"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.JdkCreatorProperty$Factory"
- type="jdk"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.LicenseCreatorProperty$Factory"
- type="license"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.MavenArtifactVersionCreatorProperty$Factory"
- type="maven_artifact_version"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.NeoForgeVersionsCreatorProperty$Factory"
- type="neoforge_versions"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.ParchmentCreatorProperty$Factory"
- type="parchment"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.SemanticVersionCreatorProperty$Factory"
- type="semantic_version"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.StringCreatorProperty$Factory"
- type="string"/>
- <creatorTemplateProvider key="builtin"
- implementation="com.demonwav.mcdev.creator.custom.providers.BuiltinTemplateProvider"/>
- <creatorTemplateProvider key="remote"
- implementation="com.demonwav.mcdev.creator.custom.providers.RemoteTemplateProvider"/>
- <creatorTemplateProvider key="local"
- implementation="com.demonwav.mcdev.creator.custom.providers.LocalTemplateProvider"/>
- <creatorTemplateProvider key="archive"
- implementation="com.demonwav.mcdev.creator.custom.providers.ZipTemplateProvider"/>
- <creatorFinalizer implementation="com.demonwav.mcdev.creator.custom.finalizers.ImportGradleProjectFinalizer"
- type="import_gradle_project"/>
- <creatorFinalizer implementation="com.demonwav.mcdev.creator.custom.finalizers.ImportMavenProjectFinalizer"
- type="import_maven_project"/>
- <creatorFinalizer implementation="com.demonwav.mcdev.creator.custom.finalizers.RunGradleTasksFinalizer"
- type="run_gradle_tasks"/>
- <creatorFinalizer implementation="com.demonwav.mcdev.creator.custom.finalizers.GitAddAllFinalizer"
- type="git_add_all"/>
- <mixinSelectorParser id="regex" implementation="com.demonwav.mcdev.platform.mixin.reference.MixinRegexParser"
- order="before memberReference"/>
- <mixinSelectorParser id="memberReference"
- implementation="com.demonwav.mcdev.platform.mixin.reference.MixinMemberParser"/>
- <mixinSelectorParser
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.NewInsnSelectorParser"
- order="before memberReference"/>
- <mixinSelectorParser implementation="com.demonwav.mcdev.platform.mixin.reference.DescSelectorParser"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.Overwrite"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.OverwriteHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.Shadow"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.ShadowHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.gen.Accessor"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.AccessorHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.gen.Invoker"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.InvokerHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.injection.Inject"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.InjectAnnotationHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.injection.ModifyArg"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.ModifyArgHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.injection.ModifyArgs"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.ModifyArgsHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.injection.ModifyConstant"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.ModifyConstantHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.injection.ModifyVariable"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.ModifyVariableHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.injection.Redirect"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.RedirectInjectorHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.ModifyExpressionValue"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.ModifyExpressionValueHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.ModifyReceiver"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.ModifyReceiverHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.ModifyReturnValue"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.ModifyReturnValueHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.WrapMethodHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.WrapOperationHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.WrapWithCondition"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.WrapWithConditionHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.v2.WrapWithCondition"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.WrapWithConditionHandler"/>
- <injectionPoint atCode="INVOKE"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.InvokeInjectionPoint"/>
- <injectionPoint atCode="INVOKE_ASSIGN"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.InvokeAssignInjectionPoint"/>
- <injectionPoint atCode="INVOKE_STRING"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.ConstantStringMethodInjectionPoint"/>
- <injectionPoint atCode="FIELD"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.FieldInjectionPoint"/>
- <injectionPoint atCode="NEW"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.NewInsnInjectionPoint"/>
- <injectionPoint atCode="HEAD"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.HeadInjectionPoint"/>
- <injectionPoint atCode="RETURN"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.ReturnInjectionPoint"/>
- <injectionPoint atCode="TAIL"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.TailInjectionPoint"/>
- <injectionPoint atCode="CTOR_HEAD"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.CtorHeadInjectionPoint"/>
- <injectionPoint atCode="LOAD"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.LoadInjectionPoint"/>
- <injectionPoint atCode="STORE"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.StoreInjectionPoint"/>
- <injectionPoint atCode="CONSTANT"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.ConstantInjectionPoint"/>
- <injectionPoint atCode="JUMP"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.JumpInjectionPoint"/>
- <injectionPoint atCode="MIXINEXTRAS:EXPRESSION"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.ExpressionInjectionPoint"/>
- <injectionPointAnnotation annotation="org.spongepowered.asm.mixin.injection.Constant" atCode="CONSTANT"/>
- <eventGenHelper language="JAVA" implementationClass="com.demonwav.mcdev.insight.generation.JavaEventGenHelper"/>
- </extensions>
- <extensions defaultExtensionNs="com.intellij">
- <!-- This is grouped in the following order EXCEPT for localInspections and moduleTypes. All localInspections are grouped at the
- end, but the individual local inspections themselves should also be ordered in this way.
- * No platform
- * Adventure
- * Bukkit
- * Sponge
- * Forge
- * NeoForge
- * Fabric
- * MCP
- * Mixin
- * Velocity
- * BungeeCord
- -->
- <!--region NO PLATFORM-->
- <!---->
- <moduleBuilder id="CUSTOM_MINECRAFT_MODULE"
- builderClass="com.demonwav.mcdev.creator.custom.CustomMinecraftModuleBuilder"/>
- <postStartupActivity implementation="com.demonwav.mcdev.creator.custom.TemplateProjectFinalizerActivity"/>
- <moduleBuilder id="MINECRAFT_MODULE" builderClass="com.demonwav.mcdev.creator.MinecraftModuleBuilder"/>
- <facetType implementation="com.demonwav.mcdev.facet.MinecraftFacetType"/>
- <postStartupActivity implementation="com.demonwav.mcdev.facet.MinecraftFacetDetector"/>
- <notificationGroup id="Minecraft project creator" displayType="STICKY_BALLOON"/>
- <notificationGroup id="Minecraft facet" displayType="STICKY_BALLOON"/>
- <!-- File templates are for project creations -->
- <fileTemplateGroup implementation="com.demonwav.mcdev.util.MinecraftTemplates"/>
- <!-- Project-independent Line Marker Providers -->
- <codeInsight.lineMarkerProvider language=""
- implementationClass="com.demonwav.mcdev.insight.ListenerLineMarkerProvider"/>
- <codeInsight.lineMarkerProvider language=""
- implementationClass="com.demonwav.mcdev.insight.ColorLineMarkerProvider"/>
- <codeInsight.lineMarkerProvider language=""
- implementationClass="com.demonwav.mcdev.insight.PluginLineMarkerProvider"/>
- <!-- Project-independent Annotators-->
- <annotator language="UAST" implementationClass="com.demonwav.mcdev.insight.ListenerEventAnnotator"/>
- <annotator language="UAST" implementationClass="com.demonwav.mcdev.insight.ColorAnnotator"/>
- <!-- Project-independent Inspection Suppressors -->
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.inspection.StaticListenerInspectionSuppressor"/>
- <!-- Project View Node Decorators provide the project icons -->
- <projectViewNodeDecorator implementation="com.demonwav.mcdev.platform.MinecraftProjectViewNodeDecorator"/>
- <deadCode implementation="com.demonwav.mcdev.inspection.PlatformAnnotationEntryPoint"/>
- <!-- Application Configurable provides the Minecraft settings page -->
- <applicationConfigurable displayName="Minecraft Development"
- id="Settings.Minecraft"
- groupId="language"
- instance="com.demonwav.mcdev.MinecraftConfigurable"/>
- <projectConfigurable displayName="Project-Specific Settings"
- id="Settings.Minecraft.Project"
- parentId="Settings.Minecraft"
- instance="com.demonwav.mcdev.MinecraftProjectConfigurable"/>
- <projectConfigurable displayName="Language Template"
- id="Settings.Minecraft.TranslationTemplate"
- parentId="Settings.Minecraft"
- instance="com.demonwav.mcdev.translations.sorting.TranslationTemplateConfigurable"/>
- <!-- NBT -->
- <fileType name="NBT" implementationClass="com.demonwav.mcdev.nbt.filetype.NbtFileType" fieldName="INSTANCE"
- extensions="nbt"/>
- <fileTypeDetector implementation="com.demonwav.mcdev.nbt.filetype.NbtFileTypeDetector"/>
- <fileEditorProvider implementation="com.demonwav.mcdev.nbt.editor.NbtFileEditorProvider"/>
- <notificationGroup id="NBT Save Error" displayType="STICKY_BALLOON"/>
- <notificationGroup id="NBT Save Success" displayType="STICKY_BALLOON"/>
- <!-- Text representation of NBT -->
- <fileType name="NBTT" language="NBTT" implementationClass="com.demonwav.mcdev.nbt.lang.NbttFileType"
- fieldName="INSTANCE" extensions="nbtt"/>
- <lang.parserDefinition language="NBTT" implementationClass="com.demonwav.mcdev.nbt.lang.NbttParserDefinition"/>
- <lang.syntaxHighlighterFactory language="NBTT"
- implementationClass="com.demonwav.mcdev.nbt.lang.colors.NbttSyntaxHighlighterFactory"/>
- <lang.braceMatcher language="NBTT" implementationClass="com.demonwav.mcdev.nbt.lang.NbttBraceMatcher"/>
- <lang.quoteHandler language="NBTT" implementationClass="com.demonwav.mcdev.nbt.lang.NbttQuoteHandler"/>
- <lang.formatter language="NBTT"
- implementationClass="com.demonwav.mcdev.nbt.lang.format.NbttFormattingModelBuilder"/>
- <codeStyleSettingsProvider implementation="com.demonwav.mcdev.nbt.lang.format.NbttCodeStyleSettingsProvider"/>
- <langCodeStyleSettingsProvider
- implementation="com.demonwav.mcdev.nbt.lang.format.NbttLanguageCodeStyleSettingsProvider"/>
- <lang.foldingBuilder language="NBTT"
- implementationClass="com.demonwav.mcdev.nbt.lang.format.NbttFoldingBuilder"/>
- <colorSettingsPage implementation="com.demonwav.mcdev.nbt.lang.colors.NbttColorSettingsPage"/>
- <annotator language="NBTT" implementationClass="com.demonwav.mcdev.nbt.lang.colors.NbttAnnotator"/>
- <additionalTextAttributes scheme="Default" file="colorSchemes/NbttDefault.xml"/>
- <additionalTextAttributes scheme="Darcula" file="colorSchemes/NbttDarcula.xml"/>
- <codeInsight.parameterNameHints language="NBTT"
- implementationClass="com.demonwav.mcdev.nbt.lang.format.NbttParameterNameHints"/>
- <lang.fileViewProviderFactory language="NBTT"
- implementationClass="com.demonwav.mcdev.nbt.lang.NbttFileViewProviderFactory"/>
- <!-- Minecraft localization files -->
- <fileType name="MCLang" language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.lang.LangFileType" fieldName="INSTANCE"
- extensions="lang"/>
- <lang.parserDefinition language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.lang.LangParserDefinition"/>
- <lang.syntaxHighlighterFactory language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.lang.colors.LangSyntaxHighlighterFactory"/>
- <lang.psiStructureViewFactory language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.lang.structure.LangStructureViewFactory"/>
- <lang.findUsagesProvider language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.reference.LangFindUsagesProvider"/>
- <lang.findUsagesProvider language="JSON"
- implementationClass="com.demonwav.mcdev.translations.reference.JsonFindUsagesProvider"
- order="first"/>
- <lang.foldingBuilder language="UAST"
- implementationClass="com.demonwav.mcdev.translations.TranslationFoldingBuilder"/>
- <lang.formatter language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.lang.formatting.LangFormattingModelBuilder"/>
- <lang.commenter language="MCLang" implementationClass="com.demonwav.mcdev.translations.lang.LangCommenter"/>
- <spellchecker.support language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.lang.spellcheck.LangSpellcheckingStrategy"/>
- <psi.referenceContributor language="UAST"
- implementation="com.demonwav.mcdev.translations.reference.UastReferenceContributor"/>
- <psi.referenceContributor language="MCLang"
- implementation="com.demonwav.mcdev.translations.reference.LangReferenceContributor"/>
- <psi.referenceContributor language="JSON"
- implementation="com.demonwav.mcdev.translations.reference.JsonReferenceContributor"/>
- <gotoSymbolContributor
- implementation="com.demonwav.mcdev.translations.reference.TranslationGotoSymbolContributor"/>
- <colorSettingsPage implementation="com.demonwav.mcdev.translations.lang.colors.LangColorSettingsPage"/>
- <renameInputValidator implementation="com.demonwav.mcdev.translations.lang.LangRenameInputValidator"/>
- <editorNotificationProvider
- implementation="com.demonwav.mcdev.translations.TranslationEditorNotificationProvider"/>
- <notificationGroup id="Translations sorting error" displayType="STICKY_BALLOON"/>
- <notificationGroup id="Translation support error" displayType="STICKY_BALLOON"/>
- <elementDescriptionProvider
- implementation="com.demonwav.mcdev.translations.reference.TranslationDescriptionProvider"/>
- <referencesSearch implementation="com.demonwav.mcdev.translations.reference.TranslationReferenceSearch"/>
- <annotator language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.intentions.TranslationFileAnnotator"/>
- <annotator language="JSON"
- implementationClass="com.demonwav.mcdev.translations.intentions.TranslationFileAnnotator"/>
- <intentionAction>
- <language>UAST</language>
- <className>com.demonwav.mcdev.translations.intentions.ConvertToTranslationIntention</className>
- <category>Minecraft</category>
- <descriptionDirectoryName>convertToTranslation</descriptionDirectoryName>
- </intentionAction>
- <codeFoldingOptionsProvider instance="com.demonwav.mcdev.translations.TranslationCodeFoldingOptionsProvider"/>
- <applicationService serviceImplementation="com.demonwav.mcdev.translations.TranslationFoldingSettings"/>
- <typedHandler implementation="com.demonwav.mcdev.translations.lang.LangTypedHandlerDelegate"/>
- <completion.contributor language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.reference.LangCompletionContributor"/>
- <completion.contributor language="JSON"
- implementationClass="com.demonwav.mcdev.translations.reference.JsonCompletionContributor"/>
- <completion.confidence language="JAVA"
- implementationClass="com.demonwav.mcdev.translations.reference.TranslationReferenceCompletionConfidence"
- order="before javaSkipAutopopupInStrings"/>
- <fileBasedIndex implementation="com.demonwav.mcdev.translations.index.TranslationIndex"/>
- <fileBasedIndex implementation="com.demonwav.mcdev.translations.index.TranslationInverseIndex"/>
- <java.externalAnnotation.locationProvider
- implementation="com.demonwav.mcdev.translations.identification.TranslationAnnotationsLocationProvider"/>
- <externalAnnotationsArtifactsResolver
- implementation="com.demonwav.mcdev.translations.identification.TranslationExternalAnnotationsArtifactsResolver"
- order="first"/>
- <applicationService serviceImplementation="com.demonwav.mcdev.MinecraftSettings"/>
- <projectService serviceImplementation="com.demonwav.mcdev.TranslationSettings"/>
- <errorHandler implementation="com.demonwav.mcdev.errorreporter.ErrorReporter"/>
- <!--endregion-->
- <!--region ADVENTURE-->
- <!---->
- <dependencySupport coordinate="net.kyori:adventure-api" kind="java"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.adventure.framework.AdventurePresentationProvider"/>
- <codeInsight.lineMarkerProvider language=""
- implementationClass="com.demonwav.mcdev.platform.adventure.color.AdventureColorLineMarkerProvider"/>
- <!--endregion-->
- <!--region BUKKIT-->
- <!---->
- <dependencySupport coordinate="org.bukkit:bukkit" kind="java"/>
- <dependencySupport coordinate="org.spigotmc:spigot-api" kind="java"/>
- <dependencySupport coordinate="com.destroystokyo.paper:paper-api" kind="java"/>
- <dependencySupport coordinate="io.papermc.paper:paper-api" kind="java"/>
- <fileIconProvider implementation="com.demonwav.mcdev.platform.bukkit.BukkitFileIconProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.bukkit.framework.BukkitPresentationProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.bukkit.framework.SpigotPresentationProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.bukkit.framework.OldPaperPresentationProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.bukkit.framework.PaperPresentationProvider"/>
- <!--endregion-->
- <!--region SPONGE-->
- <!---->
- <dependencySupport coordinate="org.spongepowered:spongeapi" kind="java"/>
- <!-- Sponge Line Marker Provider -->
- <codeInsight.lineMarkerProvider language=""
- implementationClass="com.demonwav.mcdev.platform.sponge.color.SpongeColorLineMarkerProvider"/>
- <implicitUsageProvider implementation="com.demonwav.mcdev.platform.sponge.insight.SpongeImplicitUsageProvider"/>
- <!-- Sponge Annotator -->
- <annotator language="UAST" implementationClass="com.demonwav.mcdev.platform.sponge.color.SpongeColorAnnotator"/>
- <psi.referenceContributor language="UAST"
- implementation="com.demonwav.mcdev.platform.sponge.reference.SpongeReferenceContributor"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.sponge.framework.SpongePresentationProvider"/>
- <importFilter implementation="com.demonwav.mcdev.platform.sponge.SpongeImportFilter"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.sponge.inspection.suppress.SpongeGetterParamOptionalInspectionSuppressor"/>
- <!--endregion-->
- <!--region FORGE-->
- <dependencySupport coordinate="net.minecraftforge:forge" kind="java"/>
- <psi.referenceContributor language="JAVA"
- implementation="com.demonwav.mcdev.platform.forge.reflection.reference.ReflectionReferenceContributor"/>
- <fileIconProvider implementation="com.demonwav.mcdev.platform.forge.ForgeFileIconProvider"/>
- <implicitUsageProvider implementation="com.demonwav.mcdev.platform.forge.insight.ForgeImplicitUsageProvider"/>
- <!-- Forge Annotator -->
- <annotator language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.SidedProxyAnnotator"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.forge.framework.ForgePresentationProvider"/>
- <externalProjectDataService
- implementation="com.demonwav.mcdev.platform.forge.gradle.ForgeRunConfigDataService"/>
- <!--endregion-->
- <!--region NEOFORGE-->
- <dependencySupport coordinate="net.neoforged:neoforge" kind="java"/>
- <fileIconProvider implementation="com.demonwav.mcdev.platform.neoforge.NeoForgeFileIconProvider"/>
- <implicitUsageProvider
- implementation="com.demonwav.mcdev.platform.neoforge.insight.NeoForgeImplicitUsageProvider"/>
- <!-- NeoForge Annotator -->
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.neoforge.framework.NeoForgePresentationProvider"/>
- <externalProjectDataService
- implementation="com.demonwav.mcdev.platform.neoforge.gradle.NeoForgeRunConfigDataService"/>
- <!--endregion-->
- <!--region FABRIC-->
- <dependencySupport coordinate="net.fabricmc:fabric-loader" kind="java"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.fabric.framework.FabricPresentationProvider"/>
- <fileIconProvider implementation="com.demonwav.mcdev.platform.fabric.FabricFileIconProvider"/>
- <psi.referenceContributor language="JSON"
- implementation="com.demonwav.mcdev.platform.fabric.reference.FabricReferenceContributor"/>
- <resolveScopeEnlarger
- implementation="com.demonwav.mcdev.platform.fabric.reference.FabricModJsonResolveScopeEnlarger"/>
- <useScopeEnlarger implementation="com.demonwav.mcdev.platform.fabric.reference.FabricClientUseScopeEnlarger"/>
- <!--endregion-->
- <!--region ARCHITECTURY-->
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.architectury.framework.ArchitecturyPresentationProvider"/>
- <!--endregion-->
- <!--region MCP-->
- <!---->
- <externalProjectDataService implementation="com.demonwav.mcdev.platform.mcp.gradle.McpDataService"/>
- <externalProjectDataService implementation="com.demonwav.mcdev.platform.mcp.fabricloom.FabricLoomDataService"/>
- <externalProjectDataService
- implementation="com.demonwav.mcdev.platform.mcp.vanillagradle.VanillaGradleDataService"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.mcp.framework.McpPresentationProvider"/>
- <runConfigurationExtension implementation="com.demonwav.mcdev.platform.mcp.debug.McpRunConfigurationExtension"/>
- <attachSourcesProvider
- implementation="com.demonwav.mcdev.platform.mcp.fabricloom.FabricLoomDecompileSourceProvider"/>
- <attachSourcesProvider
- implementation="com.demonwav.mcdev.platform.mcp.vanillagradle.VanillaGradleDecompileSourceProvider"/>
- <!-- access transformer file type -->
- <fileType name="Access Transformers" language="Access Transformers"
- implementationClass="com.demonwav.mcdev.platform.mcp.at.AtFileType" fieldName="INSTANCE"
- patterns="*_at.cfg"/>
- <lang.parserDefinition language="Access Transformers"
- implementationClass="com.demonwav.mcdev.platform.mcp.at.AtParserDefinition"/>
- <lang.syntaxHighlighterFactory language="Access Transformers"
- implementationClass="com.demonwav.mcdev.platform.mcp.at.AtSyntaxHighlighterFactory"/>
- <colorSettingsPage implementation="com.demonwav.mcdev.platform.mcp.at.AtColorSettingsPage"/>
- <lang.commenter language="Access Transformers"
- implementationClass="com.demonwav.mcdev.platform.mcp.at.AtCommenter"/>
- <typedHandler implementation="com.demonwav.mcdev.platform.mcp.at.completion.AtTypedHandlerDelegate"/>
- <completion.contributor language="Access Transformers"
- implementationClass="com.demonwav.mcdev.platform.mcp.at.completion.AtCompletionContributor"/>
- <gotoDeclarationHandler implementation="com.demonwav.mcdev.platform.mcp.at.AtGotoDeclarationHandler"/>
- <annotator language="Access Transformers" implementationClass="com.demonwav.mcdev.platform.mcp.at.AtAnnotator"/>
- <!-- access widener file type -->
- <fileType name="Access Widener" language="Access Widener"
- implementationClass="com.demonwav.mcdev.platform.mcp.aw.AwFileType" fieldName="INSTANCE"
- patterns="*.accesswidener"/>
- <lang.parserDefinition language="Access Widener"
- implementationClass="com.demonwav.mcdev.platform.mcp.aw.AwParserDefinition"/>
- <lang.syntaxHighlighterFactory language="Access Widener"
- implementationClass="com.demonwav.mcdev.platform.mcp.aw.AwSyntaxHighlighterFactory"/>
- <colorSettingsPage implementation="com.demonwav.mcdev.platform.mcp.aw.AwColorSettingsPage"/>
- <lang.commenter language="Access Widener" implementationClass="com.demonwav.mcdev.platform.mcp.aw.AwCommenter"/>
- <annotator language="Access Widener" implementationClass="com.demonwav.mcdev.platform.mcp.aw.AwAnnotator"/>
- <completion.contributor language="Access Widener"
- implementationClass="com.demonwav.mcdev.platform.mcp.aw.AwCompletionContributor"/>
- <codeInsight.unresolvedReferenceQuickFixProvider
- implementation="com.demonwav.mcdev.platform.mcp.aw.fixes.CopyAwAccessibleEntryFix$Provider"/>
- <moduleService serviceImplementation="com.demonwav.mcdev.platform.mcp.McpModuleSettings"/>
- <gotoSymbolContributor
- implementation="com.demonwav.mcdev.platform.mcp.navigation.SrgMemberChooseByNameContributor"/>
- <unscrambleSupport implementation="com.demonwav.mcdev.platform.mcp.fabricloom.TinyUnscrambler"/>
- <unscrambleSupport implementation="com.demonwav.mcdev.platform.mcp.srg.McpUnscrambler"/>
- <!--endregion-->
- <!--region MIXIN-->
- <!---->
- <dependencySupport coordinate="org.spongepowered:mixin" kind="java"/>
- <!-- Folding -->
- <applicationService serviceImplementation="com.demonwav.mcdev.platform.mixin.folding.MixinFoldingSettings"/>
- <codeFoldingOptionsProvider instance="com.demonwav.mcdev.platform.mixin.folding.MixinFoldingOptionsProvider"/>
- <lang.foldingBuilder language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.folding.MixinObjectCastFoldingBuilder"/>
- <lang.foldingBuilder language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.folding.MixinTargetDescriptorFoldingBuilder"/>
- <lang.foldingBuilder language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.folding.AccessorMixinFoldingBuilder"/>
- <lang.foldingBuilder language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEDefinitionFoldingBuilder"/>
- <implicitUsageProvider implementation="com.demonwav.mcdev.platform.mixin.insight.MixinImplicitUsageProvider"/>
- <deadCode implementation="com.demonwav.mcdev.platform.mixin.insight.MixinEntryPoint"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.suppress.DefaultAnnotationParamInspectionSuppressor"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.suppress.DynamicInspectionSuppressor"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.suppress.MixinClassCastInspectionSuppressor"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.suppress.ShadowOverwriteInspectionSuppressor"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.suppress.StaticInvokerUnusedParamInspectionSuppressor"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.shadow.suppress.ShadowNullableInspectionSuppressor"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.suppress.SoftImplementInspectionSuppressor"/>
- <!-- Mixin completion -->
- <superMethodsSearch
- implementation="com.demonwav.mcdev.platform.mixin.search.MixinSoftImplementMethodSuperSearcher"/>
- <completion.contributor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.completion.MixinCompletionContributor"
- order="last, before javaLegacy"/>
- <completion.contributor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.completion.AtArgsCompletionContributor"
- order="first"/>
- <psi.referenceContributor language="JAVA"
- implementation="com.demonwav.mcdev.platform.mixin.reference.MixinReferenceContributor"/>
- <gotoDeclarationHandler implementation="com.demonwav.mcdev.platform.mixin.reference.MethodGTDHandler"
- order="first"/>
- <gotoDeclarationHandler implementation="com.demonwav.mcdev.platform.mixin.reference.DescGTDHandler"
- order="first"/>
- <gotoDeclarationHandler
- implementation="com.demonwav.mcdev.platform.mixin.reference.target.DefinitionReferenceGTDHandler"
- order="first"/>
- <gotoDeclarationHandler implementation="com.demonwav.mcdev.platform.mixin.reference.target.TargetGTDHandler"
- order="first"/>
- <completion.confidence language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.completion.MixinCompletionConfidence"
- order="before javaSkipAutopopupInStrings"/>
- <weigher key="completion"
- implementationClass="com.demonwav.mcdev.platform.mixin.completion.MixinCompletionWeigher"
- id="mcdev.mixin" order="first"/>
- <facet.toolWindow anchor="bottom" icon="/assets/icons/mixin/mixin_class_gutter.png" canCloseContents="true"
- doNotActivateOnStart="true" facetIdList="minecraft" showOnStripeByDefault="false"
- factoryClass="com.demonwav.mcdev.platform.mixin.action.FindMixinsAction$TWFactory"
- id="Find Mixins"/>
- <!-- Mixin configuration -->
- <fileType name="Mixin Json Configuration" language="JSON"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.MixinConfigFileType$Json"
- fieldName="INSTANCE"/>
- <psi.referenceContributor language="JSON"
- implementation="com.demonwav.mcdev.platform.mixin.config.reference.MixinConfigReferenceContributor"/>
- <lang.importOptimizer language="JSON"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.MixinConfigImportOptimizer"/>
- <fileType name="Mixin Json5 Configuration" language="JSON5"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.MixinConfigFileType$Json5"
- fieldName="INSTANCE"/>
- <psi.referenceContributor language="JSON5"
- implementation="com.demonwav.mcdev.platform.mixin.config.reference.MixinConfigReferenceContributor"/>
- <lang.importOptimizer language="JSON5"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.MixinConfigImportOptimizer"/>
- <!-- Mixin Line Marker Providers -->
- <codeInsight.lineMarkerProvider language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.insight.MixinLineMarkerProvider"/>
- <codeInsight.lineMarkerProvider language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.insight.MixinTargetLineMarkerProvider"/>
- <customJavadocTagProvider implementation="com.demonwav.mcdev.platform.mixin.MixinCustomJavaDocTagProvider"/>
- <debugger.positionManagerFactory
- implementation="com.demonwav.mcdev.platform.mixin.debug.MixinPositionManagerFactory" order="last"/>
- <debuggerClassFilterProvider
- implementation="com.demonwav.mcdev.platform.mixin.debug.MixinDebuggerClassFilterProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.mixin.framework.MixinPresentationProvider"/>
- <iconLayerProvider implementation="com.demonwav.mcdev.platform.mixin.framework.MixinIconProvider"/>
- <!--region MixinExtras Expression Language-->
- <fileType name="MixinExtras Expression File"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionFileType"
- fieldName="INSTANCE"
- language="MEExpression"
- extensions="mixinextrasexpression"/>
- <lang.parserDefinition language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionParserDefinition"/>
- <lang.syntaxHighlighterFactory language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionSyntaxHighlighterFactory"/>
- <colorSettingsPage implementation="com.demonwav.mcdev.platform.mixin.expression.MEExpressionColorSettingsPage"/>
- <annotator language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionAnnotator"/>
- <lang.braceMatcher language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionBraceMatcher"/>
- <lang.quoteHandler language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionQuoteHandler"/>
- <lang.elementManipulator forClass="com.demonwav.mcdev.platform.mixin.expression.gen.psi.MEName"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.psi.MENameElementManipulator"/>
- <lang.findUsagesProvider language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.reference.MEExpressionFindUsagesProvider"/>
- <lang.refactoringSupport language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionRefactoringSupport"/>
- <completion.contributor language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionCompletionContributor"/>
- <multiHostInjector implementation="com.demonwav.mcdev.platform.mixin.expression.MEExpressionInjector"/>
- <typedHandler implementation="com.demonwav.mcdev.platform.mixin.expression.MEExpressionTypedHandlerDelegate"/>
- <!--endregion-->
- <!--endregion-->
- <!--region VELOCITY-->
- <!---->
- <dependencySupport coordinate="com.velocitypowered:velocity-api" kind="java"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.velocity.framework.VelocityPresentationProvider"/>
- <!--endregion-->
- <!--region BUNGEECORD-->
- <!---->
- <dependencySupport coordinate="net.md-5:bungeecord-api" kind="java"/>
- <dependencySupport coordinate="io.github.waterfallmc:waterfall-api" kind="java"/>
- <fileIconProvider implementation="com.demonwav.mcdev.platform.bungeecord.BungeeCordFileIconProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.bungeecord.framework.BungeeCordPresentationProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.bungeecord.framework.WaterfallPresentationProvider"/>
- <!--endregion-->
- <!--region LOCAL INSPECTIONS-->
- <!---->
- <!--region NO PLATFORM INSPECTIONS-->
- <localInspection displayName="Useless event is cancelled check"
- groupName="Minecraft"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.inspection.IsCancelledInspection"/>
- <localInspection displayName="Missing translations"
- groupName="Minecraft"
- language="UAST"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.translations.inspections.NoTranslationInspection"/>
- <localInspection displayName="Missing format arguments"
- groupName="Minecraft"
- language="UAST"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.translations.inspections.MissingFormatInspection"/>
- <localInspection displayName="Superfluous format arguments"
- groupName="Minecraft"
- language="UAST"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.translations.inspections.SuperfluousFormatInspection"/>
- <localInspection displayName="Wrong translation argument types"
- groupName="Minecraft"
- language="UAST"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.translations.inspections.WrongTypeInTranslationArgsInspection"/>
- <localInspection displayName="Entity class does not match this entity class"
- groupName="Minecraft"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.inspection.WrongEntityDataParameterClassInspection"/>
- <!--endregion-->
- <!--region BUKKIT INSPECTIONS-->
- <localInspection displayName="Bukkit @EventHandler in class not implementing Listener"
- groupName="Bukkit"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.bukkit.inspection.BukkitListenerImplementedInspection"/>
- <!--endregion-->
- <!--region SPONGE INSPECTIONS-->
- <localInspection displayName="Wrong Sponge logger implementation"
- groupName="Sponge"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.sponge.inspection.SpongeLoggingInspection"/>
- <localInspection displayName="@Getter targeted method does not exist"
- groupName="Sponge"
- language="UAST"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.sponge.inspection.SpongeInvalidGetterTargetInspection"/>
- <localInspection displayName="Parameter's type is not assignable to its @Getter method return type"
- groupName="Sponge"
- language="UAST"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.sponge.inspection.SpongeWrongGetterTypeInspection"/>
- <localInspection displayName="Invalid @Inject usage in Sponge plugin class"
- groupName="Sponge"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.sponge.inspection.SpongeInjectionInspection"/>
- <localInspection displayName="Sponge plugin class validity"
- groupName="Sponge"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.sponge.inspection.SpongePluginClassInspection"/>
- <!--endregion-->
- <!--region FORGE INSPECTIONS-->
- <localInspection displayName="Invalid usage of @SideOnly in nested class declaration"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.NestedClassSideOnlyInspection"/>
- <localInspection displayName="Invalid usage of @SideOnly in field declaration"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.FieldDeclarationSideOnlyInspection"/>
- <localInspection displayName="Invalid usage of @SideOnly in method declaration"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.MethodSideOnlyInspection"/>
- <localInspection displayName="Invalid usage of variable annotated with @SideOnly"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.VariableUseSideOnlyInspection"/>
- <localInspection displayName="Invalid usage of method annotated with @SideOnly"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.MethodCallSideOnlyInspection"/>
- <localInspection displayName="Invalid usage of new object annotated with @SideOnly"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.NewExpressionSideOnlyInspection"/>
- <localInspection displayName="Invalid usage of local variable declaration annotated with @SideOnly"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.LocalVariableDeclarationSideOnlyInspection"/>
- <localInspection displayName="IMessage or IMessageHandler implementation without empty constructor"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.simpleimpl.MissingMessageConstructorInspection"/>
- <!--endregion-->
- <!--region FABRIC INSPECTIONS-->
- <localInspection displayName="Unresolved Fabric mod JSON reference"
- shortName="UnresolvedFabricModJsonReference"
- groupName="Fabric"
- language="JSON"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.fabric.inspection.UnresolvedReferenceInspection"/>
- <localInspection displayName="Fabric mod JSON entrypoints validation"
- shortName="FabricModJsonEntrypointsValidation"
- groupName="Fabric"
- language="JSON"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.fabric.inspection.FabricEntrypointsInspection"/>
- <!--endregion-->
- <!--region MCP INSPECTIONS-->
- <localInspection displayName="Unused access transformer"
- groupName="MCP"
- language="Access Transformers"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mcp.at.AtUsageInspection"/>
- <localInspection displayName="Invalid empty ItemStack comparison with ItemStack.EMPTY"
- groupName="MCP"
- language="JAVA"
- enabledByDefault="false"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mcp.inspections.StackEmptyInspection"/>
- <localInspection displayName="Duplicate access widener"
- groupName="MCP"
- language="Access Widener"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mcp.aw.inspections.DuplicateAwEntryInspection"/>
- <!--endregion-->
- <!--region MIXIN INSPECTIONS-->
- <!--region Generic -->
- <localInspection displayName="Mixin is not written in Java"
- shortName="NonJavaMixin"
- groupName="Mixin"
- language="UAST"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.NonJavaMixinInspection"/>
- <localInspection displayName="Mixin not in a mixin config"
- shortName="UnusedMixin"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.UnusedMixinInspection"/>
- <localInspection displayName="Mixin annotation outside of @Mixin class"
- shortName="AnnotationOutsideOfMixin"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinAnnotationsInspection"/>
- <localInspection displayName="Missing or unused cancellable @Inject"
- shortName="CancellableInjectionUsage"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinCancellableInspection"/>
- <localInspection displayName="Invalid @Mixin Target"
- shortName="InvalidMixinTarget"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinTargetInspection"/>
- <localInspection displayName="Invalid @Mixin super class"
- shortName="MixinSuperClass"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinSuperClassInspection"/>
- <localInspection displayName="Public static member in @Mixin class"
- shortName="PublicStaticMixinMember"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.StaticMemberInspection"/>
- <localInspection displayName="Inner classes in Mixins"
- shortName="MixinInnerClass"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinInnerClassInspection"/>
- <localInspection displayName="Reference to @Mixin class"
- shortName="ReferenceToMixin"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinClassReferenceInspection"/>
- <!--endregion-->
- <!--region Annotation handlers -->
- <localInspection displayName="Unresolved mixin annotation target"
- shortName="MixinAnnotationTarget"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinAnnotationTargetInspection"/>
- <!--endregion-->
- <!--region Added Members Inspections -->
- <localInspection displayName="Missing @Unique annotation"
- shortName="MissingUnique"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.addedMembers.MissingUniqueAnnotationInspection"/>
- <localInspection displayName="Name does not match the pattern for added mixin members"
- shortName="AddedMixinMembersNamePattern"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.addedMembers.AddedMembersNameFormatInspection"/>
- <!--endregion-->
- <!--region Implements Inspections -->
- <localInspection displayName="Soft-implemented method does not override a method in the target interfaces"
- shortName="SoftImplementOverrides"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.SoftImplementOverridesInspection"/>
- <localInspection displayName="Empty @Implements"
- shortName="EmptyImplements"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.EmptyImplementsInspection"/>
- <localInspection displayName="@Interface is interface"
- shortName="InterfaceIsInterface"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.InterfaceIsInterfaceInspection"/>
- <localInspection displayName="Invalid prefix on @Interface"
- shortName="InvalidInterfacePrefix"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.InterfacePrefixInspection"/>
- <localInspection displayName="Duplicate @Interface in @Implements"
- shortName="DuplicateInterface"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.DuplicateInterfaceInspection"/>
- <localInspection displayName="Duplicate @Interface prefix in @Implements"
- shortName="DuplicateInterfacePrefix"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.DuplicateInterfacePrefixInspection"/>
- <!--endregion-->
- <!--region Injector Inspections -->
- <localInspection displayName="Implicit constructor invoker"
- shortName="ImplicitConstructorInvoker"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.ImplicitConstructorInvokerInspection"/>
- <localInspection displayName="@Inject could be @Overwrite"
- shortName="InjectCouldBeOverwrite"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="false"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.InjectCouldBeOverwriteInspection"/>
- <localInspection displayName="@Inject into Constructor"
- shortName="InjectIntoConstructor"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.InjectIntoConstructorInspection"/>
- <localInspection displayName="Invalid injector method signature"
- shortName="InvalidInjectorMethodSignature"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.InvalidInjectorMethodSignatureInspection"/>
- <localInspection displayName="@ModifyVariable may be argsOnly = true"
- shortName="ModifyVariableMayBeArgsOnly"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.ModifyVariableArgsOnlyInspection"/>
- <localInspection displayName="@Inject before a superconstructor call is cancellable"
- shortName="InjectCancellableBeforeSuperConstructorCall"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.CancellableBeforeSuperCallInspection"/>
- <localInspection displayName="CTOR_HEAD is missing unsafe = true"
- shortName="CtorHeadNoUnsafe"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.CtorHeadNoUnsafeInspection"/>
- <localInspection displayName="CTOR_HEAD is not targeting a constructor"
- shortName="CtorHeadUsedForNonConstructor"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.CtorHeadUsedForNonConstructorInspection"/>
- <localInspection displayName="Unnecessary unsafe = true"
- shortName="UnnecessaryUnsafe"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.UnnecessaryUnsafeInspection"/>
- <localInspection displayName="CTOR_HEAD with enforce=POST_INIT doesn't target a field"
- shortName="CtorHeadPostInit"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.CtorHeadPostInitInspection"/>
- <localInspection displayName="Usage of discouraged injection point"
- shortName="DiscouragedInjectionPoint"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.DiscouragedInjectionPointInspection"/>
- <localInspection displayName="Usage of discouraged shifting in injection point"
- shortName="DiscouragedShift"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.DiscouragedShiftInspection"/>
- <localInspection displayName="Usage of LocalCapture.CAPTURE_FAILEXCEPTION"
- shortName="LocalCaptureFailException"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.CaptureFailExceptionInspection"/>
- <localInspection displayName="Unused @Inject local capture"
- shortName="UnusedInjectLocalCapture"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.UnusedLocalCaptureInspection"/>
- <localInspection displayName="@Inject local capture can be replaced with @Local"
- shortName="InjectLocalCaptureCanBeReplacedWithLocal"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.mixinextras.InjectLocalCaptureReplaceWithLocalInspection"/>
- <!--endregion-->
- <!--region Overwrite Inspections -->
- <localInspection displayName="Invalid @Overwrite method modifiers"
- shortName="OverwriteModifiers"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.overwrite.OverwriteModifiersInspection"/>
- <localInspection displayName="Overwrite lacking @author JavaDoc tag"
- shortName="OverwriteAuthorRequired"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WEAK WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.overwrite.OverwriteAuthorInspection"/>
- <!--endregion-->
- <!--region Reference Inspections -->
- <localInspection displayName="Invalid Mixin member reference"
- shortName="InvalidMemberReference"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.reference.InvalidMemberReferenceInspection"/>
- <localInspection displayName="Unresolved reference"
- shortName="UnresolvedMixinReference"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.reference.UnresolvedReferenceInspection"/>
- <localInspection displayName="Ambiguous reference"
- shortName="AmbiguousMixinReference"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.reference.AmbiguousReferenceInspection"/>
- <localInspection displayName="Unqualified member reference"
- shortName="UnqualifiedMemberReference"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.reference.UnqualifiedMemberReferenceInspection"/>
- <localInspection displayName="Unnecessary qualified member reference"
- shortName="UnnecessaryQualifiedMemberReference"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WEAK WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.reference.UnnecessaryQualifiedMemberReferenceInspection"/>
- <!--endregion-->
- <!--region Shadow Inspections -->
- <localInspection displayName="Invalid @Shadow modifiers"
- shortName="ShadowModifiers"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.shadow.ShadowModifiersInspection"/>
- <localInspection displayName="@Shadow field with prefix"
- shortName="ShadowFieldPrefix"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.shadow.ShadowFieldPrefixInspection"/>
- <localInspection displayName="Unused @Shadow method prefix"
- shortName="UnusedShadowMethodPrefix"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.shadow.UnusedShadowMethodPrefixInspection"/>
- <localInspection displayName="Modification of @Final field"
- shortName="ShadowFinalModification"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.shadow.ShadowFinalInspection"/>
- <!--endregion-->
- <!--region Mixin Extras -->
- <localInspection displayName="Wrong @WrapOperation Operation parameters"
- shortName="MixinExtrasOperationParameters"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.mixinextras.WrongOperationParametersInspection"/>
- <localInspection displayName="Unnecessary mutable reference to captured local"
- shortName="MixinExtrasUnnecessaryMutableLocal"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.mixinextras.UnnecessaryMutableLocalInspection"/>
- <localInspection displayName="Unresolved @Local capture"
- shortName="UnresolvedLocalCapture"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.mixinextras.UnresolvedLocalCaptureInspection"/>
- <localInspection displayName="@Local may be argsOnly = true"
- shortName="LocalMayBeArgsOnly"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.mixinextras.LocalArgsOnlyInspection"/>
- <!--endregion-->
- <!--region Configuration -->
- <localInspection displayName="Unresolved config reference"
- shortName="UnresolvedConfigReference"
- groupName="Mixin"
- language="JSON"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.inspection.UnresolvedReferenceInspection"/>
- <localInspection displayName="Invalid config value"
- shortName="InvalidConfigValue"
- groupName="Mixin"
- language="JSON"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.inspection.ConfigValueInspection"/>
- <localInspection displayName="Invalid Mixin registration"
- shortName="InvalidMixinRegistration"
- groupName="Mixin"
- language="JSON"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.inspection.MixinRegistrationInspection"/>
- <localInspection displayName="Invalid Mixin plugin registration"
- shortName="InvalidMixinPluginRegistration"
- groupName="Mixin"
- language="JSON"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.inspection.MixinPluginInspection"/>
- <!--endregion-->
- <!--endregion-->
- <!--region BUNGEECORD INSPECTIONS-->
- <localInspection displayName="BungeeCord @EventHandler in class not implementing Listener"
- groupName="BungeeCord"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.bungeecord.inspection.BungeeCordListenerImplementedInspection"/>
- <!--endregion-->
- <!--endregion-->
- <registryKey defaultValue="true" description="Use the new mappings parser." key="mcdev.new.tsrg.parser"/>
- </extensions>
- <extensions defaultExtensionNs="org.jetbrains.plugins.gradle">
- <projectResolve implementation="com.demonwav.mcdev.platform.mcp.gradle.McpProjectResolverExtension"/>
- <projectResolve
- implementation="com.demonwav.mcdev.platform.mcp.vanillagradle.VanillaGradleProjectResolverExtension"/>
- <projectResolve implementation="com.demonwav.mcdev.platform.mcp.fabricloom.FabricLoomProjectResolverExtension"/>
- <projectResolve
- implementation="com.demonwav.mcdev.platform.architectury.framework.ArchitecturyProjectResolverExtension"/>
- </extensions>
- <applicationListeners>
- <listener class="com.demonwav.mcdev.translations.TranslationFileListener"
- topic="com.intellij.openapi.vfs.newvfs.BulkFileListener"/>
- </applicationListeners>
- <projectListeners>
- <listener class="com.demonwav.mcdev.facet.MinecraftFacetDetector$MinecraftModuleRootListener"
- topic="com.intellij.openapi.roots.ModuleRootListener"/>
- </projectListeners>
- <actions>
- <action class="com.demonwav.mcdev.insight.generation.GenerateEventListenerAction"
- id="GenerateEventListener">
- <add-to-group group-id="GenerateGroup" anchor="last"/>
- </action>
- <group id="MinecraftDevToolsGroup" popup="true" text="Minecraft Development">
- <add-to-group group-id="ToolsMenu"/>
- </group>
- <action class="com.demonwav.mcdev.update.ConfigurePluginUpdatesAction" id="MinecraftDevConfigureUpdates"
- text="Configure Minecraft Development Plugin Updates"
- description="Configure automatic updates for the Minecraft Development plugin">
- <add-to-group group-id="MinecraftDevToolsGroup"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mixin.action.FindMixinsAction" id="FindMixinsAction"
- text="Find Mixins"
- description="Find classes which mix into this class">
- <add-to-group relative-to-action="EditorPopupMenu2" anchor="after" group-id="EditorPopupMenu"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mixin.action.GenerateShadowAction" id="GenerateShadowAction"
- text="Shadow Members..."
- description="Add a @Shadow for the selected members">
- <add-to-group group-id="GenerateGroup" anchor="last"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mixin.action.GenerateOverwriteAction" id="GenerateOverwriteAction"
- text="Overwrite Methods..."
- description="Add an @Overwrite for the selected methods">
- <add-to-group group-id="GenerateGroup" anchor="last"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mixin.action.GenerateSoftImplementsAction"
- id="GenerateSoftImplementsAction"
- text="Soft-Implement Methods..."
- description="Add a soft implementation for the selected methods">
- <add-to-group group-id="GenerateGroup" anchor="last"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mixin.action.CopyMixinTargetReferenceAction"
- id="CopyMixinTargetReferenceAction"
- text="Mixin Target Reference"
- description="Copy the reference to the element for use in an injector">
- <add-to-group relative-to-action="CopyReference" anchor="after" group-id="Copy.Paste.Special"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mixin.action.GenerateAccessorAction" id="GenerateAccessorAction"
- text="Generate Accessor/Invoker"
- description="Generate an accessor for the selected member">
- <add-to-group group-id="GenerateGroup" anchor="last"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mcp.actions.FindSrgMappingAction" id="FindSrgMappingAction"
- text="Get SRG Name"
- description="Find the associated SRG mapping for this element">
- <add-to-group relative-to-action="EditorPopupMenu2" anchor="after" group-id="EditorPopupMenu2"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mcp.actions.CopyAtAction" id="CopyATAction"
- text="AT Entry"
- description="Copy the reference to clipboard in Access Transformer format">
- <add-to-group relative-to-action="CopyReference" anchor="after" group-id="Copy.Paste.Special"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mcp.actions.GotoAtEntryAction" id="GotoAtEntry"
- text="AT Entry"
- description="Go to the relevant Access Transformer entry, if it exists">
- <add-to-group group-id="EditorPopupMenu.GoTo"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mcp.actions.CopyCoremodTargetAction" id="CopyCoremodTargetAction"
- text="Coremod Target Reference"
- description="Copy the reference to the element for use in a javascript coremod">
- <add-to-group relative-to-action="CopyReference" anchor="after" group-id="Copy.Paste.Special"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mcp.actions.LookupMemberAction" id="LookupMcpMember"
- text="Lookup MCP Member"
- description="Lookup MCP mapping info on a SRG field or method">
- <keyboard-shortcut first-keystroke="control alt shift M" keymap="$default"/>
- </action>
- <action class="com.demonwav.mcdev.translations.actions.SortTranslationsAction" id="SortMcTranslationsAction"
- text="Sort Translations by Specified Order"
- description="Sorts translations by specified order">
- <add-to-group relative-to-action="EditorPopupMenu2" anchor="after" group-id="EditorPopupMenu"/>
- </action>
- <action class="com.demonwav.mcdev.insight.generation.MinecraftClassCreateAction" id="CreateMinecraftClass"
- text="Minecraft Class" description="Create skeleton classes used in Minecraft Mods">
- <add-to-group group-id="NewGroup" anchor="before" relative-to-action="NewFile"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mcp.actions.CopyAwAction" id="CopyAWAction"
- text="AW Entry"
- description="Copy the reference to clipboard in Access Widener format">
- <add-to-group relative-to-action="CopyATAction" anchor="after" group-id="Copy.Paste.Special"/>
- </action>
- <action id="com.demonwav.mcdev.creator.custom.expression.EvaluateTemplateConditionAction"
- class="com.demonwav.mcdev.creator.custom.EvaluateTemplateExpressionAction"
- text="Evaluate Template Expression"/>
- </actions>
- </idea-plugin>
- <!--
- Minecraft Development for IntelliJ
- https://mcdev.io/
- Copyright (C) 2024 minecraft-dev
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published
- by the Free Software Foundation, version 3.0 only.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see https://www.gnu.org/licenses/.
- -->
- <idea-plugin require-restart="true">
- <depends>com.intellij.modules.java</depends>
- <depends>org.jetbrains.idea.maven</depends>
- <depends>com.intellij.gradle</depends>
- <depends optional="true" config-file="mcdev-kotlin.xml">org.jetbrains.kotlin</depends>
- <depends>org.intellij.groovy</depends>
- <depends>com.intellij.properties</depends>
- <depends>ByteCodeViewer</depends>
- <depends optional="true" config-file="mcdev-toml.xml">org.toml.lang</depends>
- <depends optional="true" config-file="mcdev-yaml.xml">org.jetbrains.plugins.yaml</depends>
- <id>com.demonwav.minecraft-dev</id>
- <name>Minecraft Development</name>
- <vendor email="[email protected]" url="https://mcdev.io/">minecraft-dev</vendor>
- <description><![CDATA[
- Provides first-class support for every major Java Minecraft modding or plugin development platform, including:
- <ul>
- <li>Bukkit</li>
- <li>Spigot</li>
- <li>Paper</li>
- <li>Sponge</li>
- <li>Forge</li>
- <li>NeoForge</li>
- <li>Fabric</li>
- <li>Architectury</li>
- <li>Velocity</li>
- <li>BungeeCord</li>
- </ul>
- Also includes additional features supporting MCP mappings and Mixins for mod development. This plugin also
- includes a text-based NBT editor.
- ]]></description>
- <resource-bundle>messages.MinecraftDevelopment</resource-bundle>
- <change-notes><![CDATA[
- Please report issues to <a href="https://github.com/minecraft-dev/MinecraftDev/issues">the issue tracker</a>!
- ]]>
- </change-notes>
- <extensionPoints>
- <extensionPoint name="platformTypeWizard"
- interface="com.demonwav.mcdev.creator.platformtype.PlatformTypeStep$Factory" dynamic="true"/>
- <extensionPoint name="modPlatformWizard"
- interface="com.demonwav.mcdev.creator.platformtype.ModPlatformStep$Factory" dynamic="true"/>
- <extensionPoint name="pluginPlatformWizard"
- interface="com.demonwav.mcdev.creator.platformtype.PluginPlatformStep$Factory" dynamic="true"/>
- <extensionPoint name="bukkitPlatformWizard"
- interface="com.demonwav.mcdev.platform.bukkit.creator.BukkitPlatformStep$Factory"
- dynamic="true"/>
- <extensionPoint name="bungeePlatformWizard"
- interface="com.demonwav.mcdev.platform.bungeecord.creator.BungeePlatformStep$Factory"
- dynamic="true"/>
- <extensionPoint name="projectSetupFinalizer"
- interface="com.demonwav.mcdev.creator.ProjectSetupFinalizer$Factory" dynamic="true"/>
- <extensionPoint name="buildSystemWizard"
- interface="com.demonwav.mcdev.creator.buildsystem.AbstractBuildSystemStep$Factory"
- dynamic="true"/>
- <extensionPoint name="buildSystemSupport"
- beanClass="com.demonwav.mcdev.creator.buildsystem.BuildSystemSupportEntry" dynamic="true">
- <with attribute="implementation" implements="com.demonwav.mcdev.creator.buildsystem.BuildSystemSupport"/>
- </extensionPoint>
- <extensionPoint name="gradleFileType" interface="com.demonwav.mcdev.creator.buildsystem.GradleFile$Type"
- dynamic="true"/>
- <extensionPoint name="creatorPropertyType"
- beanClass="com.demonwav.mcdev.creator.custom.types.CreatorPropertyFactoryBean" dynamic="true">
- <with attribute="implementation"
- implements="com.demonwav.mcdev.creator.custom.types.CreatorPropertyFactory"/>
- </extensionPoint>
- <extensionPoint name="creatorTemplateProvider"
- beanClass="com.demonwav.mcdev.creator.custom.providers.TemplateProviderBean" dynamic="true">
- <with attribute="implementation" implements="com.demonwav.mcdev.creator.custom.providers.TemplateProvider"/>
- </extensionPoint>
- <extensionPoint name="creatorFinalizer"
- beanClass="com.demonwav.mcdev.creator.custom.finalizers.CreatorFinalizerBean" dynamic="true">
- <with attribute="implementation"
- implements="com.demonwav.mcdev.creator.custom.finalizers.CreatorFinalizer"/>
- </extensionPoint>
- <extensionPoint name="mixinSelectorParser" interface="com.demonwav.mcdev.platform.mixin.reference.MixinSelectorParser" dynamic="true"/>
- <extensionPoint name="mixinAnnotationHandler" beanClass="com.demonwav.mcdev.platform.mixin.handlers.MixinAnnotationHandlerInfo" dynamic="true">
- <with attribute="implementation" implements="com.demonwav.mcdev.platform.mixin.handlers.MixinAnnotationHandler"/>
- </extensionPoint>
- <extensionPoint name="injectionPoint"
- beanClass="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.InjectionPointInfo"
- dynamic="true">
- <with attribute="implementation"
- implements="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.InjectionPoint"/>
- </extensionPoint>
- <extensionPoint name="injectionPointAnnotation"
- beanClass="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.InjectionPointAnnotation"
- dynamic="true"/>
- <extensionPoint name="eventGenHelper" beanClass="com.intellij.lang.LanguageExtensionPoint" dynamic="true">
- <with attribute="implementationClass" implements="com.demonwav.mcdev.insight.generation.EventGenHelper"/>
- </extensionPoint>
- </extensionPoints>
- <extensions defaultExtensionNs="com.demonwav.minecraft-dev">
- <platformTypeWizard implementation="com.demonwav.mcdev.creator.platformtype.ModPlatformStep$TypeFactory"/>
- <platformTypeWizard implementation="com.demonwav.mcdev.creator.platformtype.PluginPlatformStep$TypeFactory"/>
- <modPlatformWizard implementation="com.demonwav.mcdev.platform.forge.creator.ForgePlatformStep$Factory"/>
- <modPlatformWizard implementation="com.demonwav.mcdev.platform.neoforge.creator.NeoForgePlatformStep$Factory"/>
- <modPlatformWizard implementation="com.demonwav.mcdev.platform.fabric.creator.FabricPlatformStep$Factory"/>
- <modPlatformWizard
- implementation="com.demonwav.mcdev.platform.architectury.creator.ArchitecturyPlatformStep$Factory"/>
- <pluginPlatformWizard implementation="com.demonwav.mcdev.platform.sponge.creator.SpongePlatformStep$Factory"/>
- <pluginPlatformWizard
- implementation="com.demonwav.mcdev.platform.bukkit.creator.BukkitPlatformStep$PlatformFactory"/>
- <pluginPlatformWizard
- implementation="com.demonwav.mcdev.platform.velocity.creator.VelocityPlatformStep$Factory"/>
- <pluginPlatformWizard
- implementation="com.demonwav.mcdev.platform.bungeecord.creator.BungeePlatformStep$PlatformFactory"/>
- <bukkitPlatformWizard implementation="com.demonwav.mcdev.platform.bukkit.creator.PaperPlatformStep$Factory"/>
- <bukkitPlatformWizard implementation="com.demonwav.mcdev.platform.bukkit.creator.SpigotPlatformStep$Factory"/>
- <bungeePlatformWizard
- implementation="com.demonwav.mcdev.platform.bungeecord.creator.WaterfallPlatformStep$Factory"/>
- <bungeePlatformWizard
- implementation="com.demonwav.mcdev.platform.bungeecord.creator.BungeeMainPlatformStep$Factory"/>
- <projectSetupFinalizer implementation="com.demonwav.mcdev.creator.JdkProjectSetupFinalizer$Factory"/>
- <buildSystemWizard implementation="com.demonwav.mcdev.creator.buildsystem.GradleBuildSystem"/>
- <buildSystemWizard implementation="com.demonwav.mcdev.creator.buildsystem.MavenBuildSystem"/>
- <buildSystemSupport platform="Forge" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.forge.creator.ForgeGradleSupport"/>
- <buildSystemSupport platform="NeoForge" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.neoforge.creator.NeoForgeGradleSupport"/>
- <buildSystemSupport platform="Fabric" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.fabric.creator.FabricGradleSupport"/>
- <buildSystemSupport platform="Architectury" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.architectury.creator.ArchitecturyGradleSupport"/>
- <buildSystemSupport platform="Sponge" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.sponge.creator.SpongeGradleSupport"/>
- <buildSystemSupport platform="Sponge" buildSystem="Maven"
- implementation="com.demonwav.mcdev.platform.sponge.creator.SpongeMavenSupport"/>
- <buildSystemSupport platform="Bukkit" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.bukkit.creator.BukkitGradleSupport"/>
- <buildSystemSupport platform="Bukkit" buildSystem="Maven"
- implementation="com.demonwav.mcdev.platform.bukkit.creator.BukkitMavenSupport"/>
- <buildSystemSupport platform="Velocity" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.velocity.creator.VelocityGradleSupport"/>
- <buildSystemSupport platform="Velocity" buildSystem="Maven"
- implementation="com.demonwav.mcdev.platform.velocity.creator.VelocityMavenSupport"/>
- <buildSystemSupport platform="BungeeCord" buildSystem="Gradle"
- implementation="com.demonwav.mcdev.platform.bungeecord.creator.BungeeGradleSupport"/>
- <buildSystemSupport platform="BungeeCord" buildSystem="Maven"
- implementation="com.demonwav.mcdev.platform.bungeecord.creator.BungeeMavenSupport"/>
- <gradleFileType implementation="com.demonwav.mcdev.creator.buildsystem.GroovyGradleFile$Type"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.ArchitecturyVersionsCreatorProperty$Factory"
- type="architectury_versions"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.BooleanCreatorProperty$Factory"
- type="boolean"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.BuildSystemCoordinatesCreatorProperty$Factory"
- type="build_system_coordinates"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.ClassFqnCreatorProperty$Factory"
- type="class_fqn"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.FabricVersionsCreatorProperty$Factory"
- type="fabric_versions"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.ForgeVersionsCreatorProperty$Factory"
- type="forge_versions"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.InlineStringListCreatorProperty$Factory"
- type="inline_string_list"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.IntegerCreatorProperty$Factory"
- type="integer"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.JdkCreatorProperty$Factory"
- type="jdk"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.LicenseCreatorProperty$Factory"
- type="license"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.MavenArtifactVersionCreatorProperty$Factory"
- type="maven_artifact_version"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.NeoForgeVersionsCreatorProperty$Factory"
- type="neoforge_versions"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.ParchmentCreatorProperty$Factory"
- type="parchment"/>
- <creatorPropertyType
- implementation="com.demonwav.mcdev.creator.custom.types.SemanticVersionCreatorProperty$Factory"
- type="semantic_version"/>
- <creatorPropertyType implementation="com.demonwav.mcdev.creator.custom.types.StringCreatorProperty$Factory"
- type="string"/>
- <creatorTemplateProvider key="builtin"
- implementation="com.demonwav.mcdev.creator.custom.providers.BuiltinTemplateProvider"/>
- <creatorTemplateProvider key="remote"
- implementation="com.demonwav.mcdev.creator.custom.providers.RemoteTemplateProvider"/>
- <creatorTemplateProvider key="local"
- implementation="com.demonwav.mcdev.creator.custom.providers.LocalTemplateProvider"/>
- <creatorTemplateProvider key="archive"
- implementation="com.demonwav.mcdev.creator.custom.providers.ZipTemplateProvider"/>
- <creatorFinalizer implementation="com.demonwav.mcdev.creator.custom.finalizers.ImportGradleProjectFinalizer"
- type="import_gradle_project"/>
- <creatorFinalizer implementation="com.demonwav.mcdev.creator.custom.finalizers.ImportMavenProjectFinalizer"
- type="import_maven_project"/>
- <creatorFinalizer implementation="com.demonwav.mcdev.creator.custom.finalizers.RunGradleTasksFinalizer"
- type="run_gradle_tasks"/>
- <creatorFinalizer implementation="com.demonwav.mcdev.creator.custom.finalizers.GitAddAllFinalizer"
- type="git_add_all"/>
- <mixinSelectorParser id="regex" implementation="com.demonwav.mcdev.platform.mixin.reference.MixinRegexParser"
- order="before memberReference"/>
- <mixinSelectorParser id="memberReference"
- implementation="com.demonwav.mcdev.platform.mixin.reference.MixinMemberParser"/>
- <mixinSelectorParser
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.NewInsnSelectorParser"
- order="before memberReference"/>
- <mixinSelectorParser implementation="com.demonwav.mcdev.platform.mixin.reference.DescSelectorParser"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.Overwrite"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.OverwriteHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.Shadow"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.ShadowHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.gen.Accessor"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.AccessorHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.gen.Invoker"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.InvokerHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.injection.Inject"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.InjectAnnotationHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.injection.ModifyArg"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.ModifyArgHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.injection.ModifyArgs"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.ModifyArgsHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.injection.ModifyConstant"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.ModifyConstantHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.injection.ModifyVariable"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.ModifyVariableHandler"/>
- <mixinAnnotationHandler annotation="org.spongepowered.asm.mixin.injection.Redirect"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.RedirectInjectorHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.ModifyExpressionValue"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.ModifyExpressionValueHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.ModifyReceiver"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.ModifyReceiverHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.ModifyReturnValue"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.ModifyReturnValueHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.WrapMethodHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.WrapOperationHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.WrapWithCondition"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.WrapWithConditionHandler"/>
- <mixinAnnotationHandler annotation="com.llamalad7.mixinextras.injector.v2.WrapWithCondition"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.WrapWithConditionHandler"/>
- <injectionPoint atCode="INVOKE"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.InvokeInjectionPoint"/>
- <injectionPoint atCode="INVOKE_ASSIGN"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.InvokeAssignInjectionPoint"/>
- <injectionPoint atCode="INVOKE_STRING"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.ConstantStringMethodInjectionPoint"/>
- <injectionPoint atCode="FIELD"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.FieldInjectionPoint"/>
- <injectionPoint atCode="NEW"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.NewInsnInjectionPoint"/>
- <injectionPoint atCode="HEAD"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.HeadInjectionPoint"/>
- <injectionPoint atCode="RETURN"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.ReturnInjectionPoint"/>
- <injectionPoint atCode="TAIL"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.TailInjectionPoint"/>
- <injectionPoint atCode="CTOR_HEAD"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.CtorHeadInjectionPoint"/>
- <injectionPoint atCode="LOAD"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.LoadInjectionPoint"/>
- <injectionPoint atCode="STORE"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.StoreInjectionPoint"/>
- <injectionPoint atCode="CONSTANT"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.ConstantInjectionPoint"/>
- <injectionPoint atCode="JUMP"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.injectionPoint.JumpInjectionPoint"/>
- <injectionPoint atCode="MIXINEXTRAS:EXPRESSION"
- implementation="com.demonwav.mcdev.platform.mixin.handlers.mixinextras.ExpressionInjectionPoint"/>
- <injectionPointAnnotation annotation="org.spongepowered.asm.mixin.injection.Constant" atCode="CONSTANT"/>
- <eventGenHelper language="JAVA" implementationClass="com.demonwav.mcdev.insight.generation.JavaEventGenHelper"/>
- </extensions>
- <extensions defaultExtensionNs="com.intellij">
- <!-- This is grouped in the following order EXCEPT for localInspections and moduleTypes. All localInspections are grouped at the
- end, but the individual local inspections themselves should also be ordered in this way.
- * No platform
- * Adventure
- * Bukkit
- * Sponge
- * Forge
- * NeoForge
- * Fabric
- * MCP
- * Mixin
- * Velocity
- * BungeeCord
- -->
- <!--region NO PLATFORM-->
- <!---->
- <moduleBuilder id="CUSTOM_MINECRAFT_MODULE"
- builderClass="com.demonwav.mcdev.creator.custom.CustomMinecraftModuleBuilder"/>
- <postStartupActivity implementation="com.demonwav.mcdev.creator.custom.TemplateProjectFinalizerActivity"/>
- <moduleBuilder id="MINECRAFT_MODULE" builderClass="com.demonwav.mcdev.creator.MinecraftModuleBuilder"/>
- <facetType implementation="com.demonwav.mcdev.facet.MinecraftFacetType"/>
- <postStartupActivity implementation="com.demonwav.mcdev.facet.MinecraftFacetDetector"/>
- <notificationGroup id="Minecraft project creator" displayType="STICKY_BALLOON"/>
- <notificationGroup id="Minecraft facet" displayType="STICKY_BALLOON"/>
- <!-- File templates are for project creations -->
- <fileTemplateGroup implementation="com.demonwav.mcdev.util.MinecraftTemplates"/>
- <!-- Project-independent Line Marker Providers -->
- <codeInsight.lineMarkerProvider language=""
- implementationClass="com.demonwav.mcdev.insight.ListenerLineMarkerProvider"/>
- <codeInsight.lineMarkerProvider language=""
- implementationClass="com.demonwav.mcdev.insight.ColorLineMarkerProvider"/>
- <codeInsight.lineMarkerProvider language=""
- implementationClass="com.demonwav.mcdev.insight.PluginLineMarkerProvider"/>
- <!-- Project-independent Annotators-->
- <annotator language="UAST" implementationClass="com.demonwav.mcdev.insight.ListenerEventAnnotator"/>
- <annotator language="UAST" implementationClass="com.demonwav.mcdev.insight.ColorAnnotator"/>
- <!-- Project-independent Inspection Suppressors -->
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.inspection.StaticListenerInspectionSuppressor"/>
- <!-- Project View Node Decorators provide the project icons -->
- <projectViewNodeDecorator implementation="com.demonwav.mcdev.platform.MinecraftProjectViewNodeDecorator"/>
- <deadCode implementation="com.demonwav.mcdev.inspection.PlatformAnnotationEntryPoint"/>
- <!-- Application Configurable provides the Minecraft settings page -->
- <applicationConfigurable displayName="Minecraft Development"
- id="Settings.Minecraft"
- groupId="language"
- instance="com.demonwav.mcdev.MinecraftConfigurable"/>
- <projectConfigurable displayName="Project-Specific Settings"
- id="Settings.Minecraft.Project"
- parentId="Settings.Minecraft"
- instance="com.demonwav.mcdev.MinecraftProjectConfigurable"/>
- <projectConfigurable displayName="Language Template"
- id="Settings.Minecraft.TranslationTemplate"
- parentId="Settings.Minecraft"
- instance="com.demonwav.mcdev.translations.sorting.TranslationTemplateConfigurable"/>
- <!-- NBT -->
- <fileType name="NBT" implementationClass="com.demonwav.mcdev.nbt.filetype.NbtFileType" fieldName="INSTANCE"
- extensions="nbt"/>
- <fileTypeDetector implementation="com.demonwav.mcdev.nbt.filetype.NbtFileTypeDetector"/>
- <fileEditorProvider implementation="com.demonwav.mcdev.nbt.editor.NbtFileEditorProvider"/>
- <notificationGroup id="NBT Save Error" displayType="STICKY_BALLOON"/>
- <notificationGroup id="NBT Save Success" displayType="STICKY_BALLOON"/>
- <!-- Text representation of NBT -->
- <fileType name="NBTT" language="NBTT" implementationClass="com.demonwav.mcdev.nbt.lang.NbttFileType"
- fieldName="INSTANCE" extensions="nbtt"/>
- <lang.parserDefinition language="NBTT" implementationClass="com.demonwav.mcdev.nbt.lang.NbttParserDefinition"/>
- <lang.syntaxHighlighterFactory language="NBTT"
- implementationClass="com.demonwav.mcdev.nbt.lang.colors.NbttSyntaxHighlighterFactory"/>
- <lang.braceMatcher language="NBTT" implementationClass="com.demonwav.mcdev.nbt.lang.NbttBraceMatcher"/>
- <lang.quoteHandler language="NBTT" implementationClass="com.demonwav.mcdev.nbt.lang.NbttQuoteHandler"/>
- <lang.formatter language="NBTT"
- implementationClass="com.demonwav.mcdev.nbt.lang.format.NbttFormattingModelBuilder"/>
- <codeStyleSettingsProvider implementation="com.demonwav.mcdev.nbt.lang.format.NbttCodeStyleSettingsProvider"/>
- <langCodeStyleSettingsProvider
- implementation="com.demonwav.mcdev.nbt.lang.format.NbttLanguageCodeStyleSettingsProvider"/>
- <lang.foldingBuilder language="NBTT"
- implementationClass="com.demonwav.mcdev.nbt.lang.format.NbttFoldingBuilder"/>
- <colorSettingsPage implementation="com.demonwav.mcdev.nbt.lang.colors.NbttColorSettingsPage"/>
- <annotator language="NBTT" implementationClass="com.demonwav.mcdev.nbt.lang.colors.NbttAnnotator"/>
- <additionalTextAttributes scheme="Default" file="colorSchemes/NbttDefault.xml"/>
- <additionalTextAttributes scheme="Darcula" file="colorSchemes/NbttDarcula.xml"/>
- <codeInsight.parameterNameHints language="NBTT"
- implementationClass="com.demonwav.mcdev.nbt.lang.format.NbttParameterNameHints"/>
- <lang.fileViewProviderFactory language="NBTT"
- implementationClass="com.demonwav.mcdev.nbt.lang.NbttFileViewProviderFactory"/>
- <!-- Minecraft localization files -->
- <fileType name="MCLang" language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.lang.LangFileType" fieldName="INSTANCE"
- extensions="lang"/>
- <lang.parserDefinition language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.lang.LangParserDefinition"/>
- <lang.syntaxHighlighterFactory language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.lang.colors.LangSyntaxHighlighterFactory"/>
- <lang.psiStructureViewFactory language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.lang.structure.LangStructureViewFactory"/>
- <lang.findUsagesProvider language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.reference.LangFindUsagesProvider"/>
- <lang.findUsagesProvider language="JSON"
- implementationClass="com.demonwav.mcdev.translations.reference.JsonFindUsagesProvider"
- order="first"/>
- <lang.foldingBuilder language="UAST"
- implementationClass="com.demonwav.mcdev.translations.TranslationFoldingBuilder"/>
- <lang.formatter language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.lang.formatting.LangFormattingModelBuilder"/>
- <lang.commenter language="MCLang" implementationClass="com.demonwav.mcdev.translations.lang.LangCommenter"/>
- <spellchecker.support language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.lang.spellcheck.LangSpellcheckingStrategy"/>
- <psi.referenceContributor language="UAST"
- implementation="com.demonwav.mcdev.translations.reference.UastReferenceContributor"/>
- <psi.referenceContributor language="MCLang"
- implementation="com.demonwav.mcdev.translations.reference.LangReferenceContributor"/>
- <psi.referenceContributor language="JSON"
- implementation="com.demonwav.mcdev.translations.reference.JsonReferenceContributor"/>
- <gotoSymbolContributor
- implementation="com.demonwav.mcdev.translations.reference.TranslationGotoSymbolContributor"/>
- <colorSettingsPage implementation="com.demonwav.mcdev.translations.lang.colors.LangColorSettingsPage"/>
- <renameInputValidator implementation="com.demonwav.mcdev.translations.lang.LangRenameInputValidator"/>
- <editorNotificationProvider
- implementation="com.demonwav.mcdev.translations.TranslationEditorNotificationProvider"/>
- <notificationGroup id="Translations sorting error" displayType="STICKY_BALLOON"/>
- <notificationGroup id="Translation support error" displayType="STICKY_BALLOON"/>
- <elementDescriptionProvider
- implementation="com.demonwav.mcdev.translations.reference.TranslationDescriptionProvider"/>
- <referencesSearch implementation="com.demonwav.mcdev.translations.reference.TranslationReferenceSearch"/>
- <annotator language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.intentions.TranslationFileAnnotator"/>
- <annotator language="JSON"
- implementationClass="com.demonwav.mcdev.translations.intentions.TranslationFileAnnotator"/>
- <intentionAction>
- <language>UAST</language>
- <className>com.demonwav.mcdev.translations.intentions.ConvertToTranslationIntention</className>
- <category>Minecraft</category>
- <descriptionDirectoryName>convertToTranslation</descriptionDirectoryName>
- </intentionAction>
- <codeFoldingOptionsProvider instance="com.demonwav.mcdev.translations.TranslationCodeFoldingOptionsProvider"/>
- <applicationService serviceImplementation="com.demonwav.mcdev.translations.TranslationFoldingSettings"/>
- <typedHandler implementation="com.demonwav.mcdev.translations.lang.LangTypedHandlerDelegate"/>
- <completion.contributor language="MCLang"
- implementationClass="com.demonwav.mcdev.translations.reference.LangCompletionContributor"/>
- <completion.contributor language="JSON"
- implementationClass="com.demonwav.mcdev.translations.reference.JsonCompletionContributor"/>
- <completion.confidence language="JAVA"
- implementationClass="com.demonwav.mcdev.translations.reference.TranslationReferenceCompletionConfidence"
- order="before javaSkipAutopopupInStrings"/>
- <fileBasedIndex implementation="com.demonwav.mcdev.translations.index.TranslationIndex"/>
- <fileBasedIndex implementation="com.demonwav.mcdev.translations.index.TranslationInverseIndex"/>
- <java.externalAnnotation.locationProvider
- implementation="com.demonwav.mcdev.translations.identification.TranslationAnnotationsLocationProvider"/>
- <externalAnnotationsArtifactsResolver
- implementation="com.demonwav.mcdev.translations.identification.TranslationExternalAnnotationsArtifactsResolver"
- order="first"/>
- <applicationService serviceImplementation="com.demonwav.mcdev.MinecraftSettings"/>
- <projectService serviceImplementation="com.demonwav.mcdev.TranslationSettings"/>
- <errorHandler implementation="com.demonwav.mcdev.errorreporter.ErrorReporter"/>
- <!--endregion-->
- <!--region ADVENTURE-->
- <!---->
- <dependencySupport coordinate="net.kyori:adventure-api" kind="java"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.adventure.framework.AdventurePresentationProvider"/>
- <codeInsight.lineMarkerProvider language=""
- implementationClass="com.demonwav.mcdev.platform.adventure.color.AdventureColorLineMarkerProvider"/>
- <!--endregion-->
- <!--region BUKKIT-->
- <!---->
- <dependencySupport coordinate="org.bukkit:bukkit" kind="java"/>
- <dependencySupport coordinate="org.spigotmc:spigot-api" kind="java"/>
- <dependencySupport coordinate="com.destroystokyo.paper:paper-api" kind="java"/>
- <dependencySupport coordinate="io.papermc.paper:paper-api" kind="java"/>
- <fileIconProvider implementation="com.demonwav.mcdev.platform.bukkit.BukkitFileIconProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.bukkit.framework.BukkitPresentationProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.bukkit.framework.SpigotPresentationProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.bukkit.framework.OldPaperPresentationProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.bukkit.framework.PaperPresentationProvider"/>
- <!--endregion-->
- <!--region SPONGE-->
- <!---->
- <dependencySupport coordinate="org.spongepowered:spongeapi" kind="java"/>
- <!-- Sponge Line Marker Provider -->
- <codeInsight.lineMarkerProvider language=""
- implementationClass="com.demonwav.mcdev.platform.sponge.color.SpongeColorLineMarkerProvider"/>
- <implicitUsageProvider implementation="com.demonwav.mcdev.platform.sponge.insight.SpongeImplicitUsageProvider"/>
- <!-- Sponge Annotator -->
- <annotator language="UAST" implementationClass="com.demonwav.mcdev.platform.sponge.color.SpongeColorAnnotator"/>
- <psi.referenceContributor language="UAST"
- implementation="com.demonwav.mcdev.platform.sponge.reference.SpongeReferenceContributor"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.sponge.framework.SpongePresentationProvider"/>
- <importFilter implementation="com.demonwav.mcdev.platform.sponge.SpongeImportFilter"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.sponge.inspection.suppress.SpongeGetterParamOptionalInspectionSuppressor"/>
- <!--endregion-->
- <!--region FORGE-->
- <dependencySupport coordinate="net.minecraftforge:forge" kind="java"/>
- <psi.referenceContributor language="JAVA"
- implementation="com.demonwav.mcdev.platform.forge.reflection.reference.ReflectionReferenceContributor"/>
- <fileIconProvider implementation="com.demonwav.mcdev.platform.forge.ForgeFileIconProvider"/>
- <implicitUsageProvider implementation="com.demonwav.mcdev.platform.forge.insight.ForgeImplicitUsageProvider"/>
- <!-- Forge Annotator -->
- <annotator language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.SidedProxyAnnotator"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.forge.framework.ForgePresentationProvider"/>
- <externalProjectDataService
- implementation="com.demonwav.mcdev.platform.forge.gradle.ForgeRunConfigDataService"/>
- <!--endregion-->
- <!--region NEOFORGE-->
- <dependencySupport coordinate="net.neoforged:neoforge" kind="java"/>
- <fileIconProvider implementation="com.demonwav.mcdev.platform.neoforge.NeoForgeFileIconProvider"/>
- <implicitUsageProvider
- implementation="com.demonwav.mcdev.platform.neoforge.insight.NeoForgeImplicitUsageProvider"/>
- <!-- NeoForge Annotator -->
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.neoforge.framework.NeoForgePresentationProvider"/>
- <externalProjectDataService
- implementation="com.demonwav.mcdev.platform.neoforge.gradle.NeoForgeRunConfigDataService"/>
- <!--endregion-->
- <!--region FABRIC-->
- <dependencySupport coordinate="net.fabricmc:fabric-loader" kind="java"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.fabric.framework.FabricPresentationProvider"/>
- <fileIconProvider implementation="com.demonwav.mcdev.platform.fabric.FabricFileIconProvider"/>
- <psi.referenceContributor language="JSON"
- implementation="com.demonwav.mcdev.platform.fabric.reference.FabricReferenceContributor"/>
- <resolveScopeEnlarger
- implementation="com.demonwav.mcdev.platform.fabric.reference.FabricModJsonResolveScopeEnlarger"/>
- <useScopeEnlarger implementation="com.demonwav.mcdev.platform.fabric.reference.FabricClientUseScopeEnlarger"/>
- <!--endregion-->
- <!--region ARCHITECTURY-->
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.architectury.framework.ArchitecturyPresentationProvider"/>
- <!--endregion-->
- <!--region MCP-->
- <!---->
- <externalProjectDataService implementation="com.demonwav.mcdev.platform.mcp.gradle.McpDataService"/>
- <externalProjectDataService implementation="com.demonwav.mcdev.platform.mcp.fabricloom.FabricLoomDataService"/>
- <externalProjectDataService
- implementation="com.demonwav.mcdev.platform.mcp.vanillagradle.VanillaGradleDataService"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.mcp.framework.McpPresentationProvider"/>
- <runConfigurationExtension implementation="com.demonwav.mcdev.platform.mcp.debug.McpRunConfigurationExtension"/>
- <attachSourcesProvider
- implementation="com.demonwav.mcdev.platform.mcp.fabricloom.FabricLoomDecompileSourceProvider"/>
- <attachSourcesProvider
- implementation="com.demonwav.mcdev.platform.mcp.vanillagradle.VanillaGradleDecompileSourceProvider"/>
- <!-- access transformer file type -->
- <fileType name="Access Transformers" language="Access Transformers"
- implementationClass="com.demonwav.mcdev.platform.mcp.at.AtFileType" fieldName="INSTANCE"
- patterns="*_at.cfg"/>
- <lang.parserDefinition language="Access Transformers"
- implementationClass="com.demonwav.mcdev.platform.mcp.at.AtParserDefinition"/>
- <lang.syntaxHighlighterFactory language="Access Transformers"
- implementationClass="com.demonwav.mcdev.platform.mcp.at.AtSyntaxHighlighterFactory"/>
- <colorSettingsPage implementation="com.demonwav.mcdev.platform.mcp.at.AtColorSettingsPage"/>
- <lang.commenter language="Access Transformers"
- implementationClass="com.demonwav.mcdev.platform.mcp.at.AtCommenter"/>
- <typedHandler implementation="com.demonwav.mcdev.platform.mcp.at.completion.AtTypedHandlerDelegate"/>
- <completion.contributor language="Access Transformers"
- implementationClass="com.demonwav.mcdev.platform.mcp.at.completion.AtCompletionContributor"/>
- <gotoDeclarationHandler implementation="com.demonwav.mcdev.platform.mcp.at.AtGotoDeclarationHandler"/>
- <annotator language="Access Transformers" implementationClass="com.demonwav.mcdev.platform.mcp.at.AtAnnotator"/>
- <!-- access widener file type -->
- <fileType name="Access Widener" language="Access Widener"
- implementationClass="com.demonwav.mcdev.platform.mcp.aw.AwFileType" fieldName="INSTANCE"
- patterns="*.accesswidener"/>
- <lang.parserDefinition language="Access Widener"
- implementationClass="com.demonwav.mcdev.platform.mcp.aw.AwParserDefinition"/>
- <lang.syntaxHighlighterFactory language="Access Widener"
- implementationClass="com.demonwav.mcdev.platform.mcp.aw.AwSyntaxHighlighterFactory"/>
- <colorSettingsPage implementation="com.demonwav.mcdev.platform.mcp.aw.AwColorSettingsPage"/>
- <lang.commenter language="Access Widener" implementationClass="com.demonwav.mcdev.platform.mcp.aw.AwCommenter"/>
- <annotator language="Access Widener" implementationClass="com.demonwav.mcdev.platform.mcp.aw.AwAnnotator"/>
- <completion.contributor language="Access Widener"
- implementationClass="com.demonwav.mcdev.platform.mcp.aw.AwCompletionContributor"/>
- <codeInsight.unresolvedReferenceQuickFixProvider
- implementation="com.demonwav.mcdev.platform.mcp.aw.fixes.CopyAwAccessibleEntryFix$Provider"/>
- <moduleService serviceImplementation="com.demonwav.mcdev.platform.mcp.McpModuleSettings"/>
- <gotoSymbolContributor
- implementation="com.demonwav.mcdev.platform.mcp.navigation.SrgMemberChooseByNameContributor"/>
- <unscrambleSupport implementation="com.demonwav.mcdev.platform.mcp.fabricloom.TinyUnscrambler"/>
- <unscrambleSupport implementation="com.demonwav.mcdev.platform.mcp.srg.McpUnscrambler"/>
- <!--endregion-->
- <!--region MIXIN-->
- <!---->
- <dependencySupport coordinate="org.spongepowered:mixin" kind="java"/>
- <!-- Folding -->
- <applicationService serviceImplementation="com.demonwav.mcdev.platform.mixin.folding.MixinFoldingSettings"/>
- <codeFoldingOptionsProvider instance="com.demonwav.mcdev.platform.mixin.folding.MixinFoldingOptionsProvider"/>
- <lang.foldingBuilder language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.folding.MixinObjectCastFoldingBuilder"/>
- <lang.foldingBuilder language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.folding.MixinTargetDescriptorFoldingBuilder"/>
- <lang.foldingBuilder language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.folding.AccessorMixinFoldingBuilder"/>
- <lang.foldingBuilder language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEDefinitionFoldingBuilder"/>
- <implicitUsageProvider implementation="com.demonwav.mcdev.platform.mixin.insight.MixinImplicitUsageProvider"/>
- <deadCode implementation="com.demonwav.mcdev.platform.mixin.insight.MixinEntryPoint"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.suppress.DefaultAnnotationParamInspectionSuppressor"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.suppress.DynamicInspectionSuppressor"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.suppress.MixinClassCastInspectionSuppressor"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.suppress.ShadowOverwriteInspectionSuppressor"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.suppress.StaticInvokerUnusedParamInspectionSuppressor"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.shadow.suppress.ShadowNullableInspectionSuppressor"/>
- <lang.inspectionSuppressor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.suppress.SoftImplementInspectionSuppressor"/>
- <!-- Mixin completion -->
- <superMethodsSearch
- implementation="com.demonwav.mcdev.platform.mixin.search.MixinSoftImplementMethodSuperSearcher"/>
- <completion.contributor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.completion.MixinCompletionContributor"
- order="last, before javaLegacy"/>
- <completion.contributor language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.completion.AtArgsCompletionContributor"
- order="first"/>
- <psi.referenceContributor language="JAVA"
- implementation="com.demonwav.mcdev.platform.mixin.reference.MixinReferenceContributor"/>
- <gotoDeclarationHandler implementation="com.demonwav.mcdev.platform.mixin.reference.MethodGTDHandler"
- order="first"/>
- <gotoDeclarationHandler implementation="com.demonwav.mcdev.platform.mixin.reference.DescGTDHandler"
- order="first"/>
- <gotoDeclarationHandler
- implementation="com.demonwav.mcdev.platform.mixin.reference.target.DefinitionReferenceGTDHandler"
- order="first"/>
- <gotoDeclarationHandler implementation="com.demonwav.mcdev.platform.mixin.reference.target.TargetGTDHandler"
- order="first"/>
- <completion.confidence language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.completion.MixinCompletionConfidence"
- order="before javaSkipAutopopupInStrings"/>
- <weigher key="completion"
- implementationClass="com.demonwav.mcdev.platform.mixin.completion.MixinCompletionWeigher"
- id="mcdev.mixin" order="first"/>
- <facet.toolWindow anchor="bottom" icon="/assets/icons/mixin/mixin_class_gutter.png" canCloseContents="true"
- doNotActivateOnStart="true" facetIdList="minecraft" showOnStripeByDefault="false"
- factoryClass="com.demonwav.mcdev.platform.mixin.action.FindMixinsAction$TWFactory"
- id="Find Mixins"/>
- <!-- Mixin configuration -->
- <fileType name="Mixin Json Configuration" language="JSON"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.MixinConfigFileType$Json"
- fieldName="INSTANCE"/>
- <psi.referenceContributor language="JSON"
- implementation="com.demonwav.mcdev.platform.mixin.config.reference.MixinConfigReferenceContributor"/>
- <lang.importOptimizer language="JSON"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.MixinConfigImportOptimizer"/>
- <fileType name="Mixin Json5 Configuration" language="JSON5"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.MixinConfigFileType$Json5"
- fieldName="INSTANCE"/>
- <psi.referenceContributor language="JSON5"
- implementation="com.demonwav.mcdev.platform.mixin.config.reference.MixinConfigReferenceContributor"/>
- <lang.importOptimizer language="JSON5"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.MixinConfigImportOptimizer"/>
- <!-- Mixin Line Marker Providers -->
- <codeInsight.lineMarkerProvider language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.insight.MixinLineMarkerProvider"/>
- <codeInsight.lineMarkerProvider language="JAVA"
- implementationClass="com.demonwav.mcdev.platform.mixin.insight.MixinTargetLineMarkerProvider"/>
- <customJavadocTagProvider implementation="com.demonwav.mcdev.platform.mixin.MixinCustomJavaDocTagProvider"/>
- <debugger.positionManagerFactory
- implementation="com.demonwav.mcdev.platform.mixin.debug.MixinPositionManagerFactory" order="last"/>
- <debuggerClassFilterProvider
- implementation="com.demonwav.mcdev.platform.mixin.debug.MixinDebuggerClassFilterProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.mixin.framework.MixinPresentationProvider"/>
- <iconLayerProvider implementation="com.demonwav.mcdev.platform.mixin.framework.MixinIconProvider"/>
- <!--region MixinExtras Expression Language-->
- <fileType name="MixinExtras Expression File"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionFileType"
- fieldName="INSTANCE"
- language="MEExpression"
- extensions="mixinextrasexpression"/>
- <lang.parserDefinition language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionParserDefinition"/>
- <lang.syntaxHighlighterFactory language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionSyntaxHighlighterFactory"/>
- <colorSettingsPage implementation="com.demonwav.mcdev.platform.mixin.expression.MEExpressionColorSettingsPage"/>
- <annotator language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionAnnotator"/>
- <lang.braceMatcher language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionBraceMatcher"/>
- <lang.quoteHandler language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionQuoteHandler"/>
- <lang.elementManipulator forClass="com.demonwav.mcdev.platform.mixin.expression.gen.psi.MEName"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.psi.MENameElementManipulator"/>
- <lang.findUsagesProvider language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.reference.MEExpressionFindUsagesProvider"/>
- <lang.refactoringSupport language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionRefactoringSupport"/>
- <completion.contributor language="MEExpression"
- implementationClass="com.demonwav.mcdev.platform.mixin.expression.MEExpressionCompletionContributor"/>
- <multiHostInjector implementation="com.demonwav.mcdev.platform.mixin.expression.MEExpressionInjector"/>
- <typedHandler implementation="com.demonwav.mcdev.platform.mixin.expression.MEExpressionTypedHandlerDelegate"/>
- <!--endregion-->
- <!--endregion-->
- <!--region VELOCITY-->
- <!---->
- <dependencySupport coordinate="com.velocitypowered:velocity-api" kind="java"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.velocity.framework.VelocityPresentationProvider"/>
- <!--endregion-->
- <!--region BUNGEECORD-->
- <!---->
- <dependencySupport coordinate="net.md-5:bungeecord-api" kind="java"/>
- <dependencySupport coordinate="io.github.waterfallmc:waterfall-api" kind="java"/>
- <fileIconProvider implementation="com.demonwav.mcdev.platform.bungeecord.BungeeCordFileIconProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.bungeecord.framework.BungeeCordPresentationProvider"/>
- <library.presentationProvider
- implementation="com.demonwav.mcdev.platform.bungeecord.framework.WaterfallPresentationProvider"/>
- <!--endregion-->
- <!--region LOCAL INSPECTIONS-->
- <!---->
- <!--region NO PLATFORM INSPECTIONS-->
- <localInspection displayName="Useless event is cancelled check"
- groupName="Minecraft"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.inspection.IsCancelledInspection"/>
- <localInspection displayName="Missing translations"
- groupName="Minecraft"
- language="UAST"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.translations.inspections.NoTranslationInspection"/>
- <localInspection displayName="Missing format arguments"
- groupName="Minecraft"
- language="UAST"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.translations.inspections.MissingFormatInspection"/>
- <localInspection displayName="Superfluous format arguments"
- groupName="Minecraft"
- language="UAST"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.translations.inspections.SuperfluousFormatInspection"/>
- <localInspection displayName="Wrong translation argument types"
- groupName="Minecraft"
- language="UAST"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.translations.inspections.WrongTypeInTranslationArgsInspection"/>
- <localInspection displayName="Entity class does not match this entity class"
- groupName="Minecraft"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.inspection.WrongEntityDataParameterClassInspection"/>
- <!--endregion-->
- <!--region BUKKIT INSPECTIONS-->
- <localInspection displayName="Bukkit @EventHandler in class not implementing Listener"
- groupName="Bukkit"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.bukkit.inspection.BukkitListenerImplementedInspection"/>
- <!--endregion-->
- <!--region SPONGE INSPECTIONS-->
- <localInspection displayName="Wrong Sponge logger implementation"
- groupName="Sponge"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.sponge.inspection.SpongeLoggingInspection"/>
- <localInspection displayName="@Getter targeted method does not exist"
- groupName="Sponge"
- language="UAST"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.sponge.inspection.SpongeInvalidGetterTargetInspection"/>
- <localInspection displayName="Parameter's type is not assignable to its @Getter method return type"
- groupName="Sponge"
- language="UAST"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.sponge.inspection.SpongeWrongGetterTypeInspection"/>
- <localInspection displayName="Invalid @Inject usage in Sponge plugin class"
- groupName="Sponge"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.sponge.inspection.SpongeInjectionInspection"/>
- <localInspection displayName="Sponge plugin class validity"
- groupName="Sponge"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.sponge.inspection.SpongePluginClassInspection"/>
- <!--endregion-->
- <!--region FORGE INSPECTIONS-->
- <localInspection displayName="Invalid usage of @SideOnly in nested class declaration"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.NestedClassSideOnlyInspection"/>
- <localInspection displayName="Invalid usage of @SideOnly in field declaration"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.FieldDeclarationSideOnlyInspection"/>
- <localInspection displayName="Invalid usage of @SideOnly in method declaration"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.MethodSideOnlyInspection"/>
- <localInspection displayName="Invalid usage of variable annotated with @SideOnly"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.VariableUseSideOnlyInspection"/>
- <localInspection displayName="Invalid usage of method annotated with @SideOnly"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.MethodCallSideOnlyInspection"/>
- <localInspection displayName="Invalid usage of new object annotated with @SideOnly"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.NewExpressionSideOnlyInspection"/>
- <localInspection displayName="Invalid usage of local variable declaration annotated with @SideOnly"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="false"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.sideonly.LocalVariableDeclarationSideOnlyInspection"/>
- <localInspection displayName="IMessage or IMessageHandler implementation without empty constructor"
- groupName="MinecraftForge"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.forge.inspections.simpleimpl.MissingMessageConstructorInspection"/>
- <!--endregion-->
- <!--region FABRIC INSPECTIONS-->
- <localInspection displayName="Unresolved Fabric mod JSON reference"
- shortName="UnresolvedFabricModJsonReference"
- groupName="Fabric"
- language="JSON"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.fabric.inspection.UnresolvedReferenceInspection"/>
- <localInspection displayName="Fabric mod JSON entrypoints validation"
- shortName="FabricModJsonEntrypointsValidation"
- groupName="Fabric"
- language="JSON"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.fabric.inspection.FabricEntrypointsInspection"/>
- <!--endregion-->
- <!--region MCP INSPECTIONS-->
- <localInspection displayName="Unused access transformer"
- groupName="MCP"
- language="Access Transformers"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mcp.at.AtUsageInspection"/>
- <localInspection displayName="Invalid empty ItemStack comparison with ItemStack.EMPTY"
- groupName="MCP"
- language="JAVA"
- enabledByDefault="false"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mcp.inspections.StackEmptyInspection"/>
- <localInspection displayName="Duplicate access widener"
- groupName="MCP"
- language="Access Widener"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mcp.aw.inspections.DuplicateAwEntryInspection"/>
- <!--endregion-->
- <!--region MIXIN INSPECTIONS-->
- <!--region Generic -->
- <localInspection displayName="Mixin is not written in Java"
- shortName="NonJavaMixin"
- groupName="Mixin"
- language="UAST"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.NonJavaMixinInspection"/>
- <localInspection displayName="Mixin not in a mixin config"
- shortName="UnusedMixin"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.UnusedMixinInspection"/>
- <localInspection displayName="Mixin annotation outside of @Mixin class"
- shortName="AnnotationOutsideOfMixin"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinAnnotationsInspection"/>
- <localInspection displayName="Missing or unused cancellable @Inject"
- shortName="CancellableInjectionUsage"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinCancellableInspection"/>
- <localInspection displayName="Invalid @Mixin Target"
- shortName="InvalidMixinTarget"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinTargetInspection"/>
- <localInspection displayName="Invalid @Mixin super class"
- shortName="MixinSuperClass"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinSuperClassInspection"/>
- <localInspection displayName="Public static member in @Mixin class"
- shortName="PublicStaticMixinMember"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.StaticMemberInspection"/>
- <localInspection displayName="Inner classes in Mixins"
- shortName="MixinInnerClass"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinInnerClassInspection"/>
- <localInspection displayName="Reference to @Mixin class"
- shortName="ReferenceToMixin"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinClassReferenceInspection"/>
- <!--endregion-->
- <!--region Annotation handlers -->
- <localInspection displayName="Unresolved mixin annotation target"
- shortName="MixinAnnotationTarget"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.MixinAnnotationTargetInspection"/>
- <!--endregion-->
- <!--region Added Members Inspections -->
- <localInspection displayName="Missing @Unique annotation"
- shortName="MissingUnique"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.addedMembers.MissingUniqueAnnotationInspection"/>
- <localInspection displayName="Name does not match the pattern for added mixin members"
- shortName="AddedMixinMembersNamePattern"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.addedMembers.AddedMembersNameFormatInspection"/>
- <!--endregion-->
- <!--region Implements Inspections -->
- <localInspection displayName="Soft-implemented method does not override a method in the target interfaces"
- shortName="SoftImplementOverrides"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.SoftImplementOverridesInspection"/>
- <localInspection displayName="Empty @Implements"
- shortName="EmptyImplements"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.EmptyImplementsInspection"/>
- <localInspection displayName="@Interface is interface"
- shortName="InterfaceIsInterface"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.InterfaceIsInterfaceInspection"/>
- <localInspection displayName="Invalid prefix on @Interface"
- shortName="InvalidInterfacePrefix"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.InterfacePrefixInspection"/>
- <localInspection displayName="Duplicate @Interface in @Implements"
- shortName="DuplicateInterface"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.DuplicateInterfaceInspection"/>
- <localInspection displayName="Duplicate @Interface prefix in @Implements"
- shortName="DuplicateInterfacePrefix"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.implements.DuplicateInterfacePrefixInspection"/>
- <!--endregion-->
- <!--region Injector Inspections -->
- <localInspection displayName="Implicit constructor invoker"
- shortName="ImplicitConstructorInvoker"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.ImplicitConstructorInvokerInspection"/>
- <localInspection displayName="@Inject could be @Overwrite"
- shortName="InjectCouldBeOverwrite"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="false"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.InjectCouldBeOverwriteInspection"/>
- <localInspection displayName="@Inject into Constructor"
- shortName="InjectIntoConstructor"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.InjectIntoConstructorInspection"/>
- <localInspection displayName="Invalid injector method signature"
- shortName="InvalidInjectorMethodSignature"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.InvalidInjectorMethodSignatureInspection"/>
- <localInspection displayName="@ModifyVariable may be argsOnly = true"
- shortName="ModifyVariableMayBeArgsOnly"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.ModifyVariableArgsOnlyInspection"/>
- <localInspection displayName="@Inject before a superconstructor call is cancellable"
- shortName="InjectCancellableBeforeSuperConstructorCall"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.CancellableBeforeSuperCallInspection"/>
- <localInspection displayName="CTOR_HEAD is missing unsafe = true"
- shortName="CtorHeadNoUnsafe"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.CtorHeadNoUnsafeInspection"/>
- <localInspection displayName="CTOR_HEAD is not targeting a constructor"
- shortName="CtorHeadUsedForNonConstructor"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.CtorHeadUsedForNonConstructorInspection"/>
- <localInspection displayName="Unnecessary unsafe = true"
- shortName="UnnecessaryUnsafe"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.UnnecessaryUnsafeInspection"/>
- <localInspection displayName="CTOR_HEAD with enforce=POST_INIT doesn't target a field"
- shortName="CtorHeadPostInit"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.CtorHeadPostInitInspection"/>
- <localInspection displayName="Usage of discouraged injection point"
- shortName="DiscouragedInjectionPoint"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.DiscouragedInjectionPointInspection"/>
- <localInspection displayName="Usage of discouraged shifting in injection point"
- shortName="DiscouragedShift"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.DiscouragedShiftInspection"/>
- <localInspection displayName="Usage of LocalCapture.CAPTURE_FAILEXCEPTION"
- shortName="LocalCaptureFailException"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.CaptureFailExceptionInspection"/>
- <localInspection displayName="Unused @Inject local capture"
- shortName="UnusedInjectLocalCapture"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.injector.UnusedLocalCaptureInspection"/>
- <localInspection displayName="@Inject local capture can be replaced with @Local"
- shortName="InjectLocalCaptureCanBeReplacedWithLocal"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.mixinextras.InjectLocalCaptureReplaceWithLocalInspection"/>
- <!--endregion-->
- <!--region Overwrite Inspections -->
- <localInspection displayName="Invalid @Overwrite method modifiers"
- shortName="OverwriteModifiers"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.overwrite.OverwriteModifiersInspection"/>
- <localInspection displayName="Overwrite lacking @author JavaDoc tag"
- shortName="OverwriteAuthorRequired"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WEAK WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.overwrite.OverwriteAuthorInspection"/>
- <!--endregion-->
- <!--region Reference Inspections -->
- <localInspection displayName="Invalid Mixin member reference"
- shortName="InvalidMemberReference"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.reference.InvalidMemberReferenceInspection"/>
- <localInspection displayName="Unresolved reference"
- shortName="UnresolvedMixinReference"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.reference.UnresolvedReferenceInspection"/>
- <localInspection displayName="Ambiguous reference"
- shortName="AmbiguousMixinReference"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.reference.AmbiguousReferenceInspection"/>
- <localInspection displayName="Unqualified member reference"
- shortName="UnqualifiedMemberReference"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.reference.UnqualifiedMemberReferenceInspection"/>
- <localInspection displayName="Unnecessary qualified member reference"
- shortName="UnnecessaryQualifiedMemberReference"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WEAK WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.reference.UnnecessaryQualifiedMemberReferenceInspection"/>
- <!--endregion-->
- <!--region Shadow Inspections -->
- <localInspection displayName="Invalid @Shadow modifiers"
- shortName="ShadowModifiers"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.shadow.ShadowModifiersInspection"/>
- <localInspection displayName="@Shadow field with prefix"
- shortName="ShadowFieldPrefix"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.shadow.ShadowFieldPrefixInspection"/>
- <localInspection displayName="Unused @Shadow method prefix"
- shortName="UnusedShadowMethodPrefix"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.shadow.UnusedShadowMethodPrefixInspection"/>
- <localInspection displayName="Modification of @Final field"
- shortName="ShadowFinalModification"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.shadow.ShadowFinalInspection"/>
- <!--endregion-->
- <!--region Mixin Extras -->
- <localInspection displayName="Wrong @WrapOperation Operation parameters"
- shortName="MixinExtrasOperationParameters"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.mixinextras.WrongOperationParametersInspection"/>
- <localInspection displayName="Unnecessary mutable reference to captured local"
- shortName="MixinExtrasUnnecessaryMutableLocal"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.mixinextras.UnnecessaryMutableLocalInspection"/>
- <localInspection displayName="Unresolved @Local capture"
- shortName="UnresolvedLocalCapture"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.mixinextras.UnresolvedLocalCaptureInspection"/>
- <localInspection displayName="@Local may be argsOnly = true"
- shortName="LocalMayBeArgsOnly"
- groupName="Mixin"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.inspection.mixinextras.LocalArgsOnlyInspection"/>
- <!--endregion-->
- <!--region Configuration -->
- <localInspection displayName="Unresolved config reference"
- shortName="UnresolvedConfigReference"
- groupName="Mixin"
- language="JSON"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.inspection.UnresolvedReferenceInspection"/>
- <localInspection displayName="Invalid config value"
- shortName="InvalidConfigValue"
- groupName="Mixin"
- language="JSON"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.inspection.ConfigValueInspection"/>
- <localInspection displayName="Invalid Mixin registration"
- shortName="InvalidMixinRegistration"
- groupName="Mixin"
- language="JSON"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.inspection.MixinRegistrationInspection"/>
- <localInspection displayName="Invalid Mixin plugin registration"
- shortName="InvalidMixinPluginRegistration"
- groupName="Mixin"
- language="JSON"
- enabledByDefault="true"
- level="ERROR"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.mixin.config.inspection.MixinPluginInspection"/>
- <!--endregion-->
- <!--endregion-->
- <!--region BUNGEECORD INSPECTIONS-->
- <localInspection displayName="BungeeCord @EventHandler in class not implementing Listener"
- groupName="BungeeCord"
- language="JAVA"
- enabledByDefault="true"
- level="WARNING"
- hasStaticDescription="true"
- implementationClass="com.demonwav.mcdev.platform.bungeecord.inspection.BungeeCordListenerImplementedInspection"/>
- <!--endregion-->
- <!--endregion-->
- <registryKey defaultValue="true" description="Use the new mappings parser." key="mcdev.new.tsrg.parser"/>
- </extensions>
- <extensions defaultExtensionNs="org.jetbrains.plugins.gradle">
- <projectResolve implementation="com.demonwav.mcdev.platform.mcp.gradle.McpProjectResolverExtension"/>
- <projectResolve
- implementation="com.demonwav.mcdev.platform.mcp.vanillagradle.VanillaGradleProjectResolverExtension"/>
- <projectResolve implementation="com.demonwav.mcdev.platform.mcp.fabricloom.FabricLoomProjectResolverExtension"/>
- <projectResolve
- implementation="com.demonwav.mcdev.platform.architectury.framework.ArchitecturyProjectResolverExtension"/>
- </extensions>
- <applicationListeners>
- <listener class="com.demonwav.mcdev.translations.TranslationFileListener"
- topic="com.intellij.openapi.vfs.newvfs.BulkFileListener"/>
- </applicationListeners>
- <projectListeners>
- <listener class="com.demonwav.mcdev.facet.MinecraftFacetDetector$MinecraftModuleRootListener"
- topic="com.intellij.openapi.roots.ModuleRootListener"/>
- </projectListeners>
- <actions>
- <action class="com.demonwav.mcdev.insight.generation.GenerateEventListenerAction"
- id="GenerateEventListener">
- <add-to-group group-id="GenerateGroup" anchor="last"/>
- </action>
- <group id="MinecraftDevToolsGroup" popup="true" text="Minecraft Development">
- <add-to-group group-id="ToolsMenu"/>
- </group>
- <action class="com.demonwav.mcdev.update.ConfigurePluginUpdatesAction" id="MinecraftDevConfigureUpdates"
- text="Configure Minecraft Development Plugin Updates"
- description="Configure automatic updates for the Minecraft Development plugin">
- <add-to-group group-id="MinecraftDevToolsGroup"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mixin.action.FindMixinsAction" id="FindMixinsAction"
- text="Find Mixins"
- description="Find classes which mix into this class">
- <add-to-group relative-to-action="EditorPopupMenu2" anchor="after" group-id="EditorPopupMenu"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mixin.action.GenerateShadowAction" id="GenerateShadowAction"
- text="Shadow Members..."
- description="Add a @Shadow for the selected members">
- <add-to-group group-id="GenerateGroup" anchor="last"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mixin.action.GenerateOverwriteAction" id="GenerateOverwriteAction"
- text="Overwrite Methods..."
- description="Add an @Overwrite for the selected methods">
- <add-to-group group-id="GenerateGroup" anchor="last"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mixin.action.GenerateSoftImplementsAction"
- id="GenerateSoftImplementsAction"
- text="Soft-Implement Methods..."
- description="Add a soft implementation for the selected methods">
- <add-to-group group-id="GenerateGroup" anchor="last"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mixin.action.CopyMixinTargetReferenceAction"
- id="CopyMixinTargetReferenceAction"
- text="Mixin Target Reference"
- description="Copy the reference to the element for use in an injector">
- <add-to-group relative-to-action="CopyReference" anchor="after" group-id="Copy.Paste.Special"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mixin.action.GenerateAccessorAction" id="GenerateAccessorAction"
- text="Generate Accessor/Invoker"
- description="Generate an accessor for the selected member">
- <add-to-group group-id="GenerateGroup" anchor="last"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mcp.actions.FindSrgMappingAction" id="FindSrgMappingAction"
- text="Get SRG Name"
- description="Find the associated SRG mapping for this element">
- <add-to-group relative-to-action="EditorPopupMenu2" anchor="after" group-id="EditorPopupMenu2"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mcp.actions.CopyAtAction" id="CopyATAction"
- text="AT Entry"
- description="Copy the reference to clipboard in Access Transformer format">
- <add-to-group relative-to-action="CopyReference" anchor="after" group-id="Copy.Paste.Special"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mcp.actions.GotoAtEntryAction" id="GotoAtEntry"
- text="AT Entry"
- description="Go to the relevant Access Transformer entry, if it exists">
- <add-to-group group-id="EditorPopupMenu.GoTo"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mcp.actions.CopyCoremodTargetAction" id="CopyCoremodTargetAction"
- text="Coremod Target Reference"
- description="Copy the reference to the element for use in a javascript coremod">
- <add-to-group relative-to-action="CopyReference" anchor="after" group-id="Copy.Paste.Special"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mcp.actions.LookupMemberAction" id="LookupMcpMember"
- text="Lookup MCP Member"
- description="Lookup MCP mapping info on a SRG field or method">
- <keyboard-shortcut first-keystroke="control alt shift M" keymap="$default"/>
- </action>
- <action class="com.demonwav.mcdev.translations.actions.SortTranslationsAction" id="SortMcTranslationsAction"
- text="Sort Translations by Specified Order"
- description="Sorts translations by specified order">
- <add-to-group relative-to-action="EditorPopupMenu2" anchor="after" group-id="EditorPopupMenu"/>
- </action>
- <action class="com.demonwav.mcdev.insight.generation.MinecraftClassCreateAction" id="CreateMinecraftClass"
- text="Minecraft Class" description="Create skeleton classes used in Minecraft Mods">
- <add-to-group group-id="NewGroup" anchor="before" relative-to-action="NewFile"/>
- </action>
- <action class="com.demonwav.mcdev.platform.mcp.actions.CopyAwAction" id="CopyAWAction"
- text="AW Entry"
- description="Copy the reference to clipboard in Access Widener format">
- <add-to-group relative-to-action="CopyATAction" anchor="after" group-id="Copy.Paste.Special"/>
- </action>
- </actions>
- </idea-plugin>