JetBrains Rider is a .NET IDE that provides tools for reference, planning, execution, and analysis for improved teamwork. You can develop web apps or games applications using the new cross-platform .NET Core framework across Windows, MacOS, and Linux platforms.

It supports over 2200 live code inspections and hundreds of context actions brought by ReSharper and ASP-based projects and services in C# to help improve collaboration between team members through better communication.

Rider's rich editor features code completion and code templates, auto-inserting matching braces, and import directives. It provides quick info tooltips on inheritance navigation with context actions to rename types or to extract methods.

Rider has over 450 context actions available for refactorings such as Rename Class, Move Type To Another File, etc.

The IDE comes with a debugger that works for .NET Framework, Mono, and .NET Core applications. It lets you step through code, watch variables change values in real-time, and evaluate expressions without compiling or executing the whole file.

Other tools include the NuGet browser, VCS support, and SQL database connection management that supports multiple databases simultaneously. You can connect and edit schemas and data within tables while running queries using schema diagrams.

PowerShell

PowerShell

When writing applications, you’ll often need to execute scripts. In Linux, this is generally not a problem as you have access to the terminal through IntelliJ. The problem is, running PowerShell scripts on Windows in the IDE is challenging and you’ll often be required to copy and paste code to the PowerShell window.

That is, until now. The PowerShell plugin gives IntelliJ PowerShell language support. As a result, you’ll have features like syntax highlighting, IntelliSense, code snippets, code formatting, script execution, and more.

Heap Allocations Viewer

Heap Allocations Viewer

When developing C# applications, memory management is important. And here, heap allocation is a crucial aspect to look at as it allocates memory dynamically to variables and objects. Ultimately, this can impact the amount of memory your application uses and how well it runs.

The Heap Allocations Viewer plugin for the Rider IDE allows you to do this. It statically analyzes C# code to find all the local object allocations throughout your code. You can then use it to reduce the number of heap allocations in your C# application. The plugin can also detect all boxing cases, visualize hidden allocations, detect closure creation points, and detect delegate instances allocation.

Duckly

Duckly

We couldn't create a list of plugins without mentioning ours. Duckly is here to make pair programming a breeze.

Duckly is a video chat tool built for developers with direct integration to the IDE so you can talk, share your code in real-time, and easily collaborate with your team. It enables remote developers to work as if they were side by side.

This plugin proves itself necessary by the day. With remote work becoming the norm throughout companies due to COVID-19, the ability to pair-program is interrupted by bad WiFi signals or background noise. Duckly provides the solution to that by allowing you and your team to share the same view while coding. Duckly is great for pair programming, code reviews, debugging sessions, and much more.

Zero Width Characters Locator

Zero Width Characters Locator

The problem with zero width characters is that they can cause havoc with your code. The bigger problem with them is that they’re invisible. So, two pieces of code might look identical, but one could contain zero width characters. This makes them extremely hard to find and debug.

Instead of spending hours to find zero width characters, rather use the Zero Width Characters Locator plugin. It adds an inspection tool to IntelliJ that makes it easier to find zero width characters. Ultimately, this plugin could end up saving you a lot of time and headaches.

WakaTime

WakaTime

To keep up your productivity and efficiency it's vital that you see how you perform. That's the only way you know how you can improve. But who wants to use manual time tracking tools, right?

If you don't, the WakaTime is the ideal plugin for you. It gives you dashboards that show you metrics, insights, and time tracking. One of the main benefits of the plugin is that it generates these dashboards automatically while you code.

In this way, you’ll be able to see what you spend your time on, how efficient you are and, where you can improve.

Database Navigator

Database Navigator

As a software developer, you’ll work with databases often. You’ll typically do this by using the specific database’s console or shell through the terminal or desktop application.

The Database Navigator plugin aims to make this easier. It adds extensive database management, development, and maintenance capabilities to IntelliJ and other IntelliJ-based IDEs.

As such, it provides both SQL and PL/SQL editors, advanced database connection management capabilities, script execution support, database objects browsing, advanced navigation functionality, and more. Moreover, it supports most of the databases you’ll often work with including, MySQL, SQLite, PostgreSQL, and others.

Key Promoter X

Key Promoter X

Just think about it, it’s much faster to use a keyboard shortcut to perform an action when writing code compared to using the mouse. The problem is that there are so many keyboard shortcuts that they take time to learn and it's difficult to remember them all.

The Key Promoter X plugin aims to solve this problem and helps you learn essential keyboard shortcuts while you're working. It does this by showing you the keyboard shortcut you should have used anytime when you use the mouse on a button within your development environment.

It also provides you with a list of the mouse actions you use the most and the keyboard shortcuts that could replace them. And if there isn't a shortcut for a mouse action you use often, it gives you the opportunity to create one. Ultimately, this makes it easier for you to learn keyboard shortcuts and, by implication, to be more productive.

Grep Console

Grep Console

As you know, grep is a powerful that allows you to search for strings in a file or groups of files. In fact, it’s considered one of the most useful commands in any Unix system. Typically, you’ll need to use the terminal to execute grep commands.

The Grep Console plugin brings this functionality to your IntelliJ-based IDE. It allows you to open a grep console directly from your workspace. From there, you’ll be able to execute grep commands, filter out unwanted text, highlight matches, change the colors of matching text and lines, output the results into a new console, and more.

Grazie

Grazie

It’s a fact, when we write, we make spelling and grammar mistakes. So, it’s understandable why productivity software and word processors come with spell and grammar checking capabilities built-in. But why can’t you have this functionality in your IDE?

In fact, you can. The Grazie plugin provides intelligent spell and grammar checking functionality. Using the LanguageTool proofreading engine, it supports over 15 languages including English, Chinese, German, and more. It also recognizes natural language constructs in programming languages, markup languages, comments, and commit messages.

Tabnine AI Code Completion

Tabnine AI Code Completion

Still on the topic of saving time, one of the pain points of a developer is usually writing every single simple function or line every time. This issue is solved with Tabnine AI Code Completion!

Tabnine is an AI-powered code completion extension to help you code. It is powered by machine learning models trained on lines from trusted Open Source code on GitHub. This plugin works in various IDEs and different languages, including JavaScript, Python, Java, TypeScript, Rust, Swift, and more.

You can see two gifs of code with and without Tabnine to see the difference this plugin brings. It predicts what you will potentially create according to your object or function. Now, instead of having to type console.log("hello world"), you can just start typing, and Tabnine will finish the job for you.

Docker

Docker

Nowadays, Docker is becoming increasingly popular because it allows developers to develop once and deploy everywhere. An added benefit of Docker is that it's light on resources compared to traditional virtual machines.

The Docker plugin provides IntelliJ with full integration with Docker. This means you can run containerized applications with Docker Compose and you’ll be downloading and building Docker images right from your IDE. It also enables you to create and run Docker containers from downloaded images or directly from a Dockerfile and you're able to use dedicated docker run configurations.

Simply put, this plugin gives you all the tools you need to deploy applications inside containers and test code in an environment similar to the one you'll use in production.

String Manipulation

String Manipulation

Whether you need to sort, increment, or decrement strings for purposes of your application or just based on your preferences, a string manipulation tool can be extremely helpful. And that’s where the String Manipulation plugin comes in.

It gives you a full suite of string manipulation tools that allow you to switch case, toggle between different cases, increment or decrement numbers, create sequences, sort lines, shuffle characters, do conversions, and more. Moreover, although these actions are available in your IntelliJ-based IDE’s Edit menu, the plugin allows you to set up your own keyboard shortcuts.

Ultimately, this plugin saves you time and will make you more efficient when writing code.

CSV

CSV

Let's face it, if you're dealing with data in your application, you’ll often use CSV files. The problem is that these files are a hassle to work with and edit. So, you'll often need to use a spreadsheet application like excel to open, view, edit, and export these files.

The CSV plugin makes it easier to work with CSV files because it implements CSV as a language in IntelliJ. As a result, it associates CSV and other associated file types with IntelliJ and gives you syntax definition, syntax highlighting, inspections, and other capabilities when working with CSV files.

This means no more switching between applications to view and edit files, which, in turn, means more efficiency.

AWS Toolkit

AWS Toolkit

It’s no secret that cloud computing, and especially Amazon Web Services (AWS), is very popular, so you’ll often have to write applications built on AWS.

To make this easier, the AWS Toolkit contains all the tools you need for AWS application development. As such, it gives you the ability to create and deploy AWS serverless applications. You can also create, debug, change, or delete AWS Lambda functions and debug code in Amazon ECS clusters.

Keep in mind, though, these are just some of the functionalities it offers and there are many others available from its resource explorer to authentication, and the S3 explorer. Ultimately, if you’re developing serverless applications on AWS, the AWS Toolkit is certainly worth a look.

Protobuf Support

Protobuf Support

According to Google, their protocol buffers are a language-neutral and platform-neutral data serializing protocol much like JSON and XML. The main advantage protocol buffers has over these protocols is speed. This makes it highly suitable for modern server architectures where vast amounts of data are transferred.

The Protobuf Support plugin brings full Google Protobuf support to IntelliJ. It includes features like structure view, code formatting, rename refactoring, syntax validation, font and color configuration, and more. In simple terms, it has all the tools you need to use protocol buffers in your projects.

GitToolBox

GitToolBox

By now you know that, as a developer, you'll not only spend a lot of time in your IDE but you’ll also spend a lot of time using git. As a result, it's vital that you have an IDE with excellent git integration get allows you to perform your git actions from within your development environment.

Fortunately, JetBrains’s range of IDEs features some of the best git integrations on the market. With the GitToolBox plugin, you’ll be able to extend the features these IDEs already offer. Its features include enhanced status display, auto fetch at fixed intervals, inline blame annotation, commit dialog completion, behind notifications, and more.

MetricsReloaded

MetricsReloaded

As mentioned, when we looked at the Statistic plugin, you can’t improve something when you don’t measure it. So, analyzing your code is a good idea because it gives insights into your project’s structure.

Here, the MetricsReloaded plugin gives you a wealth of information and metrics about your project. These include everything from class counts, dependencies, lines of code, unit testing, and more.

Moreover, you can get metrics for your entire project or even specific modules and files. Also, apart from the built-in metrics, you’re also able to define your own metrics. Ultimately, the plugin allows you to identify issues in your code and gives you the insights necessary to improve it.

Presentation Assistant

Presentation Assistant

Pair programming is not only an excellent way to increase the quality of code and the efficiency of your team but also a great tool when educating new developers. A problem that often occurs when pair programming is when a developer uses keyboard shortcuts the other developer doesn't know. This is especially the case when teaching someone to code.

The Presentation Assistant plugin solves this problem by showing the name and the shortcut of any action you invoke while coding. In this way, your coding partner, whether experienced or inexperienced, knows exactly what you're doing. Because of this, it's the ideal tool when live coding in front of an audience, screencasting, and when teaching.

Multirun

Multirun

When developing an application, you’ll often need to test different configurations. This will, generally, require you to run the application in a specific configuration, change the configuration, and then run the application again. This, in turn, takes a lot of time and effort.

To save time, the Multirun plugin allows you to run multiple configurations at once. With it, you’re able to group multiple run configurations and run them with the click of a button. This makes it easier to run batches of tests and configurations or to start multiple servers and web applications.

IdeaVim

IdeaVim

Many developers prefer using Vim because it's a lightweight, fast, and powerful text editor which is also highly configurable. This means that they can set it up exactly how they want it. It also means that, once they're used to it, they won't likely switch to another IDE.

If you're facing this problem, then IdeaVim is a plugin you should definitely consider. It's an emulation plugin that gives IntelliJ Vim functionality. As such, it includes features like normal/insert/visual modes, motion keys, registers, marks, macros, access to Vim plugins, and more.

Lines Sorter

Lines Sorter

Different developers have different preferences on how they like their code to be arranged. For instance, some don’t care much about the order of lines while others prefer to have it in a specific order, often alphabetically.

If you’re one of the last mentioned, then the Lines Sorter plugin is definitely for you. It adds a Sort Lines action in IntelliJ’s edit menu. So, you can just select the lines you want to sort, click on Sort Lines, and the lines of code will be sorted alphabetically.

CognitiveComplexity

CognitiveComplexity

According to G. Ann Campbell, cognitive complexity, “breaks from the use of mathematical models to evaluate code in order to remedy Cyclomatic Complexity’s shortcomings and produce a measurement that more accurately reflects the relative difficulty of understanding, and therefore of maintaining methods, classes, and applications.

So, in simple terms, cognitive complexity shows you how easy, or difficult, your code is to maintain and understand. The CognitiveComplexity plugin implements a live calculation of this metric in Rider, so you’ll be able to see the complexity of your code at a glance. And once you’re able to see and measure this metric, you’ll be able to improve your code significantly.