Senior engineers are focused on getting things done as quickly and efficiently as possible without sacrificing quality. They constantly analyze their workflows and look for optimizations to increase velocity and and reduce errors. Since the main goal of an engineer is to write code, your code editor is a natural place to start.
Modern code editors and integrated development environments (IDEs) come with a fabulous suite of tools to aid in writing and ensuring the quality of your code. Here are 15+ that will superpower your development today:
Syntax Highlighting
A staple of all good editors, syntax highlighting helps you quickly read and understand code. You’re probably using this already. If you’ve never switched beyond your IDE’s default color scheme, there are many great ones out there! I use a customized version of the default Oceanic Material theme on my JetBrains IDEs.
Code Analysis & Inspections
One of the most powerful features of IDEs is built-in code analysis and inspection. Automatically check your code for quality and adherence to standards, including but not limited to:
Static analysis – usage errors, type safety, unreachable code
Unused or deprecated code warnings
Style guide adherence
Typos
Keyboard Shortcuts
Fully customizable keyboard shortcuts let you perform most tasks without needing to move your hands away from the keyboard, including most features mentioned here!
There are even plugins for IDEs that will teach you the keyboard shortcut for a function you perform manually.
Refactoring
Refactoring means restructuring code without changing its original functionality. Moving or renaming parts of your code are common practice, but can be tedious if the code is already implemented. IDEs can refactor your source code and usages simultaneously.
Code & File Templates
Use a specific code template every time you create files of a particular type, such as class or test. Include headers, comments, copyright information, or necessary boilerplate.
Create brief triggers that expand into more complex code blocks that are commonly used. ifelse + tab
automatically becomes a full conditional block.
Code Completion + AI
Who doesn’t like writing code faster? Code completion tools can help automatically fill in method calls, parameters, structures, and way more. Framework- and tool-specific plugins add autocomplete for your favorite stack.
Many IDEs now come with AI-powered tools to write entire code blocks based on prompts. GitHub Copilot is a notable example, with many others including plugins powered by ChatGPT. There’s even an AI-first editor!
Multiple Cursors + Text Utilities
Use multiple cursors to write or modify multiple sections or lines of text simultaneously.
Automatically adjust and format text such as reordering, case formatting (e.g. make all TitleCase), reversing,
Program & Test Execution
When configured, you can run and view the output of code and tests directly from your IDE.
Debugging
print
debugging only gets you so far. Enable a debugging session in your IDE to pause at specific breakpoints, inspect the state of your application at any given point, step through function and method calls, and more.
Profiling
A wonderful companion to debugging, profiling helps you understand the performance of your code. Find where your code is slowing down, how an unexpected loop is occurring, and why all that memory is being used.
Pair Programming
Modern IDEs offer real-time code collaboration tools, allowing multiple developers to watch, follow, and code alongside each other. Combined with a video call or voice chat, remote pair programming is just as effective as sitting next to each other at the same computer.
Checkout JetBrains’ Code With Me and Visual Studio’s Live Share for two popular solutions, or search for what your IDE of choice offers!
Database & SQL
Connect to your database software and view table structure, list and query data, run explain
queries, perform imports and exports, and more.
HTTP Client
While not as full-featured as a dedicated client like Postman, your IDE can probably make basic HTTP calls and make use of .http
files. Make one-off calls during development to figure out a third-party endpoint. Use them for automated testing or CI/CD pipelines. Skip the cURL syntax and stay in your IDE.
Version Control, Diffs
Do you prefer GUIs instead of the command line, or simply like interacting with as few tools as possible? IDEs offer first-class support for Git, version control, and common workflows such as Git Flow.
Highlight differences between version control history, open files, or even a file and your clipboard using your IDE’s built in diff tools.
Are you using GitHub? Many IDEs integrate with GitHub offerings such as pull requests, issues, and releases. Create PRs, do code reviews, and mark off completed issues right from your editor.
Integration & Automation
Docker, CI/CD platforms, package managers, command line terminals, build tools… You name it, your IDE likely integrates with it. When it doesn’t, there’s usually a scripting option that allows you to hook into the workflow exactly when you need.
Graphical User Interface
Many developers enjoy working with a clean UI that provides all the information needed during development at a glance or easily accessible in one place. Color schemes and customization options help make the editor feel like home. Other modes like distraction-free and presentation offer optimal screens for specific tasks.
Remote Code
Harness the power of the cloud by editing and debugging remotely-hosted code as if it lived on your local machine, without sacrificing any IDE features.
Programming Language Support
Some IDEs are built to have first-class support for a specific programming language. They come set up with most tooling and integrations popular for that language. If you’re new to a language, getting an IDE meant specifically for it could give you a head start in writing efficiently.
Plugins & Extensions
Extend the default capabilities of your IDE in many, many ways using their plugin or extension ecosystems. Add autocomplete and tooling for all the languages and frameworks in your stack. Integrate with third-party platforms and applications. Simplify your workflow by allowing as much functionality as possible in one GUI.
Audience Questions
✨ 🆓 Answer any of these questions for a chance to win a free book!
What is your favorite IDE or editor?
What feature does your IDE have that you appreciate the most?
What feature do you wish your IDE had? (Have you checked? Now’s a great time!)
Did I miss a capability that should be listed here?
Hit reply to answer any and all of these, and I’ll highlight your answers in a future issue!