Return to Blog Home

Impactful VSCode Extensions

 

Impactful VSCode Extensions

The most impactful extensions I use in my day-to-day workflow!

Now I'm not going to be pointing out the obvious ones, like "As a P​ython developer, I recommend the P​ython extension", or others that are covered by every other extension-recommendation list, like "Use Prettier to make your code prettier!". If you can find it without scrolling when searching for it in the extensions tab, I'm not going to mention it.

Which leads right into my main piece of advice for finding extensions: simply search for them, no matter how "small" of a technology you're using there's likely a extension or two for it.

Now onto the list, ordered within their individual categories by how impactful they are to my workflow.

Generic

Error Lens

Brings all info, warnings, and errors out from the Problems tab and into the code itself, making it easier to see what's wrong with your code at a glance.

a warning and error being displayed inline

Indent Rainbow

Colors the different levels of indentation, making it easier to see where you are in the code.

line and background intention color styles

Bracket Lens

Adds the opening content to the ending bracket, making it easier to see what the bracket is for.

official demonstration screenshot

Code Spell Checker

Checks the spelling of words, makes is easier to focus on the code itself.

official demonstration screenshot

Better Comments

Adds some much-needed styling variations to comments, supporting nearly every language and comment style, making it much easier to jump betwwen comments and code.

gif showing corrections being made to spelling

Open in G​itHub, Bitbucket, Gitlab

Provides quick shortcuts to open the current file/line in GitHub, Bitbucket, or Gitlab, making it easy to link to the current code.

screenshot of a file context manu containing the 'Copy Link' and 'Open in G​itHub' options

Open

Adds the Open in default application command and context-menu option to open a file in the OS-default application, from opening HTML in the browser, to opening images in the default image viewer, making it easier to view files without leaving VSCode.

Partial Diff

Provides many ways to compare text, no matter if they're in the same file, different files, or even in your clipboard! Even supports normalizing the text to reduce noise, and ignoring whitespace changes, making it easier to compare large or noisy content.

gif showing diffs between generated text

Formatting Toggle

Adds a button to the status bar that allows you to toggle formatting on and off, makes it easy switching between unformatted and formatted projects without digging into the settings.

Todo+

Makes all files named TODO instant Todo lists, allowing you to quickly add and manage tasks without having to open a separate file or spin up a whole project board. Makes it easy to keep organized without having the upfront investment of a Kanban board or more complex project management tools.

When you do find it to be inadequate, that's usually an indication that your project has grown to a scale at which a project board is warranted, Kanbn Extension for Visual Studio Code could be a next step.

screenshot of a TODO file showcasing all the possible item states

Quick and Simple Text Selection

Adds the ability to select all the text between two symbols - usually quotes, but additionally supports brackets, braces, and even carets. Makes it easy to select text within symbols, especially when working with multiple cursors and the content within the symbols is different.

gif showing the selection of all text within single quotes twice

EditorConfig for VS Code

Attempts to override the editor's settings with the settings defined in the .editorconfig file in the project's root directory, makes onboarding onto new projects much easier.

Trailing Spaces

Simply highlights trailing spaces, makes it impossible to accidently make a bunch of unintended whitespace changes, keeping your commits clean!

code with trailing spaces highlighted in red

Live Share

Lets you share/join a workspace with other developers, from simply showing both of your cursors within a document, to sharing terminals, ports, and even debugging sessions. Makes working with others on a codebase much easier, instead of them telling you to jump to a file or add a logging statement somewhere, they can do so themselves!

screenshot split down the middle showing what the current user is doing on the left, and what the shared-with user on the right sees

Code Tour

Allows users to create and follow code tours, makes both onboarding new developers and simply showing off your codebase a breeze!

gif showing creation of a Code Tour

Image preview

Shows a preview of image links in the gutter, not only making it easy to see what the image actually is, but additionally makes it obvious when there are broken image links!

images being shown in the gutter beside their links

Fold Plus

