Skip to content

Commit

Permalink
Implementation of the function to optimize imports for java code
Browse files Browse the repository at this point in the history
  • Loading branch information
anchouls committed Dec 11, 2023
1 parent 04c57bb commit aac9d7d
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 58 deletions.
1 change: 0 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ val spacePassword = getLocalProperty("spacePassword")

configure(subprojects) {
apply(plugin = "maven-publish")
apply(plugin = "java")

val subprojectName = this.name

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ kotlin.code.style=official
pluginName = Kotlin Test Framework With IJ
platformType = IC
platformVersion = 2022.2.5
platformPlugins = Kotlin, com.intellij.java
platformPlugins = Kotlin, java

org.gradle.jvmargs = -XX:MaxMetaspaceSize=1g
16 changes: 10 additions & 6 deletions ij/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ plugins {

fun properties(key: String) = providers.gradleProperty(key)

intellij {
pluginName = properties("pluginName")
version = properties("platformVersion")
type = properties("platformType")
allprojects {
apply(plugin = "org.jetbrains.intellij")

// Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file.
plugins = properties("platformPlugins").map { it.split(',').map(String::trim).filter(String::isNotEmpty) }
intellij {
pluginName = properties("pluginName")
version = properties("platformVersion")
type = properties("platformType")

// Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file.
plugins = properties("platformPlugins").map { it.split(',').map(String::trim).filter(String::isNotEmpty) }
}
}
16 changes: 0 additions & 16 deletions ij/common/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,18 +1,2 @@
group = rootProject.group
version = rootProject.version

plugins {
id("org.jetbrains.intellij") version "1.15.0"
id("java")
}

fun properties(key: String) = providers.gradleProperty(key)

intellij {
pluginName = properties("pluginName")
version = properties("platformVersion")
type = properties("platformType")

// Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file.
plugins = properties("platformPlugins").map { it.split(',').map(String::trim).filter(String::isNotEmpty) }
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@file:Suppress("ForbiddenComment")

package org.jetbrains.academy.test.system.inspections

import com.intellij.codeInsight.daemon.impl.DaemonProgressIndicator
Expand Down Expand Up @@ -32,6 +34,7 @@ fun PsiFile.applyLocalInspections(inspections: List<LocalInspectionTool>): List<
}

fun PsiFile.applyGlobalInspections(inspections: List<GlobalSimpleInspectionTool>): Boolean {
// TODO: `checkFile` doesn't work due to `resolve` doesn't work
val inspectionManager = InspectionManager.getInstance(project)
val problemDescriptionsProcessor = MyProblemDescriptionsProcessor()
val globalContext = GlobalInspectionContextBase(project)
Expand Down
16 changes: 0 additions & 16 deletions ij/java-psi/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,22 +1,6 @@
group = rootProject.group
version = rootProject.version

plugins {
id("org.jetbrains.intellij") version "1.15.0"
id("java")
}

dependencies {
implementation(project(":ij:common"))
}

fun properties(key: String) = providers.gradleProperty(key)

intellij {
pluginName = properties("pluginName")
version = properties("platformVersion")
type = properties("platformType")

// Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file.
plugins = properties("platformPlugins").map { it.split(',').map(String::trim).filter(String::isNotEmpty) }
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
package org.jetbrains.academy.test.system.java.ij.formatting

import com.intellij.psi.PsiFile
import com.intellij.codeInspection.unusedImport.UnusedImportInspection
import org.jetbrains.academy.test.system.inspections.applyGlobalInspections
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.command.WriteCommandAction
import com.intellij.psi.codeStyle.JavaCodeStyleManager

fun PsiFile.checkIfOptimizeImportsWereApplied() {
assert(applyGlobalInspections(listOf(UnusedImportInspection()))) {
val originalCode = ApplicationManager.getApplication().runReadAction<String> { text }
WriteCommandAction.runWriteCommandAction(project) {
JavaCodeStyleManager.getInstance(project).optimizeImports(this)
}
val optimizedCode = ApplicationManager.getApplication().runReadAction<String> { text }
assert(originalCode.trimIndent() == optimizedCode.trimIndent()) {
"Please, apply \"Optimize import\" option when formatting code."
}
}
15 changes: 0 additions & 15 deletions ij/kotlin-psi/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,21 +1,6 @@
group = rootProject.group
version = rootProject.version

plugins {
id("org.jetbrains.intellij") version "1.15.0"
}

dependencies {
implementation(project(":ij:common"))
}

fun properties(key: String) = providers.gradleProperty(key)

intellij {
pluginName = properties("pluginName")
version = properties("platformVersion")
type = properties("platformType")

// Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file.
plugins = properties("platformPlugins").map { it.split(',').map(String::trim).filter(String::isNotEmpty) }
}

0 comments on commit aac9d7d

Please sign in to comment.