# Better Comments The Better Comments extension will help you create more human-friendly comments in your code. With this extension, you will be able to categorise your annotations into: * Alerts * Queries * TODOs * Highlights * Commented out code can also be styled to make it clear the code shouldn't be there * Any other comment styles you'd like can be specified in the settings ![Annotated code](images/better-comments.PNG) ## Configuration This extension can be configured in User Settings or Workspace settings. `"better-comments.multilineComments": true` This setting will control whether multiline comments are styled using the annotation tags. When false, multiline comments will be presented without decoration. `"better-comments.highlightPlainText": false` This setting will control whether comments in a plain text file are styled using the annotation tags. When true, a tag (defaults: `! * ? // todo`) is detected in a plain text file if it's the first non-blank character on a line, since plain text has no comment delimiter. `better-comments.tags` The tags are the characters or sequences used to mark a comment for decoration. In a line comment, a tag must be the first non-blank text after the delimiter, as in `// ! alert` or `# TODO: later`. In a block comment, it must start a line inside the block (after the leading `*` in a `/** … */` comment), not follow the opening `/*` on the same line. The default 5 can be modified to change the colors, and more can be added. Changes need a restart of VS Code to take effect. Each tag has these settings: * `tag` (required): the characters or word, such as `!` or `todo`. Case doesn't matter. * `color` and `backgroundColor`: a hex colour such as `#FF2D00`, any other CSS colour such as `transparent` or `rgba(255, 0, 0, 0.5)`, or a colour from your theme, such as `{ "id": "editorError.foreground" }`. Hex colours get a colour picker in `settings.json`. * `strikethrough`, `underline`, `bold` and `italic`: `true` or `false`. A tag without a `tag` is ignored. ```json "better-comments.tags": [ { "tag": "!", "color": "#FF2D00", "strikethrough": false, "underline": false, "backgroundColor": "transparent", "bold": false, "italic": false }, { "tag": "?", "color": "#3498DB", "strikethrough": false, "underline": false, "backgroundColor": "transparent", "bold": false, "italic": false }, { "tag": "//", "color": "#474747", "strikethrough": true, "underline": false, "backgroundColor": "transparent", "bold": false, "italic": false }, { "tag": "todo", "color": "#FF8C00", "strikethrough": false, "underline": false, "backgroundColor": "transparent", "bold": false, "italic": false }, { "tag": "*", "color": "#98C379", "strikethrough": false, "underline": false, "backgroundColor": "transparent", "bold": false, "italic": false } ] ``` ## Supported Languages * Ada * AL * Apex * AsciiDoc * BrightScript * C * C# * C++ * ColdFusion * Clojure * COBOL * CoffeeScript * CSS * Dart * Dockerfile * Elixir * Elm * Erlang * F# * Fortran * gdscript * GenStat * Go * GraphQL * Groovy * Haskell * Haxe * HiveQL * HTML * Java * JavaScript * JavaScript React * JSON with comments * Julia * Kotlin * LaTex (inlc. Bibtex/Biblatex) * Less * Lisp * Lua * Makefile * Markdown * Nim * MATLAB * Objective-C * Objective-C++ * Pascal * Perl * Perl 6 * PHP * Pig * PlantUML * PL/SQL * PowerShell * Puppet * Python * R * Racket * Ruby * Rust * SAS * Sass * Scala * SCSS * ShaderLab * ShellScript * SQL * STATA * Stylus * Svelte * Swift * Tcl * Terraform * Twig * TypeScript * TypeScript React * Verilog * Visual Basic * Vue.js * XML * YAML