Adds additional folding-related commands, of which I personally only care for the Fold All Same Level as Cursor - allowing you to fold all the code at the same level as the cursor, makes it easy to traverse between indentation-based siblings quickly, like HTML elements or test cases!

gif of folding commands being ran

Sensitive Replace

Allows replacing all selections while preserving the individual case of each selection, making it easy to rename not just single variables, but entire concepts and maintain the original casing.

gif of replacements being made but with case preservation

Output Colorizer

Add highlighting to common outputs and log files, making the reading of these logs much easier.

VSCode Position

Shows you your current offset position in the file, and allows you to jump to the nth character in the file or make relative jumps. Makes it easier to jump straight to where some obtuse error messages is telling you things went wrong, like JSON parsing errors which only give you the offset of the token that failed to parse.

gif navigating through a file using positions

Kanbn Extension for Visual Studio Code

Adds a local-only Kanban board to your project, allowing you to quickly add and manage tasks without having to open a separate file or spin up a whole project board. Makes it easy to keep track of tasks and such without having to create and manage some complicated onliny project board.

If this fails to meet your needs, then your project has likely grown to a scale at which online-based project board with more features is warranted.

gif showing a Kanban board, adding, and moving issues

Chance Case

Quickly switch the selection between different case types!

gif showing the cycling of cases for selected text

Coverage Gutters

After falling in love with testing and discovering Code Coverage reports, this extension will be able to parse the most common report formats and display the coverage of each line in the gutter, making it a breeze to see which code is still uncovered without having to read line numbers or generate and then open some report file.

gif showing code highlighted in various colors based on code coverage

Select By

Adds a bunch of selection and cursor movement commands, of which I primarily care for the Swap Active command, which moves the cursor to the opposite side of the selection. As Quick and Simple Text Selection always places your cursor at the end of the selection, this is a great way to quickly move it to the start.

Real-Time Debugging

Adds highlights to currently executing lines while debugging, additionally outputting the content written to the terminal beside the lines. I personally run my own fork of this extension, adding additional customizations, commands, and support for break and log points.

gif showing ran lines being highlighted with the outputted text being inlined

The most valuable feature of this is the ability to see the output of the terminal beside the lines, so while this is the best extension for doing that language-agnostic, Console Ninja now accomplishes this even better for JavaScript.

Hediet Power Tools

A collection of neat little tools, of which I only desire the Stack Frame Line Highlighter, which highlights all lines of the current stack when debugging - makes it easy to quickly grasp the context of a call.

gif of the previous stack frame lines being highlighted

Jumpy2

Makes it even quicker to jump around your code by adding two-letter shortcuts to every word, allowing you to jump to the word by typing the two letters in sequence after activating the extension, making it even quicker to jump around your code!

screenshot of the two-code shortcuts being shown

Paste J​SON as Code

Provides the ability to convert JSON to a variety of languages, generating types where possible, additionally generating parsing and serialization code, making it easy to get started from a data-first approach.

gif of a pokedex being pasted as TypeScript generating proper interfaces

Slowbug

Provides the ability to run the VSCode debugger in slow mode, stepping through the code one line at a time, making it easy when you know something is wrong, but not the exact moment, allowing you to follow the executation until you find where it goes wrong.

gif of a test running slowly line-by-line

G​itHub Repositories

Adds the ability to quickly open, browse, and make edits to Github repositories without cloning locally, making it a breeze to quickly open a repo in VSCode and get all the benefits of the editor without having to clone it locally - from improved searching, to anything your extensions provide!

gif of a repo being opened from the command pallette

Not as revolutionary as Visual Studio Code for the Web, but this can before that, though now simply hitting . on the page of a Github repository could be quicker then using this extension.

Debug Visualizer

Allows for easy visualization of data structures while debugging, supporting basic structures and the writing of custom outputs. Makes generating visualizations of concepts a breeze, allowing you to quickly demonstrate the state of the program.

