Git Product home page Git Product logo

intellij-move's Introduction

Move Language plugin for the Intellij platform

Installation

Open Settings > Plugins > Marketplace in your IDE, search for Move Language and install the plugin. To open an existing project, use File | Open and point to the directory containing Move.toml.

New features are announced in changelog.

Features

  • Syntax highlighting
  • Code formatting
  • Go-to-definition
  • Rename refactoring
  • Type inference
  • Move.toml and move binary integration

Dependencies

For git dependencies specified in Move.toml file you need to manually run move package build to populate build/ directory.

Compatible IDEs

All Intellij-based IDEs starting from version 2021.1. For 2020.3 and below you can use old versions of the plugin.

intellij-move's People

Contributors

capcap avatar mkurnikov avatar nnsw3 avatar rig410 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

intellij-move's Issues

vector literal are incorrectly flagged

According to the vector literal docs, the code below should be correct and the compiler can actually compile it, but the move plugin complains incorrectly with the error described in the comments.

module Scratchpad::blank {
 use std::debug;
 use std::vector;

 #[test]
 public entry fun testit() {
  // Compiles correctly, but plugin gives out the error below:
  // ';', '=', '[' or '{' expected, got '['
  // <expression>, BECH32_ADDRESS, DIEM_ADDRESS, IDENTIFIER, INTEGER_LITERAL, PLACEHOLDER_ADDRESS or POLKADOT_ADDRESS expected, got '0'
  let foo = vector<u8>[0u8,1u8,2u8,3u8];
  debug::print<vector<u8>>(&foo);
 }
}

Using Aptos 0.3.2, on IntelliJ IDEA 2022.2.1 (Ultimate Edition), Build #IU-222.3739.54, built on August 15, 2022.

aptos --version
aptos 0.3.2

"Module is declared with a different address `aptos_framework`" but move compiler doesn't report this

The plugin is reporting "Module is declared with a different address", but the move compiler doesn't report this, so the plugin has some issue regarding this.

Use attached project to reproduce this issue.
Steps.

  1. aptos move clean --assume-yes
  2. aptos move compile (with or without --skip-fetch-latest-git-deps makes no difference)

No "Module is declared with a different address" messages are reported by the aptos move compiler.
But if you open the project in IntelliJ, it reports 3 instances of this error message.

See screenshots.

image

Here's my aptos info:
image

Here's the project:
a-devs-best-friend.zip

Here's a screenshot of compiling the project:
image

and you can see there's no "Module is declared with a different address" messages.

Move coding style enhancement

You can add some Move code style enhancements, such as word wrapping when the parameter list of a function declaration too long and function calling that exceeds the right-hand bound, etc.

image

Feature request: Display structure name and contents

Given the following image, I would like all structs to be displayed.
image

For example , I would like the struct State to be displayed in the Structure window, underneath bingo_core, with the field and type name displayed underneath it, indented.

IDE info:
IntelliJ IDEA 2023.1.2 (Ultimate Edition)
Build #IU-231.9011.34, built on May 16, 2023
Runtime version: 17.0.6+10-b829.9 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows Server 2022 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 12
Registry:
debugger.new.tool.window.layout=true
ide.experimental.ui=true

Non-Bundled Plugins:
com.chenrl.plugin.todo (1.4)
Dart (231.9065)
org.move.lang (1.28.1.231)
mobi.hsz.idea.gitignore (4.5.0)

Kotlin: 231-1.8.21-IJ9011.34

exception in CLion

got this error when open the preferences -> Build, Execution, Deployment and the section failed to expand. Attached the stack trace:

java.util.NoSuchElementException: Sequence is empty.
	at kotlin.sequences.SequencesKt___SequencesKt.first(_Sequences.kt:111)
	at org.move.cli.runconfig.MoveRunConfiguration.<init>(MoveRunConfiguration.kt:40)
	at org.move.cli.runconfig.MoveRunConfigurationType.createTemplateConfiguration(MoveRunConfiguration.kt:25)
	at com.intellij.execution.target.TargetEnvironmentsMasterDetails$Companion.collectListOfTargetAwareRunConfigurations(TargetEnvironmentsMasterDetails.kt:381)
	at com.intellij.execution.target.TargetEnvironmentsMasterDetails$Companion.generateProjectDefaultHelpHtml(TargetEnvironmentsMasterDetails.kt:368)
	at com.intellij.execution.target.TargetEnvironmentsMasterDetails$Companion.access$generateProjectDefaultHelpHtml(TargetEnvironmentsMasterDetails.kt:353)
	at com.intellij.execution.target.TargetEnvironmentsMasterDetails$$special$$inlined$panel$lambda$1.invoke(TargetEnvironmentsMasterDetails.kt:76)
	at com.intellij.execution.target.TargetEnvironmentsMasterDetails$$special$$inlined$panel$lambda$1.invoke(TargetEnvironmentsMasterDetails.kt:39)
	at com.intellij.ui.layout.RowBuilder$DefaultImpls.row(Row.kt:42)
	at com.intellij.ui.layout.Row.row(Row.kt:116)
	at com.intellij.ui.layout.migLayout.MigLayoutRow.row(MigLayoutRow.kt:545)
	at com.intellij.ui.layout.RowBuilder$DefaultImpls.row(Row.kt:46)
	at com.intellij.ui.layout.Row.row(Row.kt:116)
	at com.intellij.ui.layout.LayoutBuilder.row(LayoutBuilder.kt)
	at com.intellij.ui.layout.RowBuilder$DefaultImpls.row$default(Row.kt:45)
	at com.intellij.execution.target.TargetEnvironmentsMasterDetails.<init>(TargetEnvironmentsMasterDetails.kt:57)
	at com.intellij.execution.target.TargetEnvironmentsConfigurable.<init>(TargetEnvironmentsConfigurable.kt:20)
	at com.intellij.execution.target.TargetEnvironmentsConfigurable.<init>(TargetEnvironmentsConfigurable.kt:18)
	at com.intellij.execution.target.TargetEnvironmentsConfigurableProvider.createConfigurable(TargetEnvironmentsConfigurableProvider.kt:11)
	at com.intellij.openapi.options.ConfigurableEP$ProviderProducer.createElement(ConfigurableEP.java:417)
	at com.intellij.openapi.options.ConfigurableEP.createConfigurable(ConfigurableEP.java:346)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.createConfigurable(ConfigurableWrapper.java:43)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.getConfigurable(ConfigurableWrapper.java:119)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.cast(ConfigurableWrapper.java:92)
	at com.intellij.openapi.options.newEditor.SettingsTreeView.findConfigurableProject(SettingsTreeView.java:313)
	at com.intellij.openapi.options.newEditor.SettingsTreeView$MyRenderer.getTreeCellRendererComponent(SettingsTreeView.java:646)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:3155)
	at java.desktop/javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:493)
	at java.desktop/javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1344)
	at java.desktop/javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.expand(VariableHeightLayoutCache.java:1465)
	at java.desktop/javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.expand(VariableHeightLayoutCache.java:1272)
	at java.desktop/javax.swing.tree.VariableHeightLayoutCache.ensurePathIsExpanded(VariableHeightLayoutCache.java:967)
	at java.desktop/javax.swing.tree.VariableHeightLayoutCache.setExpandedState(VariableHeightLayoutCache.java:181)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI.updateExpandedDescendants(BasicTreeUI.java:1975)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI$Handler.treeExpanded(BasicTreeUI.java:4212)
	at java.desktop/javax.swing.JTree.fireTreeExpanded(JTree.java:2801)
	at java.desktop/javax.swing.JTree.setExpandedState(JTree.java:3702)
	at java.desktop/javax.swing.JTree.expandPath(JTree.java:2244)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI.toggleExpandState(BasicTreeUI.java:2616)
	at com.intellij.openapi.options.newEditor.SettingsTreeView$MyTreeUi.processMouseEvent(SettingsTreeView.java:838)
	at com.intellij.openapi.options.newEditor.SettingsTreeView$MyTree.processMouseEvent(SettingsTreeView.java:808)
	at java.desktop/java.awt.Component.processEvent(Component.java:6419)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5029)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2790)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891)
	at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:820)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:757)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:498)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
	at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
	at java.desktop/java.awt.Dialog.show(Dialog.java:1070)
	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:701)
	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:437)
	at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1671)
	at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1629)
	at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:90)
	at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:50)
	at com.intellij.ui.mac.MacOSApplicationProvider$Worker.lambda$initMacApplication$1(MacOSApplicationProvider.java:74)
	at com.intellij.ui.mac.MacOSApplicationProvider$Worker.lambda$submit$8(MacOSApplicationProvider.java:172)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
	at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:348)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:82)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:131)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:47)
	at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:187)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:760)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:492)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

