Top Rated

Shifter

Detects type of selection, line or keyword at caret and shifts it "up" or "down" on keyboard shortcut. If there's only one shiftable word in a line, it can be shifted without the caret touching it. Lowercase/uppercase or lower case with upper first character of shifted words is maintained.

DEFAULT KEYBOARD SHORTCUTS
  • Ctrl+Shift+Alt+Comma - Shift Down
  • Ctrl+Shift+Alt+Period - Shift Up
  • Ctrl+Shift+Alt+K - Shift Up More*
  • Ctrl+Shift+Alt+J - Shift Down More*
Shift more: repeats shifting a value multiple times. The amount of repetitions can be configured in the plugin configuration (default: 10).

Mac Users: On Macs, the keyboard shortcuts are Comma or Period key together with Shift+Alt+Cmd

Tip: Using Mouse Wheel
To setup the mouse wheel to invoke shifting, open the IDE preferences and go to: “Keymap”. Search for “Shift”, than right-click the shifter action items and use the option “Add mouse shortcut”. Mouse shortcuts can include hotkeys, this way for instance “Shift + Wheel Up” can be assigned to “Shift-Up”, “Shift + Wheel Down” to “Shift-Down”.

SHIFTING TYPES
Sorting
  • Shifting a multi-line selection sorts the lines alphabetically ascending/descending.
  • Shifting a single-line selection, that is a comma- or pipe-separated list, sorts the items ascending/descending.
  • Shifting a single-line selection, that is a tupel, flips the items' order (delimiters: ":", "|", ", ", " - ", " + ", " < ", " > ", " <= ", " >= ", " == ", " != ", " === ", " !== ", " || ")
  • Shifting a selection that is a camelCased (w/ lower or upper lead character) word pair, flips the order of the words.
  • Shifting a selected (from questionmark on) ternary expression, swaps "than" and "else" statements
  • Shifting a selected PHP concatenation from two strings / variables, toggles the concatenated items' order
  • Shifting a selection from a CSS file, sorts all attributes inside their selectors (alphabetically, vendor-attributes and vendor-styles at the end)
  • Shifting selected attribute-style lines inside a CSS (or LESS or SASS) file, sorts them (alphabetically, vendor-attributes and vendor-styles at the end)
Numeric Shifting
  • Numeric values - Incrementing/decrementing numbers
  • Strings ending with numbers - increments/decrements the postfix
  • Numeric block selection: opens dialog to chose: 1. in/decrement each or: 2. replace by enumeration
  • UNIX (and millisecond based) timestamps - Increments/decrements by one day, shows a balloon info with the shifted date in human-readable format
  • CSS hex RGB colors - Shifts color value lighter/darker
  • CSS length values - Shifts numeric length values up/down by 1 (units: em, in, px, pt, cm, rem, vw, vh, vmin, vmax)
  • Increment/decrement roman numerals
String Manipulations
  • Shifting a selection within a single line: detects and swaps characters: single quote vs. double quote OR slash vs. backslash
  • Shifting a selected (or the caret touching a) camel-cased string, converts it into a minus-separated path (and vice versa)
  • Strings wrapped in single/double quotes and backticks - Shifts to alphabetically next/previous quoted string found in current document
  • Strings surrounded by round or square brackets: toggles surrounding "(" and ")" versus "[" and "]"
  • Logical operators: toggles between (selected) "&&" and "||"
  • HTML en/decoding of selected special characters
  • Single characters and string consisting from any amount of the same character can be shifted to the previous/next ASCII value
