Ackee Blockchain Tools for SolidityTools for Solidity is an extension for Visual Studio Code that implements a language server for Solidity. It offers most of the language server features and displays results of vulnerability detectors along with compiler warnings and errors. Different graph types can be generated to better vizualize the relations in the code. This extension provides the following language server features:
The following types of graphs can be generated:
DependenciesThe Tools for Solidity extension uses the PyPi package woke which requires Python 3.7 or higher. To display the generated graphs, one of the supported Graphviz (DOT) extensions must be installed:
InstallationThe package woke is installed Alternatively, it can be installed
FeaturesControl flow graphsInheritance graphsGo to definitionGo to type definitionGo to implementationFind implementations of an unimplemented function or modifier. Find referencesType hierarchyAlso works for virtual functions. Document linksHoverIncludes links to documentation for OpenZeppelin contracts. Code lensNumber of references is shown above each declaration. Document symbolsDiagnosticsTogether with compiler errors, diagnostics also include results from Woke vulnerability detectors. RenameSupported commands
Force recompile the opened project/files.
Force rerun Woke vulnerability and issue detectors on the opened project/files.
Generate an inheritance graph for the whole project.
Generate an imports graph for the whole project. Known Issues
The extension currently does not handle changes external to VS Code. This especially means that files installed into
It is always recommended to open a project as a folder (
The extension relies on the AcknowledgementsWe used juanfranblanco/vscode-solidity as a base of our Solidity grammar. |