sway
sway copied to clipboard
Tracking: tooling desiderata
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.
- [x] Initialize new project w/basic config file, similar to
cargo new. (#48) - [x] Install and update dependencies from GitHub links with semver. (#67)
- [ ] Central dependency repo (equivalent to crates.io).
- [ ] Publish libraries to registry ☝️ (signed).
- [x] Build. (#48)
- [ ] FuelLabs/sway#732
- [x] Launch a local testnet. (https://github.com/FuelLabs/fuels-rs/pull/9)
- [ ] Launch debugger (local testnet with debug flag).
- [x] Launch local block explorer service that connects to local testnet node. (#608)
- [ ] FuelLabs/sway#733
- [x] Format code, similar to
rustfmt. (#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.
- [x] Syntax highlighting. (#48)
- [ ] Linguist integration for GitHub syntax highlighting.
- [x] Build command.
- [x] Build on save.
- [x] Report errors and warning inline.
- [ ] Run all tests.
- [x] Run one test.
- [x] Mouse-over function and field documentation.
- [x] Mouse-over type information.
- [x] Goto uses.
- [x] Goto declaration.
- [x] Refactor/rename.
- [ ] Launch and interact with debugger (including breakpoints and watch variables).
- [x] Format on save. (#74)