🦑 ink! Analyzer
A library for semantic analysis of ink! smart contract code.
It implements utilities for performing semantic analysis of ink! smart contract code. It therefore implements the core functionality of ink! analyzer at a high level.
It currently implements an Analysis entry point that accepts a string representation (&str) of ink! smart contract code as input and defines associated methods that compute:
- diagnostics - errors and warnings based on ink! semantic rules.
- completions - completion suggestions for ink! attribute macros and arguments.
- code/intent actions - contextual assists for adding relevant ink! attribute macros and arguments.
- hover content - descriptive/informational text for ink! attribute macros and arguments.
NOTE: 🚧 This project is still work in progress, check back over the next few weeks for regular updates.
Installation
Run the following Cargo command in your project directory
cargo add ink-analyzer
Usage
Example:
Analyzing ink! smart contract code.
use ;
Documentation
https://docs.rs/ink-analyzer/latest/ink_analyzer/
Or you can access documentation locally by running the following command from the project root
cargo doc -p ink-analyzer-ir --open
Testing
You can run unit and integration tests for all the core functionality by running the following command from the project root
cargo test -p ink-analyzer-ir
License
Licensed under either MIT or Apache-2.0 license at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.