Code- and DOC Comments
  • Selection which is a block comment or multiple line-comments (e.g. PHP, JavaScript, C syntax) - toggle among comment type (//... vs. /*...*/). Merges multi-line comments into 1 line.
  • Selected line of code ending with a trailing //-comment - Moves the comment into a new line before the code
  • Selected HTML comment inside a PHP / PHTML file: converts it into a PHP block comment (and vice versa)
  • PHP DOC: Shifting a selected PHP doc comment block that contains @param comments w/ variable name but no data type, guesses and inserts data types
  • PHP DOC: Shifting while the caret is inside an @param line that contains no data type, inserts a data type (guessed from the variable name)
  • JsDOC: Shifting w/ the caret touching a data type that is not wrapped in curly brackets, inside an @param- adds the missing curly brackets
  • Selected JsDoc block: Convert "@return" into "@returns", add curly brackets around data types in "@param" and "@returns" lines, correct invalid data types into existing primitive data types (event => Object, int(eger) => number), guess and insert missing data type to "@param" and "@returns" lines, reduce empty JsDoc lines
PHP and JavaScript
  • PHP variables - Shifts to alphabetically next/previous variable found in current document ("shift more" shifts until first variable with a different first letter)
  • Selected PHP array - Shifts among long and shorthand syntax (PHP >= 5.4)
  • Selection which is a Sizzle-Selector - Converts the selector into a corresponding JavaScript variable declaration
  • Selection of multiple JavaScript var declarations in succession - are joined into multiple comma-separated declarations
Dictionaric Keyword Shifting
Shifter comes with a customizable, file extension specific and globally usable dictionary of shiftable keywords. Some keyword types from the default dictionary:
  • PHP core magical constants - Shifts PHP's magic constants (__FILE__/__LINE__ etc.)
  • CSS orientations and positioning: top/right/bottom/left and absolute/relative, and geographical directions (north/east/south/west)
  • Accessibility types: public/private/protected
  • MySql data types: Shifts to next bigger/smaller numeric/string type
  • Primitive data types of Java, JavaScript, PHP, Objective-C
  • Doc comment tags (Java, JavaScript, PHP)
  • JavaScript event types (mouse, keyboard, frame/object, form, control, touch)
  • Named colors from the sRGB color space (white/lightgray/gray...)
  • Text styles (bold, italic...)
  • Web image (gif/jpg/png) and audio (au/aif/wav etc.) format extensions
  • Full and abbreviated names of months and weekdays and units of time
  • Logical operators (and/or/xor/not), arithmetic operations (addition/subtraction...) and arithmetic elements (sum/difference/product..)
  • Meta-syntax terms: foo/bar/baz...
  • Names of common data collection types (list/set/bag/dictionary/tree...)
  • Names of numbers (one/two/three etc.) and ordinal numbers (first/second/third etc.)
  • Boolean (paired) keyword values - Toggles true/false, on/off, yes/no (e.g. Objective-C), shown/hidden, show/hide, positive/negative, from/until, enable(d)/disable(d), pass/fail, min/max, expand/collapse, asc/desc, first/last

Please note: This plugin is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Advanced Java Folding

Modern JVM languages such as Kotlin, Groovy, Scala and some others offer many language features that let you write code in a more concise and expressive manner. These features include type inference, properties, interpolated string, range and tuple literals, enhanced operators, clojures, implicits, smart casts and many more.

This plugin extends the IDE’s folding features to emulate some of these modern languages’ features helping fight verbosity.

For more information, read the blog post.

To get access to experimental features, go to Settings | Plugins | Browse Repositories | Manage Repositories and add https://plugins.jetbrains.com/plugins/EAP/com.intellij.bigdecimal-folding as a custom plugin repository URL.

For more clarity, you may try to adjust your color scheme: go to Settings | Editor | Colors & Fonts | General, select Folded text, uncheck the Background color, and change the Foreground color to #000091 for the default scheme and #7CA0BB for Darcula.

To disable certain types of folding, go to Settings | Editor | General | Code Folding.

Illuminated Cloud

Illuminated Cloud is a powerful Force.com development tool hosted within JetBrains IntelliJ IDEA. Illuminated Cloud was designed and implemented with the express intent of bringing the beloved feature set of modern Java IDEs to Force.com developers. Because Illuminated Cloud is hosted within IntelliJ IDEA—both Community Edition and Ultimate Edition are supported—users are also able to leverage IDEA's extensive core feature set for Force.com development including its powerful source code editors, polyglot language support for composite applications, and tight integrations with version control, task management, and bug tracking systems.

Illuminated Cloud dramatically simplifies development and deployment of Apex, Visualforce, Lightning and other Force.com metadata types with modern IDE features such as:

  • Intelligent context-sensitive code completion and live templates
  • Extensive code navigation and cross-referencing
  • Integrated API documentation
  • Content type-aware static resource management and static resource bundle support
  • Template-based source file creation
  • Highly-configurable source code formatter
  • Integrated Apex unit test execution and code coverage metrics
  • Source code validation and deployment
  • Powerful Force.com connection management
  • Flexible and efficient metadata deployment, retrieval, and delete actions
  • Anonymous Apex and SOQL query execution
  • Integrated log viewer
  • Offline Apex debugger

CUBA

This plugin is intended to increase productivity of developers, who build applications on the CUBA Platform.

Key features:

  • IDE and CUBA Studio integration
    While CUBA Studio facilitates visual development, CUBA Plugin simplifies working with code in a Java IDE.
  • Intuitive navigation
    Navigate transparently through the platform-related elements.
  • Smart autocomplete and injections
    Use auto completion and injections for the platform specific code.
  • Advanced code inspection
    Smart code inspection and quick fix suggestions for the platform-related code in your IDE.

See also:

Website | Forum | GitHub | Issue tracker

Java Stream Debugger

In some ways, Stream API is better than traditional loop approach: it takes full advantage of modern multi-core architectures, and lets you process data in a declarative way. What's also good is that this approach helps to avoid the state issues, and the code written in it looks more elegant. But, there's a certain downside to it: the code sometimes is sure hard to read, understand, and, of course, to debug.

This plugin is here to amend that and offer solutions to the issues you might run into. It extends the Debugger tool window by adding the Trace Current Stream Chain button, which becomes active when debugger stops inside of a chain of Stream API calls.

After you click it, the current data stream is evaluated and you get a visualization of what exactly happens to each element from the first call to last, with changes occurring gradually as it's passing thru all the steps:

The Split Mode button in the left bottom corner lets you choose whether you want to see all operations at once or separately:

In the latter mode, you can switch between operations manually using the tabs on top.

The plugin is still under development, so expect a couple of glitches here and there, and, of course, we really appreciate your feedback, including error reports, and we have set up an issue tracker just for that.

Autoscroll Save

At last, a handy way to save your Autoscroll to/from Source settings :)

