Released: Aug 21, 2019
Updates in 2019.2.1
Features
No subsystem
- Implement action for Slow Startup Profiling
- Provide ability to copy a TBX link to a settings
- soutp live template: take arrays into consideration
- Redesign several indices to be able use prebuilt values
- Intention action: wrap collections/map with Collections.unmodifiable* variant
- API to provide custom labels for diff message in test tool window
Build. Gradle
- Show tasks colors in Gradle tool window
- Gradle Groovy syntax cannot resolve symbol 'exclude'
- GradleDiagrams: Refresh opened Gradle diagram after Gradle project refresh
- Ability to visualize gradle dependencies similar to viewing maven dependencies
Build. Maven
- Maven: Update Indices when application starts up/on a regular basis
- Maven Groovy project not recognized properly
Code Analysis. Duplicates
- Do not detect duplicates inside ruby test files.
- Skip initialization methods during duplicates analysis in ruby files.
Code Analysis. Inspection
- Chained method calls inspection shall ignore methods which return the same type of enclosing class
Code Analysis. Structural Search
- Search Structurally dialog should have an inline preview
- Add JavaScript/TypeScript existing templates
- Add type filters for JS structural search
Core. IDE Settings
- Provide a way to disable proxy detection logic on early startup
- Copy settings back to IDE after disable sync plugin
- Cannot remap cursor keys for navigation outside the editor (popups, etc.)
Core. Platform API
- Allow IDEs to customize which builds can be used as possible updates
- Allow plugins to contribute additional details into description template used by 'Submit a bug report' action
- ExecUtil.sudoCommand could show a prompt on macOS 10.10+
- Please allow the UndoRedoAction to use the JB UndoManager for a JTextComponent
- Provide an annotation which may be used to mark public elements which must not be used from external plugins
- Allow using color palette in themes
Core. Plugin Management
- Possibility to mark a plugin as internal
Core. Profiler
- Add support for Java Flight Recorder (JFR)
- To attach JFR to already started local process
- Profiler: Set, or suggest to set max stack trace depth for Flight Recorder
Core. Quick Documentation
- Better quick JavaDoc for enums
Core. Refactorings
- Scope Setting for Rename Refactoring
Editor. Code Completion
- Can I make the live template appear at the top of the code completion list?
Editor. Color Schemes
- Ability to drag-n-Drop editor color scheme
Editor. Diff and Merge
- IDEA as external diff/merge - provide proper exit codes
- Show changes per-changelist in Unified View
Editor. Editing Text
- Java Smart Complete Statement: Complete ternary operator if necessary
- No horizontal scroll in editor when the width of block inlay is more than editor width
- Jump outside closing bracket with Tab should jump after the semicolon
Frameworks. Spring
- Spring Boot Web App: provide automatic mapping of web resource roots
- Recognize MethodInvokingFactoryBean when resolving bean type
- Spring + Kotlin: Select In... | Spring Beans doesn't work for kotlin classes
- Spring MVC and Kotlin: provide intentions to create the missing @PathVariable-annotated parameters
Groovy
- Add "Access to unresolved expression" to the analyze process
- Bold braces for closure and lambda expressions
- Support Java lambda syntax
- Support nested code blocks
Infrastructure. Packaging and Installation
- Publish 'intellij.platform.testFramework' module as a Maven artifact
- Extract Java support to a separate plugin in IntelliJ IDEA
- Publish modules required to build IntelliJ IDEA from sources as Maven artifacts
- Include com.intellij.testFramework.vcs into some binary distribution
Java
- Show Expression Type should also show known boolean values, strings etc
- Support JEP 355 "Text Blocks"
- Java 13 Preview: switch expressions
Java. Debugger
- Debug mode / Mouse gesture "Run to mouse pointer"
- Show value renderer icon right on evaluating popup
Java. Error Highlighting
- "Extension methods are only allowed in interfaces" error should have quickfix to remove "default" keyword
Java. Inspections
- Suggest replacing Charset.forName("UTF-8") with StandardCharsets.UTF_8
- Transform Stream.iterate(seed, next).takeWhile(predicate) to Stream.iterate(seed, predicate, next)
- Provide "surround with instanceof" fix for possible class cast warning
- Dataflow warning explanation
- Support more AssertJ matchers in hardcoded contracts
- ReturnOfNull java inspection should have an option to ignore lambdas
- Suggest using StandardCharsets.XYZ instead of "XYZ" where possible
- Convert to enhanced switch: an option to omit warning if we cannot generate switch expression
- Inspection to detect when collection is accidentally passed as vararg and will be wrapped into one-element array
- Inspection to replace Map.keySet().contains(K) with Map.containsKey(K)
- Reflective access to nonexistent/not visible class member inspection: add a quick-fix
- Inspection to use Math::min / Math::max instead of handwritten code where possible
- Inspection to detect probably missing break-statement
- `java.util.function.Function` should be added to 'Result of method call ignored' inspection
- Simplify Optional chains
- Support bitwise xor in Java DFA
- Extend the "iteration over 'keySet()' may be replaced with 'entrySet()' iteration" inspection to recognize put() calls
- Manual array population should be detected and replaced with Arrays.fill
- Do not warn on cast to compatible interface when it has a matching instanceof check
- Loop statement that does not loop: allow to ignore for-each loops
- Inspection request: integer fraction multiplication i *= 3/2
Java. Intention Actions
- Flip method call on call without qualifier
- Suggestion: Add quick fix to merge two annotations which are not marked as repeatable
- Merge convert to decimal/octal/hex/binary to submenu
- IDEA should know to open brackets in java code
- Intention to replace singleton collection with a normal one
- Action to transform method with multiple returns into the method with single exit point
Java. Refactorings
- Inline method: support negation at the call site
- "Inline" Foo.class.getName(), Foo.class.isInstance(bar)
- Inline MyEnum.valueOf and ENUM_CONSTANT.name()
- "Inline Method refactoring is not supported when return statement interrupts the execution flow" is wrong
- Automatically fix "Not a statement" problem in inline method
- Inline method with returns should work when inlining point is the only expression in a loop or lambda body
- Support Inline Method refactoring when return statement interrupts the execution flow
- Inline method: process some boolean methods with multiple exits specially
Java. Tests. JUnit
- Ship 'junit-jupiter-params.jar' with IDEA
JavaX. AppServers. JBoss
- WildFly: Allow to configure connection timeout to management API
JavaX. AppServers. Tomcat
- Tomcat: Option to select application context when deploying artifacts
Plugin Development (DevKit)
- Devkit: <depends> checking
- Highlight services/components with identical interface and implementation classes as redundant in plugin.xml
- Show warning for <group> elements with class specified and ID not specified
- Code insight for Registry keys defined via EP com.intellij.registryKey
- Devkit: resolve "keymap" in plugin.xml
- Devkit EP declaration: suggest to change declaration via 'qualifiedName' to 'name' in main plugin.xml
- plugin.xml: highlight duplicate <depends>
- IDEA UI Guidelines: "Action" text capitalization
- DevKit: Component/Action not registered - skip for deprecated classes
- IDEA UI Guidelines: verify capitalization for EP properties annotated with @Nls in plugin.xml
Plugin. Markdown
Plugin. OSGi
- Osmorc: Upgrade Bndlib to 4.2 or later
Plugin. Shell Script
- [Shell script] add Run Debug configuration support
Plugin. Terminal
- Terminal: Add support for hyperlinks
Services. Clouds. CloudBees
Services. Docker
- Docker. Support --ipc command line option
Services. Kubernetes
- Helm: Provide possibility to disable values substitution in kubernetes helm templates
- Helm: Validate requirements.yaml fields
User Interface
- Please add uidesigner color constants to themes
User Interface. Controls
- Find and Find-in-path to select word under the caret automatically.
User Interface. Find, Replace, Usages
- Recently Edited and Recently Viewed scopes in Scope Chooser
User Interface. Look and Feel
- Theme metadata: new property "since"
- Theming: update metadata for 2019.2 keys
User Interface. Navigation
- Feature request: recent files dialog should use up/down/left/right key mappings
User Interface. Project View
- Project pane: Open Files
- Allow to use additional keymaps for up/down in project window
Version Control
- File sorting in Version Control: Local Changes differs from sorting in project view
- Show git file history for multiple directories in project view
- Add VCS status and scope information to file quick documentation
Version Control. Git
- Support interactive prompts from all Git commands
- Show notification explaining the reason of Rejected force push
- Git: provide possibility to abort merge process
- Gitignore right click
- Rework the Compare Branches dialog to use a Log tab with proper filters
- Update/Pull/Merge Info should list new commits (the newly received part of the log) instead of the files
Version Control. Log
- Log: add action to go-to-parent and go-to-child
- Add log filter like 'git log master..branch'
Web. Flash and Flex
- AIR SDK 33 Android 64-bit arch
- Feature Request: Run/Debug AIR Mobile config for iOS Simulator allow configuring Simulator device
No subsystem
- Redesign new Vue project wizard to support npx and displaying progress in terminal
- SQL injected in JS string should use user parameter as placeholder
- Incorporate NodeJS and Live Edit Tools to the default IDEA installation
- Support inline inferred type hints for Javascript and TypeScript
- Run Anything for JavaScript tools
- Add 'insert await' quick fix for type assignability errors of 'Promise<T> vs T' and for property access on `Promise<T>` for a property that exists in T
- React auto import ignore "allowSyntheticDefaultImports"
- Support path aliases defined in jsconfig.json
- JS. Console live templates
- ES6: completion for default import bindings according to the exported name
- Console DOM elements presentation
- Install LTS Node.js from new project dialog
- TypeScript 3.4: support improved type inference for unions/intersections
- TypeScript: no override/implement completion for fields
- Add "Range" http header for video.
- Method chain type hints for JS/TS
Build tools
- Use interactive console for npm scripts run tool window
CSS
- Emmet for CSS: improve how vendor prefixes are applied
- Stylelint: allow linting CSS/PostCSS files with custom extensions
- Support postcss-simple-vars
- Instant image preview of encoded SVG data
- CSS Media Queries Level 5 support
Dart
- Show package info in Dart code completion.
- Please implement Context Info (Alt+Q) feature for Dart.
- Support AngularDart
- Include non-imported Dart classes in code completion list and auto-insert import
- Dart folding- add ability to fold multi-line asserts statements
Debugger
- Javascript Debug: Rerun to current URL
- JavaFx availability check before webconsole usage
HTML
- Small tag should be listed as an inline element by default
JSON
- Specify language injection in a json-schema file
- Add nodemon to package.json schema
- Add lint-staged to package.json schema
- Add renovate to package.json schema
- Add husky to package.json schema
- JSON schema in yaml notation
- Support JSON-schema based code completion for all linters/tools we support for yaml/plain js formats
JavaScript
- Properties added with Object.assign() and Object.defineProperties() are not understood
- JS/TS: add postfix template to surround expression with call
- Support Unicode property escapes
- Autocomplete of export default
- JavaScript: additional completion for "length" and "size" methods
- Add a quick fix to fix spelling for an unresolved reference if qualifier type has property with similar name
- Add 'String usage' type to 'find usages'
- Add styling option for keys in ES6 destructuring assigment
- 'Propagate to destructuring declaration' intention
- Javascript quick doc: add syntax highlighting in the definition section
- Support Object.fromEntries()
- Suggest class method parameters when ES6 class is extended
- Missing color for the name of a function expression
- Inspection and quick-fix to merge trivial nested template literals
- Support destructuring declarations in Vue.js and allow 'Propagate to destructuring' to propagate there and 'Rename' to rename properly
- Duplicates Inspection: disable search between Javascript and TypeScript files
- Show available method signatures in the Go to definition popup
- Call hierarchy action doesn't work where function literal is passed as argument
- Add code completion for webpack config that returns promise
- Provide fixes to create object literal properties from unresolved usage
- Parameter info and parameter hints for tagged templates
- Support ES2019 decorators proposal
JavaScript. Formatter
- Prettier: allow importing code style rules from .prettierrc.js/ .prettierrc.toml file
- Feature: Code Style: JS: space before and after unary negate operator
JavaScript. Frameworks
- Allow a way to override package.json check for Angular 2+
- Option to not self-close JSX tags when autocompleting
- Vue: support details of components defined with @Component syntax
- Add support for ngNonBindable directive
- Unresolved symbol ReactComponent when importing svg in React
- Parameter Hints in Angular Component Template
- Angular 8: support new recommended way of importing Angular Material components
- Generate debug configuration for @angular/cli
- Warn against usage of private fields in Angular Templates
- Vue.js: provide code completion for events that could be emitted by Vue components defined in project dependencies
- create-react-app: option to generate project with TypeScript
- HTML attributes and tags used as slot name for transclusion reported as illegal
- Angular @Attribute decorator not recognized
- Vue.js: support source resolution for web-types
- Angular, Native Script: provide extension to contribute to template context
- Vue.js: support web-types linked from the project's own package.json
- Editor not detecting invalid Vue.js syntax for error, "v-bind expression cannot be empty"
JavaScript. Inspections
- TypeScript / JavaScript: better simplify action
- TypeScript / JavaScript: better simplify action. If, While, DoWhile
- Inspection and quick-fix to merge variables assigned to same destructuring patterns
- Unused variables & parameters beginning with _ should be ignored
- Add an inspection to show duplicated import statements
- Feature WEB-2385 Detect accidental =+ instead of += on string variable
- TypeScript / JavaScript: better simplify action for null/undefined
- "Add 'then' clause" as a QuickFix for "Promise returned from ... is ignored"
- JavaScript: support if (undefined/null) conditions
- Add intention to convert independent `await` calls to `await Promise.all([])`
- TypeScript / JavaScript: better simplify action for typeof/instanceof
- TypeScript / JavaScript: better simplify action for equality operators
JavaScript. Refactoring
- Typescript, also allow to move Symbols between .ts and .tsx files
- 'Introduce variable' for destructuring patterns in variable declarations
- Inline JS variable with template literals should avoid producing nested template literals
- 'Inline' should handle functions with destructuring parameters
- Inspection for redundant 'return await' and 'await await' + corresponding cleanup for convert-to-async
- 'Introduce variable' can introduce spread elements when selection is over multiple array elements/properties
- Intention action to convert destructuring back to properly accesses when possible
- Inspection and cleanup for redundant await/return Promise.resolve() and Promise.reject()
- Postfix templates for destructuring
JavaScript. Templates
- Mustache Plugin: Add Support for Inerhitance
LESS
- Support align values code style setting
- Support for LESS Maps
Linters
- Stylelint support should allow inspection of JS files
- Enable support for a different tslint configuration for *.spec.ts files
Node.js
- Navigation and resolve for npm script names
- Feature Request: Semver tooltip hinting
- Add `ci` to the list of commands in NPM run configuration
- Basic Node JS template
- Docker compose: support Debug mode when "JavaScript file" field is empty
- Node Interpreter on WSL (Arch Linux): No distribution available
- per-project nvm support via nvmrc
SASS
- baseUrl in tsconfig.json is ignored when resolving Sass imports via ~file.scss
- SCSS align $variable on colon as in CSS
TypeScript
- Enable duplicate declaration inspection in TypeScript files
- [request] should show error when can't found file form tsconfig extends
- Parameter hints / parameter info / documentation support for rest-tuples with --strictBindCallApply
- Enable duplicate declaration inspection in TypeScript files for classes/enums
- Support TypeScript 3.4 non-widening literal contexts ('as const')
- Add new intention to wrap the return type of async method to a global Promise type
- Syntax highlighting in the quick navigate tooltip
- Typescript - Support for actions on literals in discriminated unions
- Enable esnext private-#-field syntax for TypeScript
- Update bundled TypeScript to 3.5
- Intention action to add explicit enum values for TypeScript enums
- Update bundled TypeScript to 3.3
- Update bundled TypeScript to 3.4
- Enable duplicate declaration inspection in TypeScript files for TS properties
- TypeScript / JavaScript: allow relative imports for files under path mappings
- Introduce smartcast highlighting similar to that we have in Kotlin
Unit Tests
- Support navigating to the test files without .test. or .spec. in the name located in the test folder next to the feature
- cucumber-js defineSupportCode is deprecated in generated code
- Jest: improve "todo" test support when using jest-circus as test runner
- Support running Mocha tests with Vue CLI
- Detect test runner if it's installed but not listed directly in package.json
- Use arrow function when generating Jasmine suite/spec with ES6 language level
- cucumber.js support only sees steps written as regular expressions
DB Connectivity
- Possibility to configure icons for custom data sources
- Make it possible to run initialization scripts
- Store password for work session
- KeepAlive setting in data source properties
- Database: "Automatically disconnect after XX minutes" Property
DB Console
- Naming on database console result tabs
DB General
- Please add an indication for foreign key with ON DELETE or ON UPDATE actions
DB Introspection
- Improve support for partitioned tables
DB Schema Views
- Show table/column comments in database tool window (tree) for all elements at once
- Show database column default value in database tool window
Data Import & Export
- [Feature Request] Download query output as markdown table
Data Views
- Full text search in database
- Easily change number of result rows
- Preview BLOB content in table documentation
- Easily show all rows of the result ignoring page-size setting
- Show SQLite ROWID field in Table Editor
Navigation & Search
- Filtering in Go-to-table navigation
- Option to restrict Navigate to Table/Routine/Class to connected Data Sources
- Within the "Recent files" popup, Ctrl-Q/Ctrl-Shift-I on table views should popup the definition, same as in the database view.
- Introduce All Data Sources and per-Data Source search scopes
SQL Completion
- suggest join conditions based on column / table name matching
- IS NULL and IS NOT NULL as combined completion items
SQL Format and Style
- SQL code style "Comma Inside Indent"
SQL General
- Mysql function LATERAL is regarded to as unknown
SQL Generation
- Db2: support xml index specification generation
- Db2: support index key expression generation
SQL Highlighting
- Inline parameter hint provider
- Inspection for inserted/deleted in MS SQL trigger
- Add inspection for using LIMIT (or similar clause) inside EXISTS call
- False positive for temporary table column reference in "json_populate_recordset"
- Missing support for UPDATE mutation syntax in ClickHouse
- PL/SQL Inspection to Report Use of GOTO statements
- Datagrip literals auto-injection
- Intention: Convert multiple equal with OR to IN and vice versa
- PostgreSQL: expressions at having not from group by or aggregate functions are green
- PL/SQL inspection to enforce named parameters when calling procedures/functions
- Highlight values in insert statement with select clause
- PostgreSQL: aggregate functions not at select result list or having clause are green
- Folding long numbers
- Inspection: Check for TOP/OFFSET
- SQL Inspection: group by and aggregate functions — bad code is green
- Missing support for IP types in ClickHouse
- Column name hints in INSERT
- Inspection for ISNULL builtin function
SQL Refactoring
- Suggest to refactor several INSERTs into one INSERT
- Intention to replace GROUP BY with DISTINCT and vice versa
SQL Resolve
- ClickHouse Kafka engine unknown