Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix "Unused Mixin Inspection" no longer providing a quick-fix #2378

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions src/main/kotlin/platform/mixin/MixinModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import com.demonwav.mcdev.util.nullable
import com.intellij.json.psi.JsonFile
import com.intellij.json.psi.JsonObject
import com.intellij.openapi.fileTypes.FileTypeManager
import com.intellij.openapi.fileTypes.FileTypes
import com.intellij.openapi.project.Project
import com.intellij.psi.JavaPsiFacade
import com.intellij.psi.PsiClass
Expand All @@ -54,19 +53,24 @@ class MixinModule(facet: MinecraftFacet) : AbstractModule(facet) {
override val icon: Icon? = null

companion object {
private val mixinFileType by lazy {
FileTypeManager.getInstance().findFileTypeByName("Mixin Configuration") ?: FileTypes.UNKNOWN
private val mixinFileTypes by lazy {
listOfNotNull(
FileTypeManager.getInstance().findFileTypeByName("Mixin Json Configuration"),
FileTypeManager.getInstance().findFileTypeByName("Mixin Json5 Configuration")
)
}

fun getMixinConfigs(
project: Project,
scope: GlobalSearchScope,
): Collection<MixinConfig> {
return FileTypeIndex.getFiles(mixinFileType, scope)
.mapNotNull {
(PsiManager.getInstance(project).findFile(it) as? JsonFile)?.topLevelValue as? JsonObject
return mixinFileTypes
.flatMap { FileTypeIndex.getFiles(it, scope) }
.mapNotNull { file ->
(PsiManager.getInstance(project).findFile(file) as? JsonFile)?.topLevelValue as? JsonObject
}.map { jsonObject ->
MixinConfig(project, jsonObject)
}
.map { MixinConfig(project, it) }
}

fun getAllMixinClasses(
Expand All @@ -93,3 +97,4 @@ class MixinModule(facet: MinecraftFacet) : AbstractModule(facet) {
}
}
}

2 changes: 2 additions & 0 deletions src/main/kotlin/platform/mixin/config/MixinConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ class MixinConfig(private val project: Project, private var json: JsonObject) {
}

private fun reformat() {
if(json.containingFile.name.endsWith(".json5")) return

json = CodeStyleManager.getInstance(project).reformat(json) as JsonObject
file?.let { file ->
val psiFile = PsiManager.getInstance(project).findFile(file) as? JsonFile ?: return
Expand Down
Loading