PyCharm is an intelligent, Python-focused IDE by JetBrains that helps you create professional software. Its advanced code completion and other features such as pair programming make it one of the best tools in its class for professionals who want to do more in less time. The wide range of web frameworks supported makes this a complete toolbox for any development project you might have, while support for modern JavaScript technologies lets you explore new ways to solve problems too.
Additionally, PyCharm has some great scientific integrations - such as Anaconda, that come in handy when solving complex equations.
The PyCharm IDE is for professional Python developers from all knowledge levels, primarily software developers and data scientists. It saves time by taking care of the routine coding activities that you do. Letting you focus on critical work.
You can rely on PyChams productivity features like intelligent code completion, real-time error checking, remote development, and easy project navigation to get your work done efficiently.
Power Mode II
We know, writing code the whole day can become a bit of a drag. So, from time to time, it may be necessary to inject some excitement and entertainment into your work.
The Power Mode II plugin lets you do this and then some. With it, you'll be able to make writing code much more entertaining with features like exploding falling sparks, flames, editor shaking, fireworks, and more appearing as you type.
It also gives you the ability to choose different colors, the animation speed, and a Heatup feature that will create more fireworks the more you type.
Statistic
It's simple if you don't measure something you won't be able to improve it. So, when measuring your project's lines of code, it can give you a great idea of how productive you are.
It goes further than this. Every line of code is functionality that you build into your application. This means the more lines of code, the higher the chance of something going wrong.
Luckily, the Statistic plugin gives you extensive statistics into your project’s modules, packages or files quickly and easily. By using it, you’ll keep your file sizes and line counts in check.
And using it is really simple too. It's as simple as installing the plugin and selecting the Statistic tab at the bottom of your screen to get statistics about your application.
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.
All the communication and the code-sharing sessions are P2P and encrypted, and only team members can join your calls. It never touches our servers.
Save Actions
It often happens, especially with larger projects or larger development teams, that you end up with a messy code base with differing styles, indentations, and the like. This not only makes it difficult for new developers to start working on the project but also makes the project more challenging to maintain.
The Save Actions plugin solves this problem. With it, you'll be able to set configurable save actions that will be applied every time files are saved. So, every time a developer saves their work, you’ll be able to reformat, rearrange, compile or optimize your code.
This allows you to enforce a code style and code rules which makes your code cleaner, more uniform and easier to maintain.
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.
Quokka
When was the last time you wrote a bunch of code only to find out that it doesn't work when you're done? To solve this problem, you’ll often switch to online REPL tools to test a specific block of code. This takes time and makes you less productive.
The Quokka plugin solves this problem and makes it easier to prototype and test JavaScript code in your IntelliJ IDE. It's as simple as opening a new Quokka file and then start experimenting. Because you're able to do it in your IDE, you don't need to learn any new tools just to test an idea and you can focus on writing code.
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.
Markdown
In recent years, markdown has become increasingly popular among developers due to its versatility that allows them to format plain text to generate different outputs. Another benefit of markdown is that, because it’s only plain text, it’s reasonably future-proof.
The Markdown plugin provides full markdown language support in IntelliJ-based IDEs and allows you to edit markdown files in your IDE’s editor window and see the rendered HTML in a live preview window.
It includes features like document structure view, folding headers, syntax highlighting, code completion, and the ability to use custom stylesheets for the live preview.
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.
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.
Mongo Plugin
MongoDB is an open-source, non-relational database and probably one of the most popular databases for modern applications, so you’ll get to deal with it at some stage. When you do, you’ll generally have to access Mongo databases and perform CRUD operations on your data.
The Mongo plugin makes this process easier as it integrates MongoDB servers with the database or collections tree, Query Runner, and the shell console. This means you’ll be able to perform all your database related actions directly from your IDE.
So, you’ll be able to access MondoDB databases, connect to servers, query and perform CRUD operations on your database. This saves you a lot of time and lets you work more efficiently.
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.
Lightrun
As applications are becoming more complex, observability is becoming increasingly important. It allows you to understand the inner workings of your application better, which, in turn, allows you to identify and solve issues easier, and improve your application’s performance.
The Lightrun plugin gives you the ability to do this by providing you with a range of tools for adding real-time information to your running applications and getting logs, snapshots, and metrics relating to your application’s performance at runtime.
When using it, you’ll be able to measure the size of data structures, see exactly how many times a line of code is executed, add log lines and real-time metrics, evaluate expressions in your code, and more all while the application is running. This ability increases your productivity significantly.
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.
CamelCase
This is often one of the biggest disagreements between developers - what case should code be written in. Well, it depends on the specific language’s specifications and its naming conventions. Sometimes languages even require the use of different cases, so you’ll need to understand the difference and how to use them.
No matter the language or your preference, another important thing is that you apply your naming conventions consistently in your codebase. The CamelCase plugin ensures consistency by allowing you to switch easily between kebab-case, snake_case, PascalCase, camelCase, and more.
Python
With the popularity of data science, machine learning, and artificial intelligence increasing, it's easy to see why Python is one of the most popular programming languages available today. In simple terms, it’s one of the, if not the most popular programming languages for these use cases.
Fortunately, if you want to develop Python applications but don't want to use another IDE, you can use the Python plugin in IntelliJ. It gives the IDE full Python capabilities which include intelligent code editing, refactoring, debugging, testing, profiling, and a range of web development and data science tools.
Rust
Did you know that, according to the Stack Overflow Developer Survey 2020, Rust is the most loved programming language? In fact, it’s held this position for five years. And it’s easy to see why as it’s fast, memory-efficient, and reliable. Ultimately, it lets developers build high-performance applications while eliminating many of the challenges they face with statically typed programming languages.
Fortunately, if you’re interested in developing with Rust or are busy with it already, the Rust plugin is definitely a tool to consider. It implements full Rust language support into IntelliJ which includes a built-in package manager, auto-completion, type inspections, auto-formatting, and more.
ESLint
Let's face it, bugs can be frustrating to find and solve. It's even more difficult for new developers working on a codebase for the first time. So, you’ll want to eliminate and avoid programming errors as far as possible.
The ESLint plugin helps you do this. It quickly analyzes your code to find programming errors, stylistic errors, and bugs. And when you find these errors and bugs easier, you'll be able to rectify them quickly and easily. Another bonus is that the plugin can fix many errors it finds automatically.
Also, you’re able to write your own rules that will work alongside the plugin’s built-in rules. Ultimately, you can customize the plugin based on your team's needs and you'll ensure that your code is always free of error.
.ignore
.ignore files are an excellent way to ignore files when performing certain actions. For example, .eslintignore file allows you to exclude certain files from linting. Likewise, a .gcloudignore file lets you exclude certain files or directories when deploying to Google Cloud. By using these files to exclude files and directories from certain processes, you’ll be able to speed up your workflow.
The .ignore plugin makes it easier for you to work with .ignore files in your IntelliJ-based IDE. As such, it allows you to easily create, edit, and add files to your .ignore files. It also offers syntax highlighting for these files and templates you’ll be able to use.
EduTools
If you're learning to code, one of the main challenges you'll have is finding the right educational materials. This is simply because there’s so much information out there.
The EduTools plugin aims to solve this problem and it lets you learn programming languages like Kotlin, Java, Python, JavaScript, Go and C++. It does this by giving you coding tasks and verification tests in your IntelliJ IDE. In this way, you’ll get to build your knowledge and get instant feedback on the code you've written.
It goes further than this, though. It's also the perfect tool for educators who want to teach students to code. Here, they'll be able to create their own interactive courses with integrated tests.