-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Open
Labels
Description
This issue tracks various features we want out of the command-line and IDE integration tooling surrounding the HLL. cc @sezna @SilentCicero
CLI
The CLI is tentatively called the "Fuel Orchestrator" forc
. It is intended to be the equivalent of Rust's cargo
.
- Initialize new project w/basic config file, similar to
cargo new
. (Tool v1 #48) - Install and update dependencies from GitHub links with semver. (Install dependencies from GitHub #67)
- Central dependency repo (equivalent to crates.io).
- Publish libraries to registry ☝️ (signed).
- Build. (Tool v1 #48)
- Test with code coverage and gas usage reports. #732
- Launch a local testnet. (Initial interface for contract calls fuels-rs#9)
- Launch debugger (local testnet with debug flag).
- Launch local block explorer service that connects to local testnet node. (Spin up explorer with forc command #608)
- Deploy contracts to one or more chains, configurable. #733
- Format code, similar to
rustfmt
. (Command-line formatter #80) - Deploy language docs locally.
Installing Different Versions
In addition to a CLI tool associated with a single compiler version, and equivalent to Rust's rustup
tool is needed to manage multiple compiler versions. Blockchains require deterministic contract compilation for verifiability, which requires being able to manage multiple compiler versions. Ref: FuelLabs/fuelup#1.
IDE
Integration as an IDE plugin. Specifically, as an extension to Visual Studio Code similar to this one for Rust. Additional IDEs are reserved for the distant future.
- Syntax highlighting. (Tool v1 #48)
- Linguist integration for GitHub syntax highlighting.
- Build command.
- Build on save.
- Report errors and warning inline.
- Run all tests.
- Run one test.
- Mouse-over function and field documentation.
- Mouse-over type information.
- Goto uses.
- Goto declaration.
- Refactor/rename.
- Launch and interact with debugger (including breakpoints and watch variables).
- Format on save. (Added initial version of the formatter #74)