Toggle "Autoscroll to Source": Crtl-Alt-Shift PAGE UP
Toggle "Autoscroll from Source": Crtl-Alt-Shift PAGE DOWN
Save "Autoscroll to/from Source" settings: Crtl-Alt-Shift END

Use the toggle actions to quickly enable / disable autoscroll settings in the active project.

Save the autoscroll settings to apply them to currently open projects and all projects opened or created in future.

The key bindings can be re-assigned via Settings -> Keymap -> search for "autoscroll".

Saved settings can be disabled in the "autoscroll.xml" file located in config/options, if needed.

Rust

Rust language support

Elm language plugin

Plugin for Elm language support.

Features
  • Supports Elm 0.18 (If you need to have different version supported, see this link)
  • Parsing the syntax
  • Syntax highlighting and color settings page
  • Going to declaration
  • Highlighting unresolved references with a quick-fix option to add an import statement
  • Code completion
  • Spellchecking
  • Brace matching
  • Rename refactoring

TypoScript Plugin

Logo - sgalinski Internet Services

Please uninstall the TypoScript plugin from Intellij before you install this one, because this combination can lead to crashes and unforeseeable problems.


Do you know, that this is just a demo of the commercial version of this plugin? In the full version are more features and no ads. You can buy the typoscript plugin in our store. From 9,99€ incl. VAT.


This plugin provides support for the TypoScript configuration language of the TYPO3 CMS and for Neos Fusion of Neos.


Neos Fusion Feature Highlights:
  • Code Highlighting
  • Code Folding
  • Code Formatting
  • Error Detection
  • Breadcrumb