plugin make refactor -> rename failed.

image
webstorm version WebStorm 2022.2 Build #WS-222.3345.108, built on July 23, 2022
plugin version 1.15.0.222
I reseted ide to default configuration. rename file failed after install this plugin.

2022-08-11 08:31:55,874 [ 197230]   INFO - #c.i.u.i.UnindexedFilesUpdater - Performing delayed pushing properties tasks for aletheia took 0ms; general responsiveness: ok; EDT responsiveness: ok
2022-08-11 08:31:55,887 [ 197243]   INFO - #c.i.u.i.UnindexedFilesUpdater - Scanning of aletheia uses 15 scanning threads
2022-08-11 08:31:55,984 [ 197340]   INFO - #o.m.c.MoveProjectsService - Project state refresh started
2022-08-11 08:31:55,995 [ 197351]   INFO - #c.i.u.i.FileBasedIndexImpl - Rebuild requested for index MvNamedElementIndex
java.lang.Throwable
	at com.intellij.util.indexing.FileBasedIndex.requestRebuild(FileBasedIndex.java:101)
	at org.move.ide.inspections.imports.MoveElementsIndex$Companion.requestRebuild(MoveElementsIndex.kt:39)
	at org.move.cli.MoveProjectsService$resetIDEState$1$invoke$$inlined$runWriteAction$1.compute(actions.kt:62)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runWriteAction$13(ApplicationImpl.java:1032)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:1011)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1032)
	at org.move.cli.MoveProjectsService$resetIDEState$1.invoke(MoveProjectsService.kt:239)
	at org.move.cli.MoveProjectsService$resetIDEState$1.invoke(MoveProjectsService.kt:155)
	at com.intellij.openapi.application.ActionsKt$invokeAndWaitIfNeeded$$inlined$computeDelegated$lambda$1.run(actions.kt:33)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
	at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:513)
	at com.intellij.openapi.application.impl.LaterInvocator$1.run(LaterInvocator.java:95)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:75)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:118)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:42)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:749)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:791)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
	at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
2022-08-11 08:31:55,998 [ 197354]   INFO - #c.i.u.i.UnindexedFilesUpdater - Cancelled indexing of aletheia
2022-08-11 08:31:55,998 [ 197354]   INFO - #c.i.u.i.UnindexedFilesUpdater - Started scanning for indexing of aletheia. Reason: Reindex requested by project root model changes
2022-08-11 08:31:55,998 [ 197354]   INFO - #c.i.u.i.UnindexedFilesUpdater - Performing delayed pushing properties tasks for aletheia took 0ms; general responsiveness: ok; EDT responsiveness: ok
2022-08-11 08:31:56,011 [ 197367]   INFO - #c.i.u.i.UnindexedFilesUpdater - Scanning of aletheia uses 15 scanning threads

Incompatible with CLion Build 233

The Move Language plugin is not compatible with the latest CLion build at this point. The build version is:

CLion 2023.3
Build #CL-233.11799.238, built on December 1, 2023

No support of functional-test code format

Hey there. first of all thanks to the author for the perfect plugin. A little suggestion is that to support functional-test code format. It's looks like this now

address alice = {{alice}};
address bob = {{bob}};
script {
use alice::YieldFarmingWarpper;
use 0x1::Debug;

/// 3. Cindy harvest after 20 seconds, checking whether has rewards.
fun init(account: signer) {
let amount00 = YieldFarmingWarpper::query_gov_token_amount( & account);
Debug::print(&amount00);
// assert(amount00 == 0, 10004);
assert(amount00 > 0, 10004);
}
}

Thanks again to the author for his dedication and look forward to replying...

Linter that can be used in CI

Thanks for this great tool. Is there any linter for format and code clean that can be used in CI that will fail the build process if the code is not format right?

no-stop indexing in webstorm

once i enable the plugin. webstorm start to scaning and updating again and again

macbook air m1 with the latest webstorm

idea error Short name 'RedundantCast' is not unique

com.intellij.diagnostic.PluginException: Short name 'RedundantCast' is not unique
class 'org.move.ide.inspections.RedundantCastInspection' in PluginDescriptor(name=Move Language, id=org.move.lang, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\IdeaIC2022.3\plugins\intellij-move-223, version=1.23.0.223, package=null, isBundled=false)
and class 'com.intellij.codeInspection.redundantCast.RedundantCastInspection' in PluginDescriptor(name=Java, id=com.intellij.java, descriptorPath=plugin.xml, path=D:\soft\IDEA-2021-2-3\plugins\java, version=223.8214.52, package=null, isBundled=true)
conflict
at com.intellij.codeInspection.ex.InspectionToolRegistrarKt.checkForDuplicateShortName(InspectionToolRegistrar.kt:178)
at com.intellij.codeInspection.ex.InspectionToolRegistrarKt.registerInspection(InspectionToolRegistrar.kt:137)
at com.intellij.codeInspection.ex.InspectionToolRegistrarKt.access$registerInspection(InspectionToolRegistrar.kt:1)
at com.intellij.codeInspection.ex.InspectionToolRegistrar$registerInspections$1.extensionAdded(InspectionToolRegistrar.kt:74)
at com.intellij.codeInspection.ex.InspectionToolRegistrar$registerInspections$1.extensionAdded(InspectionToolRegistrar.kt:72)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.notifyListeners(ExtensionPointImpl.java:753)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.lambda$registerExtensions$17(ExtensionPointImpl.java:957)
at com.intellij.ide.plugins.DynamicPlugins.loadPlugin$lambda$29(DynamicPlugins.kt:860)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:955)
at com.intellij.ide.plugins.DynamicPlugins.loadPlugin(DynamicPlugins.kt:843)
at com.intellij.ide.plugins.DynamicPlugins.loadPlugin(DynamicPlugins.kt:817)
at com.intellij.ide.plugins.PluginInstaller.installAndLoadDynamicPlugin(PluginInstaller.java:401)
at com.intellij.ide.plugins.newui.MyPluginModel.lambda$apply$0(MyPluginModel.java:160)
at com.intellij.ide.plugins.InstalledPluginsState.trackPluginInstallation(InstalledPluginsState.java:190)
at com.intellij.ide.plugins.newui.MyPluginModel.apply(MyPluginModel.java:159)
at com.intellij.ide.plugins.PluginManagerConfigurable.apply(PluginManagerConfigurable.java:1790)
at com.intellij.openapi.options.ex.ConfigurableWrapper.apply(ConfigurableWrapper.java:179)
at com.intellij.openapi.options.newEditor.ConfigurableEditor.apply(ConfigurableEditor.java:321)
at com.intellij.openapi.options.newEditor.SettingsEditor$5.apply(SettingsEditor.java:205)
at com.intellij.openapi.options.newEditor.SettingsEditor.apply(SettingsEditor.java:432)
at com.intellij.openapi.options.newEditor.SettingsDialog.applyAndClose(SettingsDialog.java:202)
at com.intellij.openapi.options.newEditor.SettingsDialog.doOKAction(SettingsDialog.java:194)
at com.intellij.openapi.ui.DialogWrapper$OkAction.doAction(DialogWrapper.java:1861)
at com.intellij.openapi.ui.DialogWrapper$DialogWrapperAction.actionPerformed(DialogWrapper.java:1815)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6648)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3392)
at java.desktop/java.awt.Component.processEvent(Component.java:6413)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:754)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:752)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:751)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:831)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:753)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:772)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:813)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121)
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234)
at java.desktop/java.awt.Dialog.show(Dialog.java:1080)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:743)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:467)
at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1676)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1634)
at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:90)
at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:60)
at com.intellij.ide.actions.ShowSettingsAction.actionPerformed(ShowSettingsAction.java:47)
at com.intellij.openapi.actionSystem.ex.ActionUtil.doPerformActionOrShowPopup(ActionUtil.java:323)
at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAwareWithCallbacks$4(ActionUtil.java:302)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:346)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:302)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$performAction$5(ActionMenuItem.java:296)
at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:226)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.performAction(ActionMenuItem.java:289)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$new$0(ActionMenuItem.java:64)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$4(ActionMenuItem.java:111)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:111)
at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:526)
at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:558)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6648)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3392)
at java.desktop/java.awt.Component.processEvent(Component.java:6413)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:754)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:752)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:751)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:831)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:753)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:772)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:813)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

Remember Aptos CLI

Whenever you have to initialize a new Move project, you need to manually enter the location of the CLI on your machine. Is there a way to permanently remember this location so you don't have to enter it every time?

image

[Feature Request] Support for separate code/specification units

The Move language supports since a while to factor out specifications into separate compilation units. If there is a module M { ... }, one can create a spec M { ... } which contains specifications for the members of M. This unit can (and is intended to) be stored in a separate file. Examples are e.g. in the Aptos Framework, which has e.g. files like block.move and block.spec.move.

It would be great if intellij-move could support this. The semantics of this features is roughly as follows:

  • If there is a spec M there must be a matching module M (spec units cannot exist by themselves). spec M then inherits the scope of module M
  • spec M can then contain specification blocks just as they would be in module M.
  • in addition, specification blocks have been extended to allow to redeclare the signature of a function for better readability when those blocks are put into different files (those should be tolerated but can otherwise by ignored by the plugin):
module M {
  fun f(x: u64): u64 { ...}
}

spec M {
  spec f(x: u64): u64 {
    requires x > 0;
  }
}  

IDE not support

I can't use this plugin on the intellij with version 2022.3 that is built on the 30th, November

Can't normally integrate sui plugin into my intelliji idea on win11 env

java.lang.NoSuchFieldError: Companion
at org.sui.cli.sentryReporter.SentryErrorReporter$Companion.createSentryEventFromError(SentryErrorReporter.kt:77)
at org.sui.cli.sentryReporter.SentryErrorReporter$Companion.access$createSentryEventFromError(SentryErrorReporter.kt:72)
at org.sui.cli.sentryReporter.SentryErrorReporter$submit$1.run(SentryErrorReporter.kt:50)
at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:429)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:114)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$6(CoreProgressManager.java:480)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:252)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:252)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
at java.base/java.lang.Thread.run(Thread.java:833)

Bug: Unresolved reference

I already defined friend xx::B in module xx::A, but there is an error which shows "Unresolved reference" when I call friend fun from A in B.

截屏2022-09-07 11 05 29

截屏2022-09-07 11 05 21

Version of Editor and Move language Plugin :
截屏2022-09-07 11 07 23

截屏2022-09-07 11 09 03

Aptos Cli info:
截屏2022-09-07 11 08 31

exception reported by intellij CLion

There some exception reported by intellij CLion. Plugin version is 0.15.0

com.intellij.diagnostic.PluginException: Short name 'MoveUnresolvedReference' is not unique
class 'org.move.ide.inspections.MoveUnresolvedReferenceInspection' in PluginDescriptor(name=Move Language, id=org.move.lang, descriptorPath=plugin.xml, path=~/Library/Application Support/JetBrains/CLion2021.2/plugins/intellij-move-2021.2, version=0.15.0, package=null)
and class 'org.move.ide.inspections.MoveUnresolvedReferenceInspection' in PluginDescriptor(name=Move Language, id=org.move.lang, descriptorPath=plugin.xml, path=~/Library/Application Support/JetBrains/CLion2021.2/plugins/intellij-move-2021.2, version=0.14.0, package=null)
conflict
	at com.intellij.codeInspection.ex.InspectionToolRegistrarKt.checkForDuplicateShortName(InspectionToolRegistrar.kt:176)
	at com.intellij.codeInspection.ex.InspectionToolRegistrarKt.registerInspection(InspectionToolRegistrar.kt:135)
	at com.intellij.codeInspection.ex.InspectionToolRegistrarKt.access$registerInspection(InspectionToolRegistrar.kt:1)
	at com.intellij.codeInspection.ex.InspectionToolRegistrar$registerInspections$1.extensionAdded(InspectionToolRegistrar.kt:72)
	at com.intellij.codeInspection.ex.InspectionToolRegistrar$registerInspections$1.extensionAdded(InspectionToolRegistrar.kt:70)
	at com.intellij.openapi.extensions.impl.ExtensionPointImpl.notifyListeners(ExtensionPointImpl.java:785)
	at com.intellij.openapi.extensions.impl.ExtensionPointImpl.lambda$registerExtensions$17(ExtensionPointImpl.java:985)
	at com.intellij.ide.plugins.DynamicPlugins$loadPlugin$1.run(DynamicPlugins.kt:820)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:936)
	at com.intellij.ide.plugins.DynamicPlugins.loadPlugin(DynamicPlugins.kt:808)
	at com.intellij.ide.plugins.DynamicPlugins.loadPlugin(DynamicPlugins.kt:790)
	at com.intellij.ide.plugins.PluginInstaller.installAndLoadDynamicPlugin(PluginInstaller.java:392)
	at com.intellij.openapi.updateSettings.impl.PluginDownloader.tryInstallWithoutRestart(PluginDownloader.java:351)
	at com.intellij.openapi.updateSettings.impl.PluginUpdateDialog$4.lambda$run$0(PluginUpdateDialog.java:198)
	at com.intellij.openapi.updateSettings.impl.UpdateInstaller.installDownloadedPluginUpdates(UpdateInstaller.kt:113)
	at com.intellij.openapi.updateSettings.impl.PluginUpdateDialog$4.lambda$run$1(PluginUpdateDialog.java:197)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
	at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:350)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:133)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
	at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:189)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:887)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:756)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:443)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:442)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:488)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Incompatible with Build 241

The Move Language plugin is not compatible with the latest build.

Plugin 'Move Language' (version '1.35.0.233') is not compatible with the current version of the IDE, because it requires build 233.* or older but the current build is PS-241.14494.237

[bug] Inline functions should not have acquires

Bug

Inline functions aren't required to have acquires, which makes some weird things happen with acquiring generics (to use generic inline functions)

The following example will show that it requires acquires T, but the Move compiler will then say it's invalid.

inline fun borrow_object<T: key>(source_object: &Object<T>): &T acquires T {
    borrow_global<T>(object::object_address(source_object))
}

Instead we should direct users to use the below, and then have the acquires in the function that uses the inline function.

inline fun borrow_object<T: key>(source_object: &Object<T>): &T {
    borrow_global<T>(object::object_address(source_object))
}

Support _ in numeric values

This isn't recognized by the Move plugin

let some_var_name = 1_0000_0000;

The plugin needs to recognize _ in numeric values

Move compilation failed

I am following the pontem move docs, got this error when compiling:

  "Error": "Move compilation failed: Unable to resolve packages for package 'Hello': While resolving dependency 'AptosFramework' in package 'Hello': While processing dependency 'AptosFramework': Unable to find package manifest for 'AptosFramework' at \"/Users/dejavukong/.move/https___github_com_aptos-labs_aptos-core_git_devnet/aptos-move/framework/aptos-framework\""

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.