User: rednesto Date: 05 Jul 23 14:53 Revision: bcf7501b86b0f111e4d9ee5e0441e5aa19cd307b Summary: Fix some mods.toml support errors Fixes minecraft-dev/mcdev-error-report#372 Fixes minecraft-dev/mcdev-error-report#639 TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=8587&personal=false Index: src/main/kotlin/toml/platform/forge/inspections/ModsTomlValidationInspection.kt =================================================================== --- src/main/kotlin/toml/platform/forge/inspections/ModsTomlValidationInspection.kt (revision 24fff2b540f5aeee514e70b1f764fd81ffe86926) +++ src/main/kotlin/toml/platform/forge/inspections/ModsTomlValidationInspection.kt (revision bcf7501b86b0f111e4d9ee5e0441e5aa19cd307b) @@ -72,7 +72,7 @@ "modId" -> { val value = keyValue.value ?: return val modId = value.stringValue() ?: return - if (!ForgeConstants.MOD_ID_REGEX.matches(modId)) { + if (modId != "\"" && !ForgeConstants.MOD_ID_REGEX.matches(modId)) { val endOffset = if (value.text.endsWith('"')) modId.length + 1 else modId.length holder.registerProblem(value, TextRange(1, endOffset), "Mod ID is invalid") } @@ -80,7 +80,7 @@ "displayTest" -> { val value = keyValue.value ?: return val test = value.stringValue() ?: return - if (test !in ForgeConstants.DISPLAY_TESTS) { + if (test != "\"" && test !in ForgeConstants.DISPLAY_TESTS) { val endOffset = if (value.text.endsWith('"')) test.length + 1 else test.length holder.registerProblem(value, TextRange(1, endOffset), "DisplayTest $test does not exist") } @@ -96,7 +96,7 @@ "side" -> { val value = keyValue.value ?: return val side = value.stringValue() ?: return - if (side !in ForgeConstants.DEPENDENCY_SIDES) { + if (side != "\"" && side !in ForgeConstants.DEPENDENCY_SIDES) { val endOffset = if (value.text.endsWith('"')) side.length + 1 else side.length holder.registerProblem(value, TextRange(1, endOffset), "Side $side does not exist") } @@ -104,7 +104,7 @@ "ordering" -> { val value = keyValue.value ?: return val order = value.stringValue() ?: return - if (order !in ForgeConstants.DEPENDENCY_ORDER) { + if (order != "\"" && order !in ForgeConstants.DEPENDENCY_ORDER) { val endOffset = if (value.text.endsWith('"')) order.length + 1 else order.length holder.registerProblem(value, TextRange(1, endOffset), "Order $order does not exist") } Index: src/main/kotlin/toml/platform/forge/reference/ModsTomlReferenceContributor.kt =================================================================== --- src/main/kotlin/toml/platform/forge/reference/ModsTomlReferenceContributor.kt (revision 24fff2b540f5aeee514e70b1f764fd81ffe86926) +++ src/main/kotlin/toml/platform/forge/reference/ModsTomlReferenceContributor.kt (revision bcf7501b86b0f111e4d9ee5e0441e5aa19cd307b) @@ -45,6 +45,7 @@ import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.searches.ReferencesSearch import com.intellij.util.ProcessingContext +import kotlin.math.max import org.jetbrains.jps.model.java.JavaResourceRootType import org.jetbrains.uast.UAnnotation import org.jetbrains.uast.evaluateString @@ -126,7 +127,7 @@ } class ModsTomlModIdReference(element: TomlValue) : - PsiReferenceBase(element, TextRange(1, element.textLength - 1)) { + PsiReferenceBase(element, TextRange(1, max(element.textLength - 1, 1))) { val modId: String? = element.stringValue()