⁠
rednesto: Translation: ConvertToTranslationIntention to UAST
- <!--
- 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="toml-support.xml">org.toml.lang</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="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" />
- </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" />
- <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" />
- <injectionPointAnnotation annotation="org.spongepowered.asm.mixin.injection.Constant" atCode="CONSTANT" />
- </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="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="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>JAVA</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"/>
- <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.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 Configuration" language="JSON" implementationClass="com.demonwav.mcdev.platform.mixin.config.MixinConfigFileType" 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"/>
- <!-- 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" />
- <!--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"/>
- <!--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>
- <!--
- 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="toml-support.xml">org.toml.lang</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="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" />
- </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" />
- <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" />
- <injectionPointAnnotation annotation="org.spongepowered.asm.mixin.injection.Constant" atCode="CONSTANT" />
- </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="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="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"/>
- <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.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 Configuration" language="JSON" implementationClass="com.demonwav.mcdev.platform.mixin.config.MixinConfigFileType" 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"/>
- <!-- 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" />
- <!--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"/>
- <!--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>