VSCode is a fantastic, free, open source editor and lightweight IDE. It supports a large plugin ecosystem (extensions) and Remote Development in containers which can dramatically reduce new contributor onboarding time. It is my preferred editor and so this repository supports it with a .vscode and .devcontainer folders. You can even use VSCode as your commit editor by setting it with git config core.editor "code --new-window --wait"
One of VSCode's killer features is the ability to develop inside of a container. This allows a team to design a container with all project dependencies included so that a new contributor needs to have installed is VSCode & docker. Then off they go to contributor nirvana! :) New contributor onboarding time and frustration can virtually disappear. There are also Advanced configuration options available.
This repository uses an Ubuntu Focal base container and is locally built. See the .devcontainer folder for more details. Of note, the devcontainer includes:
- Hadolint for checking the devcontainer dockerfile
- Several VSCode Extensions that are very useful
- yzhang.markdown-all-in-one: An almost perfect markdown extension. Check out the documentation for the extensive list of features.
- davidanson.vscode-markdownlint: Markdownlint integration for VSCode. Super handy for documentation consistency.
- streetsidesoftware.code-spell-checker: Having a central dictionary keeps warnings cleaner and encourages a shared vocabulary.
- eamodio.gitlens: A fantastic plugin to see who did what when, and visualize other relevant information from git.
- gruntfuggly.todo-tree: Highlight's TODOs and allows you to generate a tree. Critical? No. Handy? Yes.
- exiasr.hadolint: uses hadolint to lint Dockerfiles
- Docker-in-docker support, so you can have containers in your containers.