gif of an array, linked list, graph, and various other data structures being visualized

AppMap

A runtime-analysis tool that generates a visual map of your code's execution, the bigger your project the more useful it is.

screenshot of a graphical and flow request visualization

Language-Specific

Markdown

Markdown All in One

Provides a number of Markdown related features, from auto formatting tables, to generating and updating Table of Contents, and more!

markdownlint

A simple linter for Markdown files, making it easier to write good Markdown.

Markdown Preview Github Styling

Updates the styling of the Markdown preview to match Github's styling, making it easy to be confident that your Markdown will look good on Github.

screenshot of markdown being previewed

Markdown Preview Mermaid Support

Renders Mermaid diagrams in Markdown previews, making it much quicker to write and preview Mermaid diagrams.

screenshot of a mermaid diagram being rendered

Markdown Checkboxes

Replaces [ ] and [x]s with actual checkboxes in Markdown previews.

screenshot of checkboxes being rendered

Markdown Emojis

Replaces :emoji-name: with the emoji in Markdown previews.

screenshot of emojis being rendered

Markdown yaml Preamble

Turns YAML preambles into a table in Markdown previews.

screenshot of YAML preamble being rendered as a table

Markdown Footnotes

Add [^1] and [^1]: footnotes support to Markdown previews.

screenshot of markdown footnotes being rendered

Web Development

Live Server

Starts up a local server and opens your file in it, with live reloading, making working with static sites a breeze - and even dynamic ones if you pick up the companion extension.

gif of a H​TML file being edited and the live preview updating

Color Highlight

Highlights colors right in your editor - hexadecimals, rgb, rgba, hsl, hsla - making it easy to tell at a glance the colors without having to calculate the color yourself.

screenshot of hexadecimal color codes with their colors visible as borders

CSS Peak

Links up CSS classes to their definitions, allowing you use the built-in VSCode "Go to Definition" functionality to jump to the CSS class definition, makes it a breeze to jump to the correct CSS class definition.

gif of a class name being followed to the C​SS definition

Highlight Matching Tag

Highlights the opening and closing HTML/XML tags where the cursor is, making it easier to see where the tag starts and ends.

gif showing highlighting of tags as the cursor moves between them

Auto Rename Tag

Allows you to rename the opening tag of an HTML element and have the closing tag renamed automatically, and vice versa, making it easier to rename HTML elements.

gif showing both tags being renamed as one is renamed

HTML End Tag Labels

Adds a greyed-out label to the end of HTML tags, making it easier to identify which tag is ending, making it easier to tell between closing tags.

screenshot showing the ending tag labels applied

ESDoc MDN

Adds a MDN-opening macro comment that makes it easy to open the MDN page for the given topic, making it that much quicker to look up documentation.

gif showing the Object then the Object.assign MDN pages being loaded

CSS Initial Value

Shows the initial value of CSS properties on hover, making it easier to not only remove redundant CSS, but also to know the default value of a CSS property.

gif showing the initial value of various C​SS properties being shown on hover

CSS to J​SS

Easily convert between CSS and J​SS, makes it a breeze when converting between the two - commonly done when moving CSS components into React or such.

gif of C​SS being copied from the browsers devtools and converted to J​SS

J​SS for the uninformed is the way CSS is written in JavaScript, commonly seen in React as inline styles, but also used in other frameworks.

Preview.js

Provides a embedded real-time preview of various web component types instantly - React, Vue, Storybook, Svelte, etc - making it easy to debug components individually and quickly see how they respond to various props.

Inline Fold

Primarily for folding HTML classes - but customizable to anything - creates inline folds for the specified text, hiding away clutter, making it easier to work with Tailwind CSS.

screenshot of className values folded into ...s

Headwind

This automatically sorts and de-duplicates Tailwind CSS classes, making it easier to focus on the content and not the order of the classes.

gif showing tailwind C​SS classes automatically being sorted

JavaScript

Console Ninja

