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

add 232 support #113

Merged
merged 2 commits into from
Jul 28, 2023
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
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.7b1000.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()
}
})
}
}
}