I’m in the final stages of writing a book about quantum computing using LaTeX and I also do a lot of Python programming when I get a chance. A couple of years ago, I decided to try using the Visual Studio Code editor and I just love it. I’ve used dozens of programming editors in my life (vi, not emacs, thank you very much), and VSCode has the best functionality of all of them.
One of its best features is its extension architecture. Though I experiment with various extensions occasionally, I keep a core set. If I am going to so something special such as editing Markdown text, I will use an extra extension or two until I am done with the task and then uninstall them.
These are the extensions I use now for LaTeX editing and Python coding. They are all available in the editor through the Marketplace.
- Blank Line Organizer – removes extraneous extra lines that creep into text while editing
- Bookmarks – as you would suspect, allows you to set a bookmark somewhere in a file and then jump back to it quickly
- Bracket Pair Colorizer 2 – paints matching parentheses, brackets, and curly brackets in the same color. I’ve tried the original and Rainbow Brackets, and none of these three are perfect. These version is the fastest and mostly best.
- change-case – provides many options for changing the case (e.g., uppercase, lowercase, sentence case) of selected text
- Code Runner – helps execute code in the environment
- Code Spell Checker – tells you when a word has questionable spelling, though not good on suggesting alternatives. You can put comments in the file saying which words to ignore or store them in a file in the folder.
- LaTeX Workshop – the workhorse large set of code to assist in editing LaTeX markup. I don’t use all the features and I still run things like pdflatex from the command line, but it is hugely helpful. As an aside, you probably want to get latexindent running on your machine if possible.
- latex-count – simple add-on that shows how many non-markup words are in your document
- MagicPython – syntax highlighter for Python
- Python – the main set of code providing Python editing and execution
- qiskit-vscode – editing and execution support for the open source Qiskit quantum computing development platform
- Rewrap – rewraps lines of text. Useful when LaTeX content gets too ragged.
- Settings Sync – saves your editor setting on GitHub so you can have the same environment across machines.