VS Code Extensions I Use For Programming And Writing
Tags: webdev, python, beginners, vscode
Published: 2023-01-29 21:00:00

- [Introduction](#introduction)
- [Language-Specific Extensions](#language-specific-extensions)
- [Python Extensions](#python-extensions)
  - [AutoDocstring - Python Docstring Generator](#autodocstring---python-docstring-generator)
  - [Django](#django)
  - [Jupyter](#jupyter)
  - [Python Indent](#python-indent)
- [General Usage Extensions](#general-usage-extensions)
  - [Draw.io](#drawio)
  - [Duplicate Action](#duplicate-action)
  - [Excel Viewer](#excel-viewer)
  - [Google-Search](#google-search)
  - [Open in Browser](#open-in-browser)
  - [Prettier](#prettier)
  - [Rainbow CSV](#rainbow-csv)
  - [VSCode-PDF](#vscode-pdf)
- [Markdown](#markdown)
  - [Markdown-All-In-One](#markdown-all-in-one)
  - [Markdownlint](#markdownlint)
  - [Character Count](#character-count)
  - [Code Spell Checker](#code-spell-checker)
  - [Word Count](#word-count)
- [Raspberry Pi](#raspberry-pi)
  - [Pico-W-Go](#pico-w-go)
- [Conclusion](#conclusion)

## Introduction

In this post I thought I would put together a list of some of the most useful VS Code extensions I use for programming and documentation writing.

I am not going to include what themes I have installed as that is more of an individual choice to make. With that being said, let's make a start.

## Language-Specific Extensions

The extensions I mainly use are for Python and Markdown but there are some additional extension that I use for different languages and scenarios. Below is a list of most of the language extensions I have installed and are self-explanatory so I won't go into detail about them.

- Bash (shell scripting)
- CSS
- HTML
- JavaScript
- Jinja
- JSON
- Python
- YAML

Most of the above are auto-installed by VS Code when a file matching that language is opened for the first time.

## Python Extensions

### AutoDocstring - Python Docstring Generator

AutoDocstring is one of the biggest time savers for documenting functions in Python. Once the function has been created and all of the parameters are defined, start creating a docstring using `"""` at the top of the function and Press enter. It will auto-populate with some boilerplate details, along with the list of parameters that are in the function.

All that needs to be done then is to give a summary of what the function does, along with each parameter.

### Django

The Django extension adds syntax colour coding and snippets to VS Code for the Django framework.

### Jupyter

The Jupyter extension includes a number of sub-extensions that allow VS Code to run Jupyter notebooks, rather than having to use the Jupyter notebooks or Jupyter lab interface in a web browser.

### Python Indent

Python indent helps to maintain the right levels of indentation of the Python code in the file that is being worked on. It works by typing out some code, such as defining a function and then pressing *enter*. The next line will be indented into the function as is required by Python.

It helps to avoid issues that can occur when indentation is not done correctly which can cause errors or strange bugs when the code runs.

## General Usage Extensions

### Draw.io

The Draw.io extension allows VS Code to open and edit existing draw.io / diagrams.net files. It doesn't allow for the creation of files however.

### Duplicate Action

Duplicate action adds an option to right click menu to duplicate an existing file or folder in VS Codes file explorer. Simply right-click the file, select *Duplicate file or folder* and then name the file or folder.

### Excel Viewer

Excel Viewer is a very simple Excel file extension that allows VS Code to view and make basic changes to Excel spreadsheets and CSV files.

### Google-Search

Google-Search is a very simple extension that adds *Google this* to the right click menu. It works by highlighting some text, right-clicking and then select *Google this*. A Google search will open in the default browser for whatever was highlighted.

Very useful to save a few seconds diagnosing error messages.

### Open in Browser

Open in Browser pretty much does what is says on the tin. It adds two options to the right click menu; one to open in the default browser and another to open in a different browser.

### Prettier

Prettier helps to colour code languages such as HTML, CSS, JavaScript and more in VS Code.

### Rainbow CSV

Rainbow CSV will colour code the individual "columns" of a CSV file if it is opened up as a raw CSV file, rather than using a tool such as Excel viewer to show it as a table.

### VSCode-PDF

VSCode-PDF is an extension that enables VS Code to open and view PDF files.

## Markdown

### Markdown-All-In-One

Markdown-All-In-One is a very powerful extension for working with Markdown files. The main benefits of it are:

- Generate a table of contents easily.
- Shortcuts for common formatting methods in Markdown.
- Preview a markdown file in a new VS Code tab to see how it will look.

There are other benefits but these are the main ones.

This is a must have extension for anyone working with Markdown files in VS Code.

### Markdownlint

Markdownlint is used to check that the Markdown document matches the best practice formatting rules for Markdown files. If a rule is not met, it will be underlined in the document with details provided in the *Problems* tab in VS Code or when the mouse hovers over it.

### Character Count

Character Count adds a counter at the bottom right of VS Codes status bar. It is useful for writing out tweets in advance to check that it is under 280 characters long for example.

### Code Spell Checker

A simple spell checker for VS Code. It will highlight the spelling error and when the mouse cursor hovers over the word it will provide quick fixes (suggests correct words) or more detail on the problem.

### Word Count

Word Count is very much as it is sounds. It adds a word counter to the bottom left of the status bar in VS Code to show how many words are in the current file.

## Raspberry Pi

### Pico-W-Go

Pico-W-Go provides a way for VS Code to interact with a Raspberry Pi Pico / Pico-W board and provides some code snippets for MicroPython.

## Conclusion

I hope that you found this list to be of use. If you use some other extensions, please let me know in the comments below as I do like to look for better ways to improve my productivity and workflow.

Thank you for reading and have a nice day!