TypoScript Feature Highlights:
  • Code Highlighting
  • Code Folding
  • Code Formatting
  • Code Auto Completion with multi file support
  • Code Type Annotation
  • Code Documentation (Ctrl+Q on Windows/Unix, Ctrl-J on Mac)
  • File auto completion for INCLUDE_TYPOSCRIPT values
  • Go to file support for INCLUDE_TYPOSCRIPT values
  • Error Detection
  • Structure Tree
  • Breadcrumb, can be disabled in the TypoScript settings (File -> Settings -> IDE Settings -> TypoScript)
TypoScript Commercial Feature Highlights:
  • No ads.
  • File auto completion for EXT: values.
  • Go to file support for EXT: values.
  • More in developement...

The TypoScript code value annotation is an additional feature for the code auto completion.
You can assign a specified data value for any keyword to let PhpStorm know, how to handle keywords that are not defined inside the project or the included tsref.xml.

You can easy advance the tsref.xml by creating a new file called "tsref_additionals_[1,2,...].xml" in the folder "de/sgalinski/typocript/resources/". Then you can add your special values.


Syntax:
    // @var [Key] [Type]
        
Example:
    // @var plugin.tx_ext.someProperty stdWrap
    plugin.tx_ext.someProperty {
        ...
    }
        
Example2:
    plugin {
        /** My description
         * to this specific
         * variable
         *
         * @var .tx_ext TEXT
         */
        tx_ext.someProperty {
            ...
        }
    }
        

We will deliver bugfixes in the future. Please check for updates regularly.
If you find bugs or have feature requests, please open a ticket in our public issue tracker.

License

In general the usage of this software requires the payment of a small fee. Details about the commercial licence can be found here:
https://www.binpress.com/license/view/l/584559e2265a202dd18f33e106dc7fb2

The already released software in our free related gitlab projects belongs to the MIT licence:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

RegexpTester

Regular Expression Tester for IntelliJ IDEA.
Allows you to experiment with Java regular expressions in a dynamic environment.
  • Full highlighting of regular expression syntax for an easy visual clue (including bracket matching and error detecting)
  • Tooltips with context help will be shown when the mouse is over a part of the regex.
  • Synchronized selection of regular expression and text: Just select part of the regexp to see which part of the text is matched by this part.
Functionality of this plugin is available as java-applet at http://myregexp.com/applet.html

GoToTabs

The plugin adds menu actions allowing you to go to a specific tab. You can of course assign keyboard shortcuts the individual actions and for example achieve the behavior known from other editors/IDEs where you can switch between tabs with alt+<num>.

To prevent any conflicts, the plugin doesn't assign any shortcuts by itself, you need to do it manually in the Keymap (section Main menu -> Window -> Editor Tabs -> Go To Tabs).

BrowseWordAtCaret

Allows to easily browse next/previous word at caret and highlight other appearances of selected word.

Usage: Browse with CTRL-ALT-UP, CTRL-ALT-DOWN (note: on default-keymap this shortcut is also for next/previous occurrence).

Non Project Files Unlocker

In Editor. By meo
Disables annoying dialog for unlocking non-project files - IDEA-125379.

Grep Console

In Misc. By meo
Allows you to define a series of regular expressions which will be tested against the console output or file. Each expression matching a line will affect the style of the entire line, or play a sound. For example, error messages could be set to show up with a red background.

Additional Features:
Filter/grep the console output into a new console tab
File Tailing:
- Main menu | Tools | Open File in Console
- Main Menu | Help | Tail (IntelliJ) Log in Console
- Project View ToolWindow | right click context menu | Tail
- Drag&Drop "Tail File" panel in main toolbar
- http and Windows context menu integration

Inspired by Grep Console plugin for Eclipse Used Remote call plugin implementation for http integration.

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:

  • 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/Decode:

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

Increment/Decrement:

  • 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

Align:

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

Filter/Remove/Trim...:

  • 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

Other:

  • 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.

PlantUML integration

PlantUML diagramming tool integration

Maven Helper

In Maven 2. By meo
A must have plugin for working with Maven.

Provides:
  • easy way to find and exclude conflicting dependencies
  • actions to run/debug maven goals for a module that contains the current file
  • actions to run/debug the current test file.
    If maven-surefire-plugin is configured to skip or exclude the test, 'verify' goal will be used, see different configuration styles at https://github.com/harishkannarao/MavenSurefireFailsafeExamples

Usage:
  • Right click in Editor | Run Maven
  • Right click in Project View Toolbar | Run Maven
  • CTRL + ALT + R - "Quick Run Maven Goal" action

  • Customize goals: Settings | (Other Settings) | Maven Helper
  • Define shortcuts: Settings | Keymap | Plug-ins | Maven Helper

  • Open pom file, click on 'Dependency Analyzer' tab, right click in the tree for context actions.

Idea 2016.2 Icon Pack

In UI. By kb
Changes new modern icons to the old ones. Welcome back to IntelliJ IDEA 2016.2

JFormDesigner

Advanced Swing GUI designer. Its outstanding support for MigLayout, JGoodies FormLayout, GroupLayout (Free Design), TableLayout and GridBagLayout makes it easy to create professional looking forms.

Key features

  • MigLayout support
    MigLayout is a superbly versatile and powerful open-source layout manager. It is grid-based, but also supports docking and grouping.
  • GroupLayout (Free Design) support
    GroupLayout support brings the "Free Design" paradigm to IntelliJ IDEA (as in NetBeans GUI Builder; formerly Project Matisse). You can lay out your forms by simply placing components where you want them. Visual guidelines suggest optimal spacing, alignment and resizing of components. This makes it easy to design professional-looking GUIs.
  • JGoodies FormLayout and TableLayout support
    These open-source layout managers allow you to design high quality forms.
  • Advanced GridBagLayout support
    The advanced GridBagLayout support allows the specification of horizontal and vertical gaps (as in TableLayout).
  • Column and row headers
    The column and row headers (for grid-based layout managers) show the structure of the layout and allow you to insert or delete columns/rows and change column/row properties. It's also possible to drag and drop columns/rows (incl. contained components and gaps).
  • IDE plug-ins and stand-alone application
    JFormDesigner is available as IDE plug-ins for IntelliJ IDEA, NetBeans, Eclipse, JDeveloper and as stand-alone application.
  • Localization support
    Localizing forms using properties files has never been easier. Specify a resource bundle name and a prefix for keys when creating a new form and then forget about it. JFormDesigner automatically puts all strings into the specified resource bundle (auto-externalizing).
  • Beans Binding (JSR 295) support
    Using Beans Binding (JSR 295) helps you to keep UI state and model in sync. It drastically reduces the amount of listener code that is usually necessary.
  • BeanInfo Annotations
    The @BeanInfo and @PropertyDesc annotations make it very easy to specify BeanInfo information directly in the custom component. Its no longer necessary to implement extra BeanInfo classes. This drastically reduces time and code needed to create BeanInfo information.
  • Java code generator or runtime library
    Either let JFormDesigner generate Java source code for your forms (the default) or use the open-source (BSD license) runtime library to load JFormDesigner XML files at runtime. Your choice.
  • Generation of nested classes
    The Java code generator is able to generate and update nested classes. You can specify a class name for each component in your form. This allows you to organize your source code in an object-oriented way.

Php Inspections (EA Extended)

For support and donations please visit Github | Issues | PayPal.

Please follow me at twitter for status updates.

This plugin is a Static Code Analysis tool for PHP (aka inspections in JetBrains products).

It covers:
- architecture related issues
- weak types control and possible code construct simplifications
- performance issues
- non-optimal, duplicate and suspicious "if" conditions
- validation of magic methods usage
- regular expressions
- validation of exception handling workflow
- compatibility issues
- variety of time-consuming bugs
- PhpUnit API usage
- security issues

Some of inspections are expecting conditional statements (e.g. "if") to use group statement for wrapping body expressions. If this requirement is met then additional inspections are applied to the source code.

For Mac shortcuts, see this reference card. Windows/Linux ones are:
Alt + Shift + I to inspect current file with current profile
Ctrl + Alt + Shift + I to run inspection by name
Ctrl + Shift + F4 to close results of inspection.

On some projects CPU and therefore battery usage could be intensive, so it should be taken into account when traveling with a laptop.