Sui Move Analyzer教程

Sui Move Analyzer是一个Visual Studio插件,可在编码时提供代码跳转和提示。

Sui Move Analyzer教程

Sui Move Analyzer是一款基于Visual Studio的插件,通过分析和改进Move代码的编写过程来简化Sui网络的开发过程。它支持Visual Studio集成开发环境(IDE)中的定义和自动完成,同时会提供一个大纲,让开发人员可以概览大型程序。

与其他Move开发工具不同,Sui Move Analyzer中包含Sui特有的功能。Sui项目模板和Sui Move代码片段能够引导开发工作,促使集成的Sui单元通过测试,提高开发人员写代码的速度。

准备工作

下载和安装Sui Move Analyzer时,需要设置好我们环境来开始构建项目。请注意,本教程使用的是Ubuntu Linux LTS做演示,如果使用的是其他平台,需要根据使用的系统制定操作命令。

设置Sui

使用Sui前需要根据操作系统安装一些必备软件并获取Sui二进制文件。此处推荐您参考以下Sui文档,其中包含有关Linux、Mac和Windows系统的详细信息。

点击此处查看操作系统必备软件

点击此处安装Sui二进制文件

除上述步骤外,设置Sui的文档还包括其他实用信息。

Move Analyzer Language Server

首先,我们需要安装Move Language Analyzer Server,它可以接收来自Sui Move Analyzer插件的请求,对代码的词法和语义进行分析,以帮助插件提供特定语言的功能。使用Rust工具链安装此服务器是最可靠的方法,Rust工具链包括编译器和其他可用于运行Sui Move Analyzer的工具,因此非常方便、非常可靠而且定期维护。

要获取Rust工具链,请打开命令行界面(CLI)并输入以下内容:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装好Rust工具链后,在CLI中执行以下命令:

cargo install --git https://github.com/movebit/move --branch move-analyzer2 move-analyzer

使用以下命令检查是否已正确安装达到要求:

Sui

move-analyzer --version

CLI会输出Move Analyzer Language Server当前的版本和帮助选项,这就表示依赖项已成功设置。

Sui Move Analyzer插件

现在一切准备就绪,可以安装Sui Move Analyzer了。但是,除此之外,我们还需要提前设置好Microsoft Visual Studio

您需要前往Sui Move Analyzer下载页面并点击下载按钮。

故障排除

如果您在安装Move Analyzer Language Server和Rust工具链时出现意外,我们建议您采取以下步骤:

  • 确保您使用的是最新版本的Rust。打开终端并输入 rustup update命令,然后重复安装步骤并重新启动Visual Studio。
  • 如果将 move-analyzer 可执行文件安装到了 Visual Studio 项目目录以外的位置,可以在设置中将其指向正确的位置。使用 Visual Studio 的搜索功能找到 move-analyzer.server.path 设置,并将其设置为所安装的 move-analyzer 语言服务器的位置。在 MacOS 上,单击 "代码 "菜单,然后选择 "首选项">"设置",输入正确的目录。

如果上述步骤不起作用,则可以向GitHub上的Move Repo发送问题报告。此外,Sui Move Analyzer的详细页面上也列出了常见问题。

创建一个新项目

为新项目设置所有必需的配置文件可能非常耗时间,因此我们将Sui Framework与Sui Move Analyzer集成在一起以快速启动该过程。要使用集成命令,请选择命令面板工具并输入“move analyzer/Sui”。 在MacOS系统上,您需要转到「View(查看)」菜单并点击「Command Palette(命令面板)」,此时,Move Analyzer上的命令列表将显示出来。

Move Analyzer命令列表
Sui Move Analyzer包括一系列用于快速创建项目或执行其他功能的集成命令。

从命令列表中选择「Create SUI project(创建 SUI 项目)」命令,Sui Move Analyzer即可自动从模板库中生成一个项目,同时还可以实现多项目开发功能。在创建新项目后,您可能需要重新打开一次Visual Studio,以确保创建的项目正常工作。

在代码编辑器中包含Move模块
Sui Move Analyzer的项目模板包括一个基本的Move模块和一些代码助您快速开始操作。

除项目模板外,Sui Move Analyzer还包含可提高开发人员效率的功能。它支持Sui Framework中许多常用的代码片段,例如,输入“fun init”即可快速生成一个初始函数。

带自动填充选项的代码编辑器
Sui Move Analyzer帮助构建者自动填充常用的代码,则无需重复输入相同的代码。

确保代码在模块中正常工作,这有助于避免对已部署程序或智能合约进行大量漏洞搜索。 Sui Move Analyzer集成了单元测试工具来验证代码,如输入“#[test_only]”标签会出现「Run Test(运行测试)」选项(如下所示)。

在代码编辑器中显示单元测试选项
将单元测试集成到Sui Move Analyzer中,让构建者在创建代码时即可验证他们的代码。

到目前为止,我们介绍的功能可以帮助新的开发者快速在Sui上构建,并为其消除一些与编码相关的重复性工作。

使用Sui Move编码

Sui Move Analyzer包含其他语言插件中的大部分功能,这些功能都可以在编码时轻松调用。要调出上下文菜单,请在编码屏幕中右键单击标识符(例如局部变量或参数名称)上的光标,然后选择一个选项,您将能够看到该标识符的定义、类型定义和参考项。

代码编辑器中的定义菜单
右键单击标识符会弹出上下文菜单,提供各种帮助选项。

将光标悬停在标识符上,会在功能提示中显示其名称。Sui Move Analyzer几乎涵盖了Sui Move的所有标识符,包括内置类型。

代码编辑器中显示的工具提示
将光标悬停在标识符上会弹出功能提示。

在打字时,Sui Move Analyzer会自动显示出Move中几乎所有建议的元素。由于它集成了Sui Framework,在IDE中键入「sui::」即可显示一个可供选择的模块列表。

代码编辑器中的自动完成功能
自动完成功能将会在您输入时,显示有用的建议,包括模块。

除了上面列出的功能外,我们还优化了语义分析器的代码,从而提高了效率,也使内存分配更合理。

使用MSL编码

Move规范语言(Move Specification Language,MSL)是Move的一个子集,它提供了Move函数如何相互交互的规范。MSL是Move Prover的核心,而Move Prover是一种旨在帮助构建者准确使用Move代码的CLI工具。与Sui Move Analyzer支持Sui Move的方式类似,它还支持具有自定义和自动完成等功能的MSL。想要在MSL上工作的构建者会发现,Sui Move Analyzer真的很有帮助。

在代码编辑器中查看函数
从标识符的上下文菜单中选择Peek可以显示更多信息。

MSL的语法非常灵活,我们已经考虑了各种可能的示例。在函数中选择MSL语法时,自动完成功能将显示可能的标识符。

代码编辑器中的自动完成建议
在此示例中,自动完成功能建议了编码时,MSL语法中对应的标识符。

MSL中的规范决定了Sui Move功能如何交互,Sui Move Analyzer可以为单个函数或 .move文件中的所有函数生成这些规范。

下拉菜单中的功能说明
除了显示定义等功能外,Sui Move Analyzer还可以为MSL生成函数规范。

上述功能将Sui Move Analyzer从帮助构建者为Sui编写应用程序扩展到为MSL项目做出贡献,它使代码验证变得简单,尤其是对于那些使用Move Prover的人来说更是。

快乐编码

我们希望构建者发现Sui Move Analyzer提高了其编码速度,对于使用过不同编程语言类似插件的人来说,它的许多功能并不陌生。

尽管我们仔细测试了Sui Move Analyzer的功能,但它仍然可能存在一些问题。我们期待收到有关改进或提升的反馈。如果您需要有关Sui Move Analyzer的帮助,请随时联系MoveBit

文章内容来自Sui社区贡献,本文仅代表社区成员个人观点,不代表Sui基金会立场。