├── .gitignore ├── CHANGELOG.md ├── README.md ├── images └── icon.png └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # next.js build output 61 | .next 62 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## 0.0.8 4 | 5 | - removed `scode-npm-script` #3 6 | - removed `MythX.mythxvsc` 7 | 8 | ## 0.0.7 9 | 10 | - added https://marketplace.visualstudio.com/items?itemName=tintinweb.solidity-metrics 11 | 12 | ## 0.0.6 13 | 14 | - removed: `beaugunderson.solidity-extended` - not maintained anymore 15 | 16 | ## 0.0.5 17 | 18 | - removed: solidity-debugger. non-working and project seems to be discontinued. 19 | 20 | ## 0.0.4 21 | 22 | - updated: `mirkogarozzo.mythxvsc` (deprecated) -> `MythX.mythxvsc` (official) 23 | 24 | ## 0.0.3 25 | 26 | - moved to extensionPack from extensionDependencies. Allows to install individual extensions. Uninstalling the bundle/extensionPack will now uninstall all referenced extensions. 27 | - added [tintinweb.vscode-inline-bookmarks](https://marketplace.visualstudio.com/items?itemName=tintinweb.vscode-inline-bookmarks) - Easily add customizable inline bookmarks based on trigger words. Perfect for code audits or to keep track of notes and todo's. 28 | 29 | ## 0.0.1 - 0.0.2 30 | - Initial release 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # Ethereum Security Bundle for vscode 3 | 4 | A meta-extension bundling [vscode](https://marketplace.visualstudio.com/search?term=ethereum&target=VSCode&category=All%20categories&sortBy=Relevance) plugins for Smart Contract Auditors & Developres. This is basically [my](https://github.com/tintinweb) vscode auditing setup. 5 | 6 | * [Bundled Extensions](#-bundled-extensions) 7 | * [Tweaks](#-tweaks) 8 | * [More...](#-more-useful-extensions) 9 | 10 | 11 | 12 | ## 📚 Bundled Extensions 13 | 14 | #### Solidity 15 | 16 | ##### Language support 17 | 18 | * [juanblanco.solidity](https://marketplace.visualstudio.com/items?itemName=juanblanco.solidity) - Solidity language support and more! 19 | * [tintinweb.solidity-visual-auditor](https://marketplace.visualstudio.com/items?itemName=tintinweb.solidity-visual-auditor) - Security centric syntax and semantic highlighting, a detailed class outline and advanced Solidity code insights for Solidity developers and auditors. 20 | * [tintinweb.solidity-metrics](https://marketplace.visualstudio.com/items?itemName=tintinweb.solidity-metrics) - Create fancy solidity code metrics reports. 21 | 22 | ##### Tool integrations 23 | 24 | * [tintinweb.vscode-solidity-flattener](https://marketplace.visualstudio.com/items?itemName=tintinweb.vscode-solidity-flattener) - Flatten Solidity contracts from truffle projects from within vscode (context menu for solidity files in the vscode file explorer). 25 | 26 | #### Vyper 27 | 28 | ##### Language support 29 | 30 | * [tintinweb.vscode-vyper](https://marketplace.visualstudio.com/items?itemName=tintinweb.tintinweb.vscode-vyper) - Ethereum Vyper Language Support and Visual Auditor 31 | 32 | #### LLL 33 | 34 | ##### Language support 35 | 36 | * [tintinweb.vscode-LLL](https://marketplace.visualstudio.com/items?itemName=tintinweb.vscode-LLL) - Ethereum LLL Language Support 37 | 38 | ### General Purpose 39 | 40 | ##### Efficiency 41 | 42 | * [streetsidesoftware.code-spell-checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) - Spellcheck your code. 43 | * [gimenete.github-linker](https://marketplace.visualstudio.com/items?itemName=gimenete.github-linker) - Right-Click and copy a github link of the selected code fragment to clipboard. 44 | 45 | ##### Review 46 | 47 | * [ryu1kn.partial-diff](https://marketplace.visualstudio.com/items?itemName=ryu1kn.partial-diff) - Create partial diffs of selected text in the vscode text editor. 48 | * [tintinweb.vscode-inline-bookmarks](https://marketplace.visualstudio.com/items?itemName=tintinweb.vscode-inline-bookmarks) - Easily add customizable inline bookmarks based on trigger words. Perfect for code audits or to keep track of notes and todo's. 49 | 50 | ##### Tool integrations 51 | 52 | * [eamodio.gitlens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) - Git support. Especially useful when reviewing diffs. 53 | 54 | ## ⚙ Tweaks 55 | 56 | Cool, you've come this far therefore I expect you're genuinely interested in either the individual extensions or you just installed the one-click bundle :) Either way, you're welcome! 57 | 58 | Here's a quick walk-through and some tweaks on how to get the best out of vscode and the extensions. 59 | 60 | *Note: json settings shown below are meant to be merged into your config.* 61 | 62 | ### VSCode 63 | 64 | **How do I un/install extensionbs?** 65 | 66 | `AppMenu -> Preferences -> Extensions` 67 | 68 | **How do I access vscode and extension settings?** 69 | 70 | `AppMenu -> Preferences -> Settings` 71 | 72 | **How do I disable telemetry in vscode?** 73 | 74 | * Open settings.json (via vscode settings) 75 | * Add this to `settings.json`: 76 | ```json 77 | { 78 | "telemetry.enableCrashReporter": false, 79 | "telemetry.enableTelemetry": false, 80 | } 81 | ``` 82 | 83 | **Make vscode auto-save files automatically after a delay** 84 | 85 | * It can be annoying that you are editing a file and always have to manually save it for it to be synced to the file-system. The following auto-saves files after a delay automatically. 86 | * Add this to `settings.json`: 87 | ```json 88 | { 89 | "files.autoSave": "afterDelay", 90 | } 91 | ``` 92 | 93 | * And disable confirmation when deleting 94 | 95 | ```json 96 | { 97 | "explorer.confirmDelete": false, 98 | } 99 | ``` 100 | 101 | **How do I extend the terminal scrollback cache?** 102 | 103 | * Some tools may produce a large amount of output lines and it can be annoying that the integrated terminal's scrollback is very limited. 104 | 105 | * Add this to `settings.json`: 106 | ```json 107 | { 108 | "terminal.integrated.scrollback": 6000, 109 | } 110 | ``` 111 | 112 | **Selection Highlighting** 113 | 114 | ![image](https://user-images.githubusercontent.com/2865694/60887684-3cf32b80-a255-11e9-976f-810ea27da218.png) 115 | 116 | * Grey selection highlight 117 | * Orange selection border for other occurences of the selection in the editor (nice for comparison) 118 | 119 | ```json 120 | { 121 | "workbench.colorCustomizations": { 122 | "editor.selectionBackground": "#977f5746", 123 | "editor.selectionHighlightBackground": "#cf9b4d28", 124 | "editor.selectionHighlightBorder":"#ff5e0096" 125 | }, 126 | } 127 | ``` 128 | 129 | **Make vscode diff editor ignore whitespaces by default** 130 | 131 | * we don't care too much about whitespaces right now :D 132 | 133 | ```json 134 | { 135 | diffEditor.ignoreTrimWhitespace 136 | } 137 | ``` 138 | 139 | ### Solidity 140 | 141 | **Disable the auto-linting** 142 | 143 | * Add this to `settings.json`: 144 | ```json 145 | { 146 | "solidity.enabledSolium": false, 147 | "solidity.linter": "", 148 | } 149 | ``` 150 | 151 | ### Git & Gitlens 152 | 153 | * Gitlens code-lenses can be annoying (inline code actions). Thankfully they can be disabled (together with telemetry. data privacy ftw). We also enable git commit fetching for the git extension: 154 | 155 | ```json 156 | { 157 | "gitlens.codeLens.enabled": false, 158 | "gitlens.advanced.telemetry.enabled": false, 159 | "git.autofetch": true, 160 | } 161 | ``` 162 | 163 | ## ➕ More useful extensions 164 | 165 | * Indent-Rainbow 166 | * Bookmarks 167 | * Git Graph 168 | * ES Lint 169 | * XML Tools 170 | * Material Icon Theme 171 | * Markdown All in One 172 | 173 | ## Notes 174 | 175 | * You can uninstall individual extensions at any point. 176 | * Uninstalling the extension pack will uninstall all the referenced extensions. 177 | 178 | ## Credits 179 | 180 | ♥ Thanks to the awesome Ethereum community for building all these extensions, you rock! 181 | 182 | 183 | ## Release Notes 184 | 185 | see [CHANGELOG](./CHANGELOG.md) 186 | 187 | 188 | ----------------------------------------------------------------------------------------------------------- 189 | -------------------------------------------------------------------------------- /images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tintinweb/vscode-ethereum-security-bundle/51c3c5d7d8a11f2af2ee79f7f489529ac402815b/images/icon.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ethereum-security-bundle", 3 | "displayName": "Ethereum Security Bundle", 4 | "description": "A meta-extension bundling marketplace plugins for secure Ethereum smart contract development.", 5 | "version": "0.0.8", 6 | "keywords": [ 7 | "blockchain", 8 | "ethereum", 9 | "solidity", 10 | "vyper", 11 | "lll", 12 | "truffle", 13 | "security" 14 | ], 15 | "publisher": "tintinweb", 16 | "icon": "images/icon.png", 17 | "engines": { 18 | "vscode": "^1.20.2" 19 | }, 20 | "categories": [ 21 | "Extension Packs", 22 | "Programming Languages" 23 | ], 24 | "bugs": { 25 | "url": "https://github.com/tintinweb/vscode-ethereum-security-bundle/issues" 26 | }, 27 | "repository": { 28 | "type": "git", 29 | "url": "https://github.com/tintinweb/vscode-ethereum-security-bundle" 30 | }, 31 | "extensionPack": [ 32 | "juanblanco.solidity", 33 | "tintinweb.solidity-visual-auditor", 34 | "tintinweb.vscode-vyper", 35 | "tintinweb.vscode-LLL", 36 | "tintinweb.vscode-solidity-flattener", 37 | "tintinweb.vscode-inline-bookmarks", 38 | "tintinweb.solidity-metrics", 39 | "streetsidesoftware.code-spell-checker", 40 | "ryu1kn.partial-diff", 41 | "eamodio.gitlens", 42 | "gimenete.github-linker" 43 | ] 44 | } 45 | --------------------------------------------------------------------------------