move-analyzer
Provides language support for the Move programming language.
Currently, this means a basic grammar and language configuration for Move (.move ) that enables
syntax highlighting, commenting/uncommenting, simple context-unaware completion suggestions while
typing, and other basic language features in Move files.
For information about Move visit the Move repository.
How to Install
The move-analyzer Visual Studio Code extension works via two components: the extension itself and
the move-analyzer language server.
1. Installing the move-analyzer language server
The move-analyzer language server is a Rust program that is part of the
Move repository. It may be installed in one of two ways:
- Clone the Move repository yourself and build
move-analyzer from its source code, which is especially useful if you will work on core Move.
To do so, follow the instructions in the Move tutorial's
Step 0: Installation.
- Use Rust's package manager
cargo to install move-analyzer in your user's PATH. This
is recommended for people who do not work on core Move.
- If you don't already have a Rust toolchain installed, you should install
Rustup, which will install the latest stable Rust toolchain.
- Invoke
cargo install --git https://github.com/move-language/move move-analyzer to install the
move-analyzer language server in your Cargo binary directory. On macOS and Linux, this is
usually ~/.cargo/bin . You'll want to make sure this location is in your PATH environment
variable. If you plan to use the language server with Move language flavors different from core Move,
you should specify an additional option to cargo install command as different Move flavors
may enforce different max length of the Move address type: --features "address20" option for Move
flavors requiring 20-byte long addresses (e.g., Sui Move) and --features "address32" option
for Move flavors requiring 32-byte long addresses (e.g., Aptos Move).
To confirm that you've installed the language server program successfully, execute
move-analyzer --version on the command line. You should see the output move-analyzer 1.0.0 .
2. Installing the move-analyzer Visual Studio Code extension
- Open a new window in any Visual Studio Code application version 1.55.2 or greater.
- Open the command palette (
⇧⌘P on macOS, or use the menu item View > Command Palette...) and
type Extensions: Install Extensions. This will open a panel named Extensions in the
sidebar of your Visual Studio Code window.
- In the search bar labeled Search Extensions in Marketplace, type move-analyzer. The
move-analyzer extension should appear in the list below the search bar. Click Install.
- Open any file that ends in
.move . Or to create a new file, click Select a language, and
choose the Move language. As you type, you should see that keywords and types appear in
different colors.
Troubleshooting
If you see an error message language server executable 'move-analyzer' could not be found in the
bottom-right of your Visual Studio Code screen when opening a Move file, it means that the
move-analyzer executable could not be found in your PATH . You may try the following:
- Confirm that invoking
move-analyzer --version in a command line terminal prints out
move-analyzer 1.0.0 . If it doesn't, then retry the instructions in step 1. If it
does successfully print this output, try closing and re-opening the Visual Studio Code
application, as it may not have picked up the udpates to your PATH .
- If you installed the
move-analyzer executable to a different location that is outside of your
PATH , then you may have the extension look at this location by using the the Visual Studio Code
settings (⌘, on macOS, or use the menu item Code > Preferences > Settings). Search for the
move-analyzer.server.path setting, and set it to the location of the move-analyzer language
server you installed.
- If the above steps don't work, then report
a GitHub issue to the Move repository to get help.
Features
Here are some of the features of the move-analyzer Visual Studio Code extension. To see them, open a
Move source file (a file with a .move file extension) and:
- See Move keywords and types highlighted in appropriate colors.
- Comment and un-comment lines of code using the
⌘/ shortcut on macOS (or the menu command Edit >
Toggle Line Comment).
- Place your cursor on a delimiter, such as
< , ( , or { , and its corresponding delimiter --
> , ) , or } -- will be highlighted.
- As you type, Move keywords will appear as completion suggestions.
- If the opened Move source file is located within a buildable project (a
Move.toml file can be
found in one of its parent directories), the following advanced features will also be available:
- compiler diagnostics
- go to definition
- go to type definition
- go to references
- type on hover
- outline view showing symbol tree for Move source files
| |