Solver integrates Solhint (a Solidity linter) in Visual Studio Code.
Learn more about Solhint here.
Since Solver already contains an instance of Solhint, you are not required to install it. If you are creating a new project from scratch, you can add manually a .solhint.json
configuration file (or use Solhint to generate one).
Once installed, the extension will start when you will open a Solidity file.
The way it works is very simple:
- If you opened a single file: the rules defined in the settings of the extension will be used.
- If you opened a folder: the extension is going to look for a
.solhint.json
file in the current workspace and use the rules defined inside this file.
Note: If you did not defined any rule in the settings of the extension, or if the .solhint.json
file is missing, all the rules are going to be activated by default.
The following settings are available:
When the current file has been edited, this defines how much time (in millisecond) the extension will wait before triggering a new linting. Exemple:
"solver.delay": 500
The style applied to the warning messages. Example:
"solver.warningStyle": {
"border": "1px solid #f39c12",
"borderStyle": "dashed"
}
The style applied to the error messages. Example:
"solver.warningStyle": {
"border": "1px solid #c0392b",
"borderStyle": "dashed"
}
This defines all the rules related to Solhint. You can simply copy and paste the content of a .solhint.json
file in here. Example:
"solver.config": {
"extends": "solhint:default",
"plugins": [],
"rules": {
"quotes": "warn",
"const-name-snakecase": "off",
"avoid-suicide": "error",
"avoid-sha3": "warn",
"avoid-tx-origin:": "warn",
"not-rely-on-time": "warn",
"not-rely-on-block-hash": "warn",
"space-after-comma": "warn",
"no-spaces-before-semicolon": "warn"
}
}
You can find more details about Solhint rules here.
Note: Plugins are not supported yet.
Here are the known issues, I'll try to fix them as soon as possible:
- When an issue has been spotted, the warning / error message may highlight more code than needed
- When the rules are updated (in the settings or in the
.solhint.json
file), the new configuration may not be used right away in the current file - Plugins are not supported yet
- When an issue has been spotted, a solution could be proposed to fix it
- This extension does not implement Solidity syntax highlighting