Displays console.log, errors, breakpoints, and more directly inline with your code - and in most cases without needing any special configuration! Makes the feedback loop super short, allowing you to quickly see the information you need without switching contexts!

gif showing output appearing beside console.log statements in a Vite React application

Quokka.js

Constantly reruns your code, showing the output in the editor, making rapid prototyping and debugging a breeze!

gif showing the editing of a JavaScript file and the inline output updating accordingly

Wallaby.js

Makes your tests that much more responsive by including the results directly in the editor, along with the inclusion of storybook-like debugging walkthroughs and more! Makes the test-driven-development feedback loop that much shorter!

gif showing a test file being updated and the output updating inline

Sort J​S object keys

Sorts the keys of a selected JavaScript object, making it easier to keep objects consistent and easily comparable.

gif showing the selection of a JavaScript object and the sorting of it

Turns the names of dependencies in package.json into links to their npm page, making it that much quicker to look up documentation.

gif showing the clicking on of dependencies opening up their NPM pages

Template String Converter

Saves you a bit of time by automatically converting a string using single or double quotes to a template string upon typing ${} within, making it that much easier to evaluate an expression without having to think about the quote type

Version Lens

Brings the versions of dependencies right into your package.json, showing the latest version and making updating a breeze!

gif showing package versions appearing above their names

Copy J​SON Path

Provides a command that allows you to copy the JavaScript object path of the cursor location in a JSON/JavaScript object, makes working with highly nested data structures a breeze!

Flame Chart Visualizer for JavaScript Profiles

Great for profiling your JavaScript code, showing both a realtime view during debugging and converting profiles to interactive flame charts, making it easier to see where your code is spending its time.

screenshot of a generated flame chart

TypeScript

Pretty TypeScript Errors

Turns those unreadable and smushed TypeScript errors into something that's much easier to read and understand, adding syntax highlighting and spacing! Making TypeScript easier to work with no matter your experience level!

Before After
screenshot of a common TypeScript error that is ugly screenshot of the previous TypeScript error but with syntax highlighting and improved spacing

Total Typescript

Helps you learn TypeScript by providing hints as you come across unique TypeScript usages, additionally shows human-translations of complex TypeScript errors, making it easier to jump into TypeScript.

screenshot of an explanation of passing types to other types

TwoSlash Queries

Add support for the TwoSlash TypeScript markup format - allowing users to query TypeScript code for additional information, making it easy to see multiple types at once without having to hover between them and remember what they were.

screenshot of three twoslash queries showing their results inline

Python

Wolf

Adds live inline-feedback to your Python code, showing you the standard output and result of any expression directly in the editor - inspired by the similar extension Quokka.js - making the feedback loop when working with Python that much quicker.

screenshot showing print and comment results of a P​ython file

It's not as mature as Quokka, so be careful working with infinite loops - I have been able to crash my computer with it.

isort

Automatically sorts imports in Python files, making it easy to keep the imports sorted - and most importantly, your linter happy!

gif showing the sorting of imports

Birdseye

Describes itself as a expression-centric, graphical P​ython debugger using the AST, which basically means it's a after-the-fact visualizer of the code you just ran, making it great to step through your code execution and see where things went wrong.

While it aging and may not support all the latest Python features, it's a great learning tool.

gif showing traversing through iterations and shown values updating

Personal

Inline Watch Expressions

Adds inline watch expressions to the VSCode debugger, allowing you to see the value of variables as you step through your code, making it easy to setup a piece of code to demonstrate how the values change as you step through it.

Full List of Extensions in order of Impact

At least my attempt to order them by how much they impact my day-to-day workflow.

Conclusion

If you've made this far, I hope you've found at least one extension that improves your workflow! If you happen to know of a niche one that isn't on this list, I'd love to hear about it - always on the hunt for new tools to improve my workflow!

For those that have already been here, you know this isn't the first time I've shared my extensions, and as it evolves I will attempt to keep this page the most up-to-date version of my extensions.