Here are the list of tips and tricks to develop solidity in a modern way (understand back to 2017 year :-) )
- Intellij-Solidity see https://github.com/intellij-solidity/intellij-solidity
- Solidity Solhint Plugin allow to enable Solhint inspection capabilities in your project. It highlight of warnings / errors found by the linter in editor during code modification.
Auto-completion of solidity
Your smart contract code also deserve to be recognized by your IDE and in your test-cases. In order to enjoy auto-completion you'll have to use Soltsice ()https://github.com/dbrainio/Soltsice) to convert Solidity code to TypeScript at compile time.
Add to your package.json
"types": "soltsice build/contracts types",
mocha, jasmine, chai, chai-as-promised, babel-core, add as much as your are using in your code.
FYI by doing so you just add typedscript packages from DefinitelyTyped GitHub project.
Auto-completion of Web3
There currently no official Web3 type definition included in the DefinitelyTyped project. But there is one package good enough even if in Beta at https://www.npmjs.com/package/web3-typescript-typings
Only the Truffle debugger for now http://truffleframework.com/docs/getting_started/debugging
Running unit test
CI in Travis with Docker, .travis.yml
dist: trusty sudo: required group: beta language: node_js node_js: - "8" cache: directories: - node_modules before_script: - truffle version script: - npm run lint - npm run test notifications: slack: rooms: - secure: xxxxxxxxxxxxxxxx on_success: change on_failure: always on_pull_requests: false
Easy testing of EVM Time shifting with Truffle snapshot/restore
Buggy right now, but may be solved soon see https://github.com/trufflesuite/ganache-cli/issues/390
This is a work in progress, i will continue trying to improve my day to day Solidity toolbox! If you have more tips, feel free to use the comment section below.