|
| 1 | +# Visual Studio Code |
| 2 | + |
| 3 | +> A guide for using [Visual Studio Code][vscode] for project development. |
| 4 | +
|
| 5 | +[Visual Studio Code][vscode] is a free source code editor that is available for use on Linux, MacOS, and Windows. |
| 6 | + |
| 7 | +## Installation |
| 8 | + |
| 9 | +Pre-built binaries are available for download on the Visual Studio Code [homepage][vscode]. |
| 10 | + |
| 11 | +To use [Visual Studio Code][vscode] as a command-line utility, users on MacOS have to run a command to add the [Visual Studio Code][vscode] executable to the `PATH` environment variable (see the official [documentation][vscode-macos-setup]. |
| 12 | + |
| 13 | +To test the command-line utility, |
| 14 | + |
| 15 | +```bash |
| 16 | +$ code --help |
| 17 | +``` |
| 18 | + |
| 19 | +To open a project in [Visual Studio Code][vscode], |
| 20 | + |
| 21 | +```bash |
| 22 | +$ cd ./path/to/project |
| 23 | +$ code . |
| 24 | +``` |
| 25 | + |
| 26 | +## Packages |
| 27 | + |
| 28 | +- [**EditorConfig**][vscode-editorconfig]: package for using [EditorConfig][editorconfig], which helps define and maintain consistent coding styles between different editors and IDEs. |
| 29 | + |
| 30 | +- [**JSON Tools**][vscode-json-tools]: package for pretty printing and minifying [JSON][json]. |
| 31 | + |
| 32 | +- [**Julia**][vscode-julia]: package which provides support for [Julia][julia], including syntax highlighting, snippets, and code completion. |
| 33 | + |
| 34 | +- [**AWK**][vscode-awk]: package which provides syntax highlighting for [AWK][awk]. |
| 35 | + |
| 36 | +- [**Fortran**][vscode-fortran]: package which provides syntax highlighting and snippets for [Fortran][fortran]. Once installed, configure [Visual Studio Code][vscode] to always open files having the file extension `*.f` as `Fortran - Modern` in your user or workspace settings. |
| 37 | + |
| 38 | + ```text |
| 39 | + ... |
| 40 | + "files.associations": { |
| 41 | + "*.f": "fortran-modern" |
| 42 | + } |
| 43 | + ... |
| 44 | + ``` |
| 45 | + |
| 46 | +- [**Code Spell Checker**][vscode-spell-checker]: A simple source code spell checker. See the [official documentation][vscode-spell-checker-readme] for configuration options. |
| 47 | + |
| 48 | +- [**ESLint**][vscode-eslint]: extension to integrate [eslint][eslint] into [Visual Studio Code][vscode]. Once installed, you need to configure the extension to use the project [ESLint][eslint] configuration files in your workspace settings. |
| 49 | + |
| 50 | + ```text |
| 51 | + ... |
| 52 | + "eslint.options": { |
| 53 | + "configFile": "etc/eslint/.eslintrc.js" |
| 54 | + }, |
| 55 | + ... |
| 56 | + ``` |
| 57 | + |
| 58 | +- [**Path Intellisense**][vscode-path-intellisense]: extension that autocompletes filenames. |
| 59 | + |
| 60 | +- [**TODO Highlight**][vscode-todo-highlight]: extension which marks annotations such as `TODO`, `FIXME`, etc. Once installed, you may configure the extension to your liking in your user or workspace settings, e.g. by specifying the list of keywords to be highlighted. |
| 61 | + |
| 62 | + ```text |
| 63 | + ... |
| 64 | + "todohighlight.keywords": [ |
| 65 | + { |
| 66 | + "text": "FIXME:", |
| 67 | + "color": "white", |
| 68 | + "backgroundColor": "red", |
| 69 | + "isWholeLine": true |
| 70 | + }, |
| 71 | + { |
| 72 | + "text": "HACK:", |
| 73 | + "color": "darkgreen", |
| 74 | + "isWholeLine": true, |
| 75 | + }, |
| 76 | + { |
| 77 | + "text": "NOTE:", |
| 78 | + "color": "darkgreen", |
| 79 | + "backgroundColor": "rgba(0,0,0,.2)", |
| 80 | + "overviewRulerColor": "grey", |
| 81 | + "isWholeLine": true |
| 82 | + }, |
| 83 | + { |
| 84 | + "text": "OPTIMIZE:", |
| 85 | + "isWholeLine": true |
| 86 | + }, |
| 87 | + { |
| 88 | + "text": "TODO:", |
| 89 | + "color": "darkred", |
| 90 | + "backgroundColor": "rgba(0,0,0,.2)", |
| 91 | + "isWholeLine": true |
| 92 | + }, |
| 93 | + { |
| 94 | + "text": "WARNING:", |
| 95 | + "color": "black", |
| 96 | + "backgroundColor": "orange", |
| 97 | + "isWholeLine": true |
| 98 | + } |
| 99 | + ] |
| 100 | + ... |
| 101 | + ``` |
| 102 | + |
| 103 | +<section class="links"> |
| 104 | + |
| 105 | +[vscode]: https://code.visualstudio.com/ |
| 106 | + |
| 107 | +[vscode-macos-setup]: https://code.visualstudio.com/docs/setup/mac |
| 108 | + |
| 109 | +[vscode-eslint]: https://github.com/Microsoft/vscode-eslint |
| 110 | + |
| 111 | +[vscode-spell-checker]: https://github.com/Jason-Rev/vscode-spell-checker |
| 112 | + |
| 113 | +[vscode-spell-checker-readme]: https://github.com/Jason-Rev/vscode-spell-checker/blob/master/client/README.md |
| 114 | + |
| 115 | +[vscode-path-intellisense]: https://github.com/ChristianKohler/PathIntellisense |
| 116 | + |
| 117 | +[vscode-todo-highlight]: https://github.com/wayou/vscode-todo-highlight |
| 118 | + |
| 119 | +[vscode-editorconfig]: https://github.com/editorconfig/editorconfig-vscode |
| 120 | + |
| 121 | +[vscode-json-tools]: https://marketplace.visualstudio.com/items?itemName=eriklynd.json-tools#overview |
| 122 | + |
| 123 | +[vscode-julia]: https://github.com/JuliaEditorSupport/julia-vscode |
| 124 | + |
| 125 | +[vscode-awk]: https://github.com/luggage66/vscode-awk |
| 126 | + |
| 127 | +[vscode-fortran]: https://github.com/Gimly/vscode-fortran |
| 128 | + |
| 129 | +[eslint]: http://eslint.org/ |
| 130 | + |
| 131 | +[json]: http://www.json.org/ |
| 132 | + |
| 133 | +[editorconfig]: http://editorconfig.org/ |
| 134 | + |
| 135 | +[julia]: https://julialang.org/ |
| 136 | + |
| 137 | +[awk]: https://en.wikipedia.org/wiki/AWK |
| 138 | + |
| 139 | +[fortran]: https://en.wikipedia.org/wiki/Fortran |
| 140 | + |
| 141 | +</section> |
| 142 | + |
| 143 | +<!-- /.links --> |
0 commit comments