Skip to content

Commit

Permalink
add 232 support
Browse files Browse the repository at this point in the history
  • Loading branch information
mkurnikov committed Jul 28, 2023
1 parent 9248a4a commit 0b59688
Show file tree
Hide file tree
Showing 9 changed files with 101 additions and 10 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
strategy:
matrix:
os: [ ubuntu-latest ]
gradle-properties-version: [ 222, 223, 231 ]
gradle-properties-version: [ 222, 223, 231, 232 ]

runs-on: ${{ matrix.os }}
env:
Expand Down
2 changes: 0 additions & 2 deletions gradle-222.properties
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,3 @@ platformVersion = 2022.2
# Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22
platformPlugins = org.toml.lang
verifierIdeVersions = IC-2022.2

jbrVersion=17.0.4.1b617.2
2 changes: 0 additions & 2 deletions gradle-223.properties
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,3 @@ platformVersion = 2022.3
# Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22
platformPlugins = org.toml.lang
verifierIdeVersions = IC-2022.3

jbrVersion=17.0.4.1b617.2
2 changes: 0 additions & 2 deletions gradle-231.properties
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,3 @@ platformVersion = 2023.1
# Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22
platformPlugins = org.toml.lang
verifierIdeVersions = IC-2023.1

jbrVersion=17.0.4.1b617.2
13 changes: 13 additions & 0 deletions gradle-232.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# See https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
# for insight into build numbers and IntelliJ Platform versions.
pluginSinceBuild = 232
pluginUntilBuild = 232.*

# IntelliJ Platform Properties -> https://github.com/JetBrains/gradle-intellij-plugin#intellij-platform-properties
platformType = PC
platformVersion = 2023.2

# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html
# Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22
platformPlugins = org.toml.lang
verifierIdeVersions = IC-2023.2
4 changes: 3 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@ org.gradle.caching = true

kotlin.daemon.jvmargs=-Xmx4096m
org.gradle.jvmargs=-Xms512m -Xmx4096m "-XX:MaxMetaspaceSize=512m"
jbrVersion=17.0.7+7-b1000.6

propertiesPluginEnvironmentNameProperty=shortPlatformVersion
# properties files
# supported versions are 221, 222, 223, 231, default is 221
# pass ORG_GRADLE_PROJECT_shortPlatformVersion environment variable to overwrite
shortPlatformVersion=222
shortPlatformVersion=232

66 changes: 66 additions & 0 deletions src/232/main/kotlin/org/move/cli/MoveProjectOpenProcessor.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package org.move.cli

import com.intellij.openapi.project.Project
import com.intellij.openapi.startup.StartupManager
import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.platform.PlatformProjectOpenProcessor
import com.intellij.projectImport.ProjectOpenProcessor
import org.move.cli.runConfigurations.addDefaultBuildRunConfiguration
import org.move.cli.runConfigurations.aptos.Aptos
import org.move.cli.settings.aptosPath
import org.move.cli.settings.moveSettings
import org.move.ide.MoveIcons
import org.move.ide.newProject.openFile
import org.move.ide.notifications.updateAllNotifications
import org.move.openapiext.aptosBuildRunConfigurations
import org.move.openapiext.aptosRunConfigurations
import org.move.openapiext.contentRoots
import javax.swing.Icon

class MoveProjectOpenProcessor : ProjectOpenProcessor() {
override val name: String get() = "Move"
override val icon: Icon get() = MoveIcons.MOVE

override fun canOpenProject(file: VirtualFile): Boolean =
FileUtil.namesEqual(file.name, Consts.MANIFEST_FILE)
|| (file.isDirectory && file.findChild(Consts.MANIFEST_FILE) != null)

override fun doOpenProject(
virtualFile: VirtualFile,
projectToClose: Project?,
forceOpenInNewFrame: Boolean,
): Project? {
val platformOpenProcessor = PlatformProjectOpenProcessor.getInstance()
return platformOpenProcessor.doOpenProject(
virtualFile,
projectToClose,
forceOpenInNewFrame
)?.also {
StartupManager.getInstance(it).runAfterOpened {
// create default build configuration if it doesn't exist
if (it.aptosBuildRunConfigurations().isEmpty()) {
val isEmpty = it.aptosRunConfigurations().isEmpty()
it.addDefaultBuildRunConfiguration(isSelected = isEmpty)
}

val packageRoot = it.contentRoots.firstOrNull()
if (packageRoot != null) {
val manifest = packageRoot.findChild(Consts.MANIFEST_FILE)
if (manifest != null) {
it.openFile(manifest)
}
updateAllNotifications(it)
}

val aptosPath = Aptos.suggestPath()
if (aptosPath != null && it.aptosPath?.toString().isNullOrBlank()) {
it.moveSettings.modify {
it.aptosPath = aptosPath
}
}
it.moveProjects.refreshAllProjects()
}
}
}
}
4 changes: 2 additions & 2 deletions src/main/kotlin/org/move/ide/inspections/imports/ui.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

package org.move.ide.inspections.imports

import com.intellij.codeInsight.navigation.NavigationUtil
import com.intellij.ide.util.DefaultPsiElementCellRenderer
import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.project.Project
Expand All @@ -18,6 +17,7 @@ import com.intellij.ui.popup.list.PopupListElementRenderer
import org.jetbrains.annotations.TestOnly
import org.move.ide.utils.imports.ImportCandidate
import org.move.openapiext.common.isUnitTestMode
import org.move.utils.ui.NavigationUtilCompat
import java.awt.BorderLayout
import javax.swing.Icon
import javax.swing.JPanel
Expand Down Expand Up @@ -108,7 +108,7 @@ private class PopupImportItemUi(private val project: Project, private val dataCo
}
}
}
NavigationUtil.hidePopupIfDumbModeStarts(popup, project)
NavigationUtilCompat.hidePopupIfDumbModeStarts(popup, project)
popup.showInBestPositionFor(dataContext)
}
}
Expand Down
16 changes: 16 additions & 0 deletions src/main/kotlin/org/move/utils/ui/compat.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ package org.move.utils.ui
import com.intellij.openapi.Disposable
import com.intellij.openapi.application.ModalityState
import com.intellij.openapi.application.invokeLater
import com.intellij.openapi.project.DumbService
import com.intellij.openapi.project.Project
import com.intellij.openapi.ui.popup.JBPopup
import com.intellij.openapi.util.Disposer
import com.intellij.ui.PopupMenuListenerAdapter
import com.intellij.ui.dsl.builder.Cell
Expand Down Expand Up @@ -82,3 +85,16 @@ fun JComboBox<*>.addPopupMenuListener(parentDisposable: Disposable? = null, list
private fun Disposable.whenDisposed(listener: () -> Unit) {
Disposer.register(this) { listener() }
}

object NavigationUtilCompat {
fun hidePopupIfDumbModeStarts(popup: JBPopup, project: Project) {
if (!DumbService.isDumb(project)) {
project.messageBus.connect(popup)
.subscribe(DumbService.DUMB_MODE, object: DumbService.DumbModeListener {
override fun enteredDumbMode() {
popup.cancel()
}
})
}
}
}

0 comments on commit 0b59688

Please sign in to comment.