65 plugins in category «Code editing»


  • Append Class Name at each end of the declared var name(s)
  • 声明的变量名称后追加类型词尾,避免(尤其是Android开发中)声明的view变量名带大量类型简写的丑陋规则

private static ListView _test
then press shortcut key (default is "ALT+C"),you will get
private static ListView _testListView

eg2:(move the caret to current code line)

private Map<String,Object> aa,bb,cc;
press shortcut key (default is "ALT+ B"),then you will get
private Map<String,Object> aaMap,bbMap,ccMap;


activate-power-mode for IDEA.
  • 根据Atom的插件activate-power-mode的效果移植到IDEA上

Android Preioc Plugin

Plugin for generating PreIOC injections from selected layout XMLs in activities/fragments/adapters.

Angular 2 TypeScript Live Templates

By MrZaYaC
Angular 2 TypeScript Live Templates

Angular material design v2, Teradata covalent v1, Angular flex layout v1 & Material icon snippets

Angular material v2, Teradata covalent v1, Angular flex layout v1 & Material icon live templates

Documentation can be found here

Have a problem, raise an issue here

Follow us on Twitter: @1tontech

Angular Templates

Adds a bunch of live templates for different angular snippets. They are all grouped inside Angular Template group.

Apache Camel IDEA Plugin

Plugin for Intellij IDEA to provide a set of small Apache Camel related capabilities to the code editor. The plugin includes:
  • Code completion for Camel endpoints in Java, Groovy, Kotlin, Scala, XML, properties or yaml files (ctrl + space)
  • Code completion for Camel property placeholders (cursor after {{)
  • Endpoint options filtered to only include applicable options when used as consumer vs producer only mode
  • Quick navigation to other Camel routes routing to this route by clicking the Camel icon in the gutter
  • Intention to add new Camel endpoint (alt + enter in empty string)
  • Quick documentation for Camel endpoints and external link to Camel component opening in web browser (ctrl + j and shift-F1)
  • Show endpoint information in tooltip when hovering mouse over from/to etc in Java route builders
  • Supports 3rd party Camel components (if they have been properly built with Camel JSon schema metadata)
  • Attempts to use same version as camel-core dependency from the loaded project (may require download over internet)
  • Real time validation for Camel endpoints in Java, Groovy, Kotlin, Scala, XML (underline errors in red)
  • Real time validation for Camel simple language in Java, XML and Groovy (underline errors in red)
  • Inspection (analyze code) to validate Camel endpoints and Simple language in Java, Groovy, Kotlin, Scala, and XML
  • Preference page to customize property ignore list from property completion
  • Preference page to exclude property/yml files from property completion
  • Supports Maven, Gradle, and SBT based projects


Auto-Align allows you to align your code with a pretty print alignment


var hi={
  field : 'val',
  heel: 'red'
var hi    = {
  field    : 'val',
  heel     : 'red'

Bootstrap 4 & Font awesome

Bootstrap 4 & Font awesome live templates/snippets

Documentation can be found here

Release notes can be found here

Have a problem, raise an issue here

Follow me on Twitter: @thekalinga


Switch easily between CamelCase, camelCase, snake_case and SNAKE_CASE. See Edit menu or use SHIFT + ALT + U.


Allows locking of classes, methods and regions of code to protect improtant parts of the code from accidental change

Codic Plugin

codic plugin for the IntelliJ platform products
This plugin automatically generates (translate Japanese to English) naming using codic API.

CoolSharp Code Section Generator

This plugin is a section of code automatically makes the source code.
// [final/static_property]====================[START]===================[final/static_property]
// [final/static_property]=====================[END]====================[final/static_property]
// [private/protected/public_property]========[START]=======[private/protected/public_property]
// [private/protected/public_property]=========[END]========[private/protected/public_property]
// [interface/enum/inner_class]===============[START]==============[interface/enum/inner_class]
// [interface/enum/inner_class]================[END]===============[interface/enum/inner_class]
// [inherited/listener_method]================[START]===============[inherited/listener_method]
// [inherited/listener_method]=================[END]================[inherited/listener_method]
// [life_cycle_method]========================[START]=======================[life_cycle_method]
// [life_cycle_method]=========================[END]========================[life_cycle_method]
// [private_method]===========================[START]==========================[private_method]
// [private_method]============================[END]===========================[private_method]
// [public_method]============================[START]===========================[public_method]
// [public_method]=============================[END]============================[public_method]
// [get/set]==================================[START]=================================[get/set]
// [get/set]===================================[END]==================================[get/set]
For more details, look at the repo on GitHub

Course Hero Helper Plugin

By mrfosip
Code Generation:
- Service Injector: Inject Symfony2 services via annotations (@InjectParams)
- Service Test Generator: Generate test skeleton for Symfony2 services
- API Doc adder: Add API docs quickly


Adds option for a JSONObject and Cursor constructor.
You can choose JSONObject Constructor from the Generate(Alt+insert) menu
Constructor is only supporting the basic data types and Strings in this version

Databinding Support

By shiraji
Intellij plugin that support Android Data Binding Library. This plugin has following features:
  • Convert non-databinding layout to databinding layout
  • Add data tag
  • Add import tag
  • Add variable tag
  • Wrap with @{}
  • Wrap with @={}
  • Switch between @{} and @={}
  • Jump from a class to layouts that the instance is binded


Send events to the Deckard app. Deckard will show useful information and pointers while you are working.


1. Inside your IDE, select Preferences -> Plugins -> Browse Repositories....

2. Search for deckard.

3. Click the green Install Plugin button and confirm the installation.

4. Re-launch your IDE.

5. Start the Deckard app from deckard.ai.

6. Double-click on code, or use Cmd+D or Ctrl-D to refresh the content shown in Deckard.

7. Switch to Deckard with Cmd+Tab or Alt-Tab, and click on links, or use the up and down arrows to navigate easily around your project.

Djaneiro for PyCharm

This was originally a pure port of the Djaneiro plugin for Sublime Text, but new features have been added not found in the original plugin.

It's a collection of live templates for common patterns encountered when building Django applications (with a couple generic python uses) specifically useful for models, forms, widgets, views, and templates.

For example, the following expansions for models and forms can be made:

    mchar<TAB--> $FIELDNAME$ = models.CharField($name$ , max_length=50)$END$
    fchar<TAB--> $FIELDNAME$ = forms.CharField($ARGS$)$END$

Where each variable between dollar signs($) (e.g., $FIELDNAME$, $NAME$, etc) is a stopping point for the cursor each time enter is pressed.

The abbreviations generally adhere to the following conventions:

  • Model field templates are prefixed by 'm' with the exception of `fk`, `m2m`, and `o2o` fields
  • Form field templates are prefixed by 'f'
  • Widgets are prefixed by 'w'
  • Settings are prefixed by 's'
  • Template templates have no prefix, nor do generic python templates

For a full listing of the abbreviations, see the github repo: https://github.com/brmc/pycharm-djaneiro/tree/master/docs


eddy helps write code. If you make mistakes, eddy will try to understand you anyway and propose proper Java. If eddy isn't sure what you meant, it'll show you options.

For examples of what eddy can do, see the instructions page. To report an issue, use the issue tracker or ask a question on the mailing list.

Eddy is open source and provided under the terms of the simplified BSD license. You can check out the code and contribute to our github repository.

Emoji Support Plugin

By shiraji
Intellij plugin for supporting auto-complete for Emoji. This plugin heavily rely on emoji-cheat-sheet.com

Enclosing Plugin

By lexand
Plugin for enclosing selection with specified character (NetBeans analog)
Characters used for enclosing ', ", (, {, [, `.

Change notes

  • Support multi-caret mode
  • Plugin does not work in "Column selection mode".
  • Compatible with other JetBrains products

Extended Code Sense

Provides some platform code-sense functionality enhancements.

File Template Variables

By EasySly
This plugins allow to specify or override any variables in the File Template functionality per Project

Fold Other Methods

The plugin provides an action to fold all the methods but the current one.

Galen Specs Language Support

This plugin enables smart editing of Galen Specs Language files.


By Roar

Adds an option to generate a copy constructor to the generate menu (alt + ins).

The action will generate a copy constructor taking an instance of the same class and copying over every field. If there is a copy constructor available in the superclass it will be called as well.

Also adds a number of inspections that generate warnings if a copy constructor might be faulty (e.g. not all fields copied or superclass constructor not invoked).


By jowan
Can input, can be selected to auto generator findViewById code in Activity or etc, support ButterKnife(version 8.4.0), support ViewHolder.

GivWenZen Plugin

Plugin for IntelliJ that provides support for legacy library: GivWenZen

Global File Template Variables

By aniekis
This plugins allow to specify or override any variables in the File Template functionality per Project

Gradle Dependencies Helper

By sioiri
library is searched in Smart Code Completion by Maven repository


Plugin for transformation accidentally copy&paste dependencies

Groovy Method Completion

This plugin lets you auto complete your super classes method declarations in Groovy language as well as quickly create Getter and Setters for their fields.

Hakuna Matata Postfix Completion

By m3n0R
The main purpose of the plugin is adding postfix completion and live templates we can use in our day to day development.

Available live templates:
  • prsf – Inserts ''private static final'' statement –
  • prsfi – Inserts ''private static final int'' statement –
  • prsfs – Inserts ''private static final String'' statement –
  • ifElse – Inserts ''if else'' statement –
  • time – Inserts ''Timber.e(exception, String)'' statement –
  • timd – Inserts ''Timber.d(String)'' statement –
  • timv – Inserts ''Timber.v(String)'' statement –
  • timm – Inserts ''Log method name and its arguments'' statement –
  • timw – Inserts ''Timber.w(Exception, String)'' statement –
  • timi – Inserts ''Timber.i(String)'' statement –
  • timr – Inserts ''Log result of this method'' statement –
  • timwtf – Inserts '' Timber.wtf(Exception, String)'' statement –

Available postfix completion templates:
  • .emptyCheck
  • .newInstanceWithAssignment
  • .newInstanceReplacement
  • .ifElse
  • .assertEquals
  • .assertNotEquals
  • .assertSame
  • .assertNotSame
  • .assertThat
  • .assertTrue
  • .assertFalse
  • .whenThen
  • .whenThenCallRealMethod
  • .whenThenAnswer
  • .whenThenReturn
  • .whenThenThrow
  • .verify
  • .verifyNoMoreInteractions
  • .verifyZeroInteractions
  • .doNothingWhen
  • .doReturnWhen
  • .doThrowWhen
  • .mock

Do you want more information about the live templates and postfix completions included in the plugin?
Have a look to the repository's README file

Hide Tool Windows Ex

By shiraji
This plugin adds the functionality to hide tool windows when the developer start typing. It has the same functionality to hide (all/side) tool windows including restorin the windows.

Hungry Backspace Reloaded

By OlegYch
Modifies BackSpace key to hungrily delete whitespace.
Updated version of https://plugins.jetbrains.com/plugin/162

Inc Dec Value

Increment and decrement numbers (integer and floating point) and string casing (upper, lower, capitalize).


Inject LOG_TAG Plugin

Generate LOG_TAG field to use for android.util.Log.

Injection for AppCode

Dynamic Objective-C Code Injection for App Code.
Requires Injection for Xcode plugin to work.


Adds a Builder action to the Generate menu (Alt+Insert) which generates an inner builder class as described in Effective Java

Input Language Locker

Blocks unwanted input language changes while working in IDEs WARNING: Only for Windows!

Jump Source Spec

Easy to swap between source and test file.


By dleppik
Left or right justify columns of selected text. This makes it easy to format repetitive lines of code into easy to read tables. This only works when indenting with spaces, not tabs.

To use:

  1. Select a rectangular block of text (alt-click and drag)
  2. Choose Left Justify under the Edit menu. All the whitespace on the left is moved to the right.
  3. Choose Right Justify under the Edit menu. All the whitespace on the right is moved to the left.

LiveTemplate ScriptEngine Macro

By jeisal
A plugin for enhanced live template scripting support. Check out the GitHub repository and wiki for more information and usage instructions.

Makefile support

Support for UNIX Makefiles


MVP classes generator

This plugin generates required presenter and view classes for a Fragment or Activity easing the burden to create those classes manually.


Following classes are required for the generated classes to have correct inheritance. It's in pipeline to auto generate these files also, if not found. You can specify your own names for the following required Base classes and interfaces using the Settings icon.

  • For New Fragment :
    • Scene - common interface for all fragments
    • Presenter - common interface for all Fragment Presenters.
    • BaseFragment - abstract base Fragment class which every fragment will inherit from.
    • BasePresenterImpl implements FragmentPresenter - base abstract class from which all Fragment Presenters will inherit.
  • For New Activity :
    • ActivityScene - interface for all activities.
    • ActivityPresenter - common interface for all Activity Presenter.
    • BaseActivity - abstract base class for all activities.
    • BaseActivityPresenterImpl implements ActivityPresenter - Base Abstract implementation of Activity Presenter which all Activity Presenters will subclass.

How to use?
  • From inside of any Activity or Fragment open generate menu(ALT + INSERT, CMD/CTRL + N).
  • Choose create mvp option.
  • Select the appropriate packages for the API and Implementation Generation.
  • Press OK, voila! your files are generated.


A plugin that helps you to create classes and interfaces for MVP. Click 'Generate' --> 'Mvp Helper' in Contract or Presenter class. For more detail see the link below.

PHP composer.json support

PHP composer.json support
Donate using PayPal or Bitcoin

This plugin adds auto completion and inspections support for composer.json file in PHP projects.

Postfix Completion

The basic idea is to prevent caret jumps backward while typing code, let you start with the some expression, explore some APIs, think about what you are going to do and after finish with statement of some type.

Available templates:

  • .if – checks boolean expression to be true – if (expr)
  • .else – checks boolean expression to be false – if (!expr)
  • .var – initialize new variable with expression – T x = expr;
  • .null – checks nullable expression to be null – if (expr == null)
  • .notnull – checks expression to be non-null – if (expr != null)
  • .not – negates value of inner boolean expression – !expr
  • .for – iterates over collection – for (T item : collection)
  • .while – uses expression as loop condition – while (expr)
  • .arg – helps surround argument with invocation – method(expr)
  • .cast – surrounds expression with cast – (SomeType) expr
  • .new – produces instantiation expression for type – new T()
  • .fori – surrounds with loop – for (int i = 0; i < expr.length; i++)
  • .forr – reverse loop – for (int i = expr.length - 1; i >= 0; i--)
  • .field – introduces field for expression – _field = expr;
  • .par – surrounds outer expression with parentheses – (expr)
  • .return – returns value from containing method – return expr;
  • .switch – switch over integral/enum/string values – switch (expr)
  • .throw – throws exception of 'Throwable' type – throw new Exception();
  • .assert – creates assertion from boolean expression – assert expr;
  • .synchronized – produces synchronized block – synchronized (expr)
  • .instanceof – surrounds expression with instanceof – expr instanceof SomeType ? ((SomeType) expr). : null

Other features:

  • Template expansion by [Tab] key in editor (like live templates)
  • Support for IDEA chained code completion (st.new => new SomeType())
  • Works inside code fragments, like evaluate expression debugger window
  • Settings page to disable/enable particular postfix templates

QML support

Support for Qt QML


Quick compare tool.


By zjhmale
Rainbow highlighting identifiers and delimiters for IntelliJ IDEA-based IDEs


Convert Android ButterKnife Zelezny generated @BindView code to Scala lazy val declaration.

SEL Editor

An IDEA plugin for the SEL language


By wangyi

A plugin for automatic generation of the singleton pattern.



By wallaby
Smarten up the editor with new editor actions.
This plugin makes you more productive in the editor. It supports some frequently used actions with the press of a key. You can easily select, format and navigate in selections. And it allows to to split literals at the current position without breaking your code!

It relies on navigation contexts. A navigation context is defined as:
  • Block statement: If, Switch or loops statements
  • Method definition
  • Class definition
  • XML tag

This plugin saves you from unnecessary caret movements.

Supported languages:
  • Java
  • JavaScript
  • CSS
  • XML
  • Bash (BashSupport plugin)
  • SQL (only certain dialects)
  • PHP

Split the current string literal at caret or around selection

Press alt + PLUS / Edit: Smart split. This action splits a string into two parts and positions the caret between two parts. For example: the string "abcd" is turned into "a" + "bc" + "d" if "bc" was selected.
Useful examples:

  • Working on Java code: simply split a string into two parts and enter a variable in between

Jump to the start of a navigation block

Press ctrl + alt + HOME / Edit: Smart home. This action moves the editor caret to the beginning of the next parent navigation context.
Useful examples:

  • Working on a Java loop statement: Use this action to jump to the loop beginning.
  • Working on XML tag body: Use this action to directly jump to the tag definition. Press again to jump to the parent tag definition.

Jump to the end of a navigation block

Press ctrl + alt + END / Edit: Smart end. This action moves the editor caret to the end of the next parent navigation context.
Useful examples:

  • Working on a Java loop in a method: Use once to add code after the loop, press another time to move after the method to add more class level code.
  • Working on XML tag body: Press to add another tag after the current one. Press again to move after the parent tag.

Format a navigation block

Press ctrl + alt + shift + F / Edit: Format favourite. This action reformats the next parent navigation context according to the code style settings. It puts a selection on the reformatted text. It can be called multiple times to reformat the next parent context.
Before you needed to press ctrl+w multiple times, then ctrl+alt+L and confirm the message box.
Useful examples:

  • Working on a Java method: If you want to reduce whitespace changes just reformat the current method by calling this action.
  • Working on XML tag body: Reformat the current tag and child context by calling this from anywhere on the first level below the tag.

Select a navigation block

Press ctrl + alt + shift + D / Edit: Select favourite. This action select the next parent navigation context. It can be called multiple times to select the next parent context.
Before you needed to press ctrl+w multiple times, which works on a much finer grained model.
Useful examples:

  • Working on a Java code: Select code on a more coarse grained model, e.g. anonymous class, then the method, then the inner class, then the outer class.
  • Working on XML tag body: Copy all sibilings and the parent tag by calling this action twice and then ctrl + c

This is an early release of this plugin. Please vote and provide feedback to help!


String space check.

SqliteMagic Plugin

A plugin that adds first-class support for SqliteMagic

StepBuilder Generator

This plugin generates a Builder class following the Step Builder pattern so that you can build instances of your class more easily in a guided manner.

Here is an example:

   public class Server{

    final static int DEFAULT_PORT = 8080;

    private String protocol;
    private String url;
    private String ipAddress;
    private int port;
    private String description;
    private long uptime;

    private Server(Builder builder) {
        protocol = builder.protocol;
        url = builder.url;
        ipAddress = builder.ipAddress;
        port = builder.port;
        description = builder.description;
        uptime = builder.uptime;

    public static IProtocol builder() {
        return new Builder();

    public interface IBuild {
        Server build();

    public interface IUptime {
        IBuild withUptime(long val);

    public interface IDescription {
        IUptime withDescription(String val);

    public interface IPort {
        IDescription withPort(int val);

    public interface IIpAddress {
        IPort withIpAddress(String val);

    public interface IUrl {
        IIpAddress withUrl(String val);

    public interface IProtocol {
        IUrl withProtocol(String val);

    public static final class Builder implements IUptime, IDescription, IPort, IIpAddress, IUrl, IProtocol, IBuild {
        private long uptime;
        private String description;
        private int port;
        private String ipAddress;
        private String url;
        private String protocol;

        private Builder() {

        public IBuild withUptime(long val) {
            uptime = val;
            return this;

        public IUptime withDescription(String val) {
            description = val;
            return this;

        public IDescription withPort(int val) {
            port = val;
            return this;

        public IPort withIpAddress(String val) {
            ipAddress = val;
            return this;

        public IIpAddress withUrl(String val) {
            url = val;
            return this;

        public IUrl withProtocol(String val) {
            protocol = val;
            return this;

        public Server build() {
            return new Server(this);

String Manipulation

Provides actions for text manipulation:

  • Toggle style (camelCase, hyphen-lowercase, HYPHEN-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case, words lowercase, Words Capitalized, PascalCase)
  • To SCREAMING_SNAKE_CASE (or to camelCase)
  • To snake_case (or to camelCase)
  • To dot.case (or to camelCase)
  • To hyphen-case (or to camelCase)
  • To hyphen-case (or to snake_case)
  • To camelCase (or to words)
  • To PascalCase (or to camelCase)
  • Capitalize selected text
-when nothing is selected, then either nothing or whole line or a particular element is selected - report an issue if you find something to improve, each file type needs its own implementation to work flawlessly.


  • Un/Escape selected Java text
  • Un/Escape selected JavaScript text
  • Un/Escape selected HTML text
  • Un/Escape selected XML text
  • Un/Escape selected SQL text
  • Un/Escape selected PHP text
  • Convert diacritics(accents) to ASCII
  • Convert non ASCII to escaped Unicode
  • Convert escaped Unicode to String


  • Encode selected text to MD5 Hex16
  • De/Encode selected text as URL
  • De/Encode selected text to Base64


  • Increment/decrement all numbers found.
  • Duplicate line and increment/decrement all numbers found.
  • Create sequence - Keep first number, replace all other by incrementing
  • Increment duplicate numbers

Sort with natural order:

  • Reversing order of lines
  • Shuffle lines
  • Sort case-sensitive A-z
  • Sort case-sensitive z-A
  • Sort case-insensitive A-Z
  • Sort case-insensitive Z-A
  • Sort line length asc., desc.
  • Sort lines by subselection - only one selection/caret per line is handled


  • Format selected text to columns/table by a chosen separator/delimiter
  • Align text to left/center/right


  • Grep selected text, All lines not matching input text wil be removed. (Does not work in column mode)
  • Trim selected text
  • Trim all spaces in selected text
  • Remove all spaces in selected text
  • Remove duplicate lines
  • Remove empty lines
  • Remove all newlines


  • Swap Characters/Selections/Lines/Tokens
  • Switch file path separators: Windows<->UNIX

Actions are available under Edit menu, or via the shortcut "alt M" and "alt shift M". You can setup your own shortcuts for better usability.

Swagger Plugin

By semonte

A plugin to help you easily edit Swagger specification files.

Like this plugin? Give it a star at GitHub and spread the word!


By jqj1994
For java and android developers.

To avoid definite two fields of the same value, consider using @Unique or @Index at the first field.

@Unique : Any two fields mustn't equal the same value.
@Index : All fields must be auto increased as 0,1,2,3, ... .

Click to see how to easy to use.
This plugin is opened at Github, if you like it, plz give me a start, tks.

view injector

used to import views to activity or fragment
any annotation supported not just butterkinfe
based on butterkinfe zelezny

Wrap to Column

Wraps text to the specified column width. Similar to the Emacs command 'Fill Paragraph' and Vim's `gq` (format lines) command. This is a replacement for the native Intellij Fill Paragraph command, which doesn't work quite how I need it to.

This plugin provies two IDE actions:

  • Wrap Line to Column: Wraps selected text or the current line if no text is selected. This is useful for IdeaVim users who wish to pair the command with motions like `vip` (select current paragraph).
  • Wrap Paragraph to Column: Wraps the paragraph (multiple lines) in which the cursor appears. No selection is needed, and will be ignored.

Note: As of version 1.0, this plugin supports only IDEA 14.1.x-based products and later (e.g., PyCharm 4.1, WebStorm 10, Android Studio 1.3).


By binhlvu
Reformat (local) python code using google/yapf Requirement: + YAPF must be pre-installed and could be invoked using sh -c /usr/local/bin/yapf command.


Yet Another Builder plugin Repository Github repository Description Generates an inner class Builder, based on the host class attributes.
  • creates a static class Builder
  • creates getters on the host class
  • creates getters that can be Optional if nullable
  • creates a new private constructor in the host class accepting the builder as parameter
  • creates a new toBuilder() method in the host class to convert the instance back to a Builder
  • creates a new static builder() method in the host class to return an empty Builder
Compiled with Java 8