JetBrains News

RubyMine 2016.3: Attach to Process, MiniTest::Spec, Better UI, and More

We’re in high spirits having this year’s final update released today, and we invite you to share our joy and welcome RubyMine 2016.3! Learn more and get the newest version from our What’s New page.

Here’s the list of all new and updated items:

Ruby

  • Attach to local process — Now you can attach the RubyMine debugger to locally running processes without reconfiguring your project or manually installing gems.
  • Better Puppet support — RubyMine is configured to understand valid Puppet 4 code, including functions defined in the Puppet language. Go to declaration, Find usages, and the Rename refactoring have also been improved.
  • Remote Ruby interpreters are much easier to set up as gem synchronization is now 80 times faster.

User Interface

  • Managing Ruby versions and gems is twice as easy and quick as before.
  • The initial configuration dialog has been reworked so that now you can choose your preferred color and shortcut schemes, as well as enable/disable plugins as needed.

Version Control

  • Git & Mercurial log features better search speed and a much clearer UI.
  • Conflict resolution is now more efficient and able to resolve simple conflicts automatically.
  • Branch & commit management improved: delete a related remote branch when deleting the local one, undo your last commit, and sign-off your commit.

JavaScript

  • If JavaScript is set to use Flow, the IDE reports problems on the fly.
  • ECMAScript 6 support features the ability to convert var to const/let, and replace require() calls within import statements, as well as better support for destructuring assignments. Default-exported functions and classes are now supported in Find and Show Usages.
  • TypeScript support features better method renaming and provides a new inspection that alerts you when a statement can be shortened.

Database tools

  • More convenient data editing — Now you can edit multiple similar cells at once and submit your changes in bulk.
  • Coding assistance has become more intelligent, featuring more accurate code completion, new warnings, and other improvements.
  • RubyMine has been integrated with mysqldump and pg_dump utilities. Also, the IDE now helps you manage the version of the datasource driver and update it if needed. Learn more about new database tools and features.

Other improvements include support for MiniTest::Spec as mentioned above; a fix for the long-standing Mailers and their views issue in the Rails Project Tool Window interface; file renaming without searching for usages; sharper and less noisy flat icons; and support for React Native.

For more details please see What’s New in 2016.3, and download a free 30-day trial for your operating system. You can also check out the release notes.

Your RubyMine Team

DataGrip 2016.3 is Here!

DataGrip, our IDE for SQL and databases, has reached a new version. New features and improvements:

Database objects support:

  • Loading source code of triggers, rules, materialized views
  • Find usages inside views and procedures
  • Tracking databases changes
  • Diff viewer for source code changes
  • 'Open DDL in new console' action
  • Renaming views
  • Saving comments for procedures

Data editor:

  • Bulk submit changes
  • Multiple cells edit
  • Data conversion
  • Select next occurrence
  • Expand selection

Code insight:

  • Default fields excluding in INSERT completion
  • Unused parameters inspection
  • Set operators inspection
  • Find usages by $n references in PostgreSQL
  • USING completion in PostgreSQL
  • Navigation by statements

PhpStorm 2016.3 is Here

PhpStorm 2016.3, this year’s third and final major update of PhpStorm, is now available!

Here are some notable highlights of this release:

  • Tools and Frameworks: Support of Docker in Remote Interpreters, support of PHPSpec test framework, auto-detection and configuration of PHPUnit/Behat/PHPSpec.
  • New editing experience: Semantic highlighting for variables and parameters, completion of overridden methods and fields without function and var keyword, and improved support of PSR-0/PSR-4.
  • Code quality analysis: Project-wide PHP 7 strict types, new naming convention inspections, and improved Runtime Error Prevention.
  • IDE Improvements: Open multiple projects in one frame, Version Control improvements.

PyCharm 2016.3 is out now! Full Python 3.6 support, better Django support and more

We are happy to announce the availability of PyCharm 2016.3.

We have worked hard on bringing you a better IDE, PyCharm 2016.3 comes with these features:

  • Better Django support
  • Improved Python console
  • Full support for Python 3.6
  • Enhanced version control integration
  • And much more

CLion 2016.3 released: Modern C and C++ support, remote debug on Windows, CMake workflow changes and more

Great news: As of today, CLion 2016.3 is generally available!

In its third and final update this year, our cross-platform C/C++ IDE gets a firmer handle on modern language standards, incorporates top-voted changes in working with CMake project model, and brings lots of other enhancements. Take a closer look at these and other capabilities available in CLion 2016.3.

C++ language support

With C++ evolving quickly, it's crucial for an IDE to support modern standards. While relying on our own parser, we do our best to catch up. Version 2016.3 brings lots of improvements for C++11 and C++14.

User-defined literals

First, we've introduced support for user-defined literals. This concept of the built-in type that you can define based on integer, float, character, and string literals by adding special suffixes, became especially popular after it was included in std::chrono (as well as some other places in the Standard Library). CLion 2016.3 is not only aware of the syntax, keeping code with user-defined literals away from false-positives in code analysis, but it also understands the type and shows it in the Quick Documentation popup (Ctrl+Q on Lin/Win, F1 on macOS). It also allows you to rename such literals.

Overload resolution improvements

In order to make CLion's code analysis more accurate, we've improved our overload resolution support, which eliminates lots of false-positives. You can now catch two problems on the fly in the editor, thanks to the new code inspections:

  • Ambiguous call
  • No matching function to call

Code analysis accuracy

Static analysis in CLion helps you catch problems on the fly and write beautiful and correct code more easily. CLion 2016.3 introduced some important fixes for:

  • Reference may be null checks for one-element initializer list case;
  • Loop variable is not updated inside the loop warnings;
  • Simplify quick-fix for overloaded operators;
  • Unused variable in case of non-trivial destructors (including a fix for for the so called ‘guard' idiom);
  • Platform-dependant sizeof()-related analysis;
  • Local variable is never used check inside the sizeof() expressions;
  • Code analysis check for bitwise shift operators.

It also provides support for __attribute__(unused) and __builtin_unreachable.

C++14 digit separator

The last but not the least, is C++14 digit separator support. Not that much to say here except that it now works, but it does mean that we are open now to C++14 fixes and will look at it more closely soon. So if you have something in mind from C++14 that really annoys you in CLion, let us know.

C language support

CLion is an IDE for both C++ and C, so we've put our efforts in C language support as well, including _Generic keyword support and completion for specific C11 keywords such as _Thread_local, _Alignas, _Noreturn, _Static_assert, and _Atomic:

CLion 2016.3 also introduces support for gcc atomic builtins.

Remote debug

CLion 2016.2 introduced remote GDB debug feature for Linux and macOS. This included connecting from CLion on Linux or macOS to the application running remotely on Linux machine under gdbserver.

With 2016.3 the feature is enabled on Windows as well. Use it to debug applications run under gdbserver on remote Linux or Windows machines. Find more details about cross-platform debug in this case here.

CMake workflow changes

CMake is a core technology for CLion as it's the project model and the whole IDE relies on it heavily. While we still consider adding other build systems support (i.e. Makefiles, autotools, qmake), we want first to finalize the approach CLion takes when working with the project model. With the previous solution, our users have complained about:

  • high memory usage,
  • useless configurations building,
  • performance issues, and
  • restrictions on CMake generation directory configuration.

To incorporate your suggestions and solve the above problems, we've come up with a new approach in CLion 2016.3.

In a nutshell, CLion now builds only one selected configuration and allows setting the CMake generation directory. That also makes it possible to open projects from an already existing CMake generation folder without additional generation (right now this only works for Makefiles generator) - just point to a generation folder or CMakeCache.txt file.

There are also the CMake output logs available in CMake tool window, and the ability to add variables to CMake Cache.

Read more details in this blog post.

Resolve context

Consider the situation when some source or header file is used for several CMake targets, and their sets of variables and flags differ. It could happen that in your editor, code highlighting, find usages, refactorings, code generation and code analysis all depend on these variables and flags. How should an IDE deal with this situation? We believe that the correct way is to take into account the build/run configuration selected (that actually complies with the CMake target).

Since version 1.0, CLion has allowed using a special resolve configuration switcher in the bottom right-hand corner of the editor. However, in version 2016.3 we made it possible for CLion to switch the resolve context automatically when the user changes the build/run configuration. This makes the whole experience nicer and more comfortable. You don't have to think about these things as the IDE does it for you. Isn't that great?

If you still prefer the manual switcher, feel free to use it. However, be aware that automatic switching will then be disabled until the IDE restarts.

Semantic highlighting

When you read code, wouldn't it be great to see how the data flows through the code at a glance? Highlighting each variable/parameter with its own color appears to be possible solution. That's where the idea of semantic highlighting comes from.

Many of you have asked us about this feature in CLion, and today we are glad to say it's available in CLion 2016.3. Three simple rules are used to highlight the code:

  • Each parameter and local variable has its own color.
  • CLion tries to keep colors unique inside the body of a function or lambda.
  • Identifiers with the same name are assigned the same color.

Go to Editor | Color & Fonts | Language Defaults to enable Semantic highlighting in CLion.

Improvements for UE4 projects

Games created with Unreal Engine 4 can be developed with CLion. However, previously it took quite some effort to get a CMake project for UE4 game ready. With a third-party plugin for Unreal Engine, CLionSourceCodeAccess, that task becomes a lot easier.

Another plugin made by one of our team members, Unreal Engine 4 SDK Support, can speed up your game development by adding extra completion options for UE4 reflection specifiers, which CLion is unable to provide by default.

We've also introduced significant performance improvements for re-opening projects that have already been indexed once in CLion.

Here's a good read if you're interested in developing UE4 games in CLion.

Doxygen

Templates are the cornerstone of modern C++, and we believe IDEs should treat them specially.

CLion's Doxygen support includes generation of documentation stubs for types and functions that have parameters, return a value or throw an exception. If there are template parameters in a function, class or structure, CLion 2016.3 will generate a stub that includes the tparam tag.

VCS

Like all IntelliJ-based IDEs, CLion 2016.3 comes with a set of improvements for Version Control Systems support:

  • Undo actions for the last change that you haven't pushed yet, and the ability to restore a deleted local branch.
  • Git Sign-off commits possibility.
  • Ability to resolve simple conflicts in one click.
  • Performance improvements for filtering in Git and Mercurial log, as well as some nice UI polishing.

Other

Among other fixes worth mentioning is the Find in Path dialog, which now keeps previously used settings (scope, file name filter, context, etc.) regardless of where you call it from. This can be helpful when doing subsequent searches through the various folders in the project.

To learn more, please visit the What's new in CLion 2016.3 page on our website, view our demo and download CLion for your operating system.

Your CLion Team

IntelliJ IDEA 2016.3 GA: Java 8 and ES6, debugger and UI improvements, and a ton more

Please welcome IntelliJ IDEA 2016.3, the third update of your favorite IDE planned for this year.

The past four months have been a lot of fun! Here’s what kept us busy:

  • Refactoring to Java 8. Since Java 8 was released, IntelliJ IDEA has been providing inspections that help write correct and idiomatic Java 8. With this update, we’ve gone much further and extended our existing inspections to support non-trivial cases.
  • JVM Debugger. The debugger has been extended with Class-level Watches and JVM Memory View, a new plugin that lets you explore objects in the JVM heap during a debug session.
  • User Interface. The editor has been extended with Parameter Hints that show method parameters names for passed values that are literals or nulls. It also introduces Semantic Highlighting, a highlighting mode that uses unique colors for each parameter and local variable. The interface itself has got new flat file icons which we believe are sharper and less noisy.
  • Gradle. A new option, “Delegate IDE build/run actions to Gradle,” allows you to delegate the native IDE Build, Build Artifacts (both WAR and EAR) and Run actions to Gradle. Another new option called “Gradle Composite Builds” lets you substitute any of your Gradle dependencies with another IntelliJ IDEA project.
  • Scala. The Scala plugin adds support for Scala.js and scala.meta.
  • JavaScript. Flow-based inspections and completion; quick-fixes that convert JavaScript to ECMAScript 6; better TypeScript support; improved built-in debugger for React Native, Protractor, Stylelint, and PostCSS; and many more enhancements await.
  • VCS. The Log viewer has been additionally reworked, this time mainly to improve its ergonomics and speed. The Merge dialog now shows a Resolve icon on the left-hand side of the Editor when the IDE is capable of resolving the conflict automatically. Also, the IDE provides an interface for managing Git remotes for every repo in the project.
  • Android. The Android plugin has been aligned with Android Studio 2.2: Blueprint, Constraint Layout, better Instant Run, and APK Analyzer.
  • Database. The Database plugin now allows editing multiple cells at once, submit changes in bulk, and find usages of objects within the source code of other objects (procedures, functions, triggers, views, etc.).

Meet the new and powerful WebStorm 2016.3

Today, we are happy to announce the release of WebStorm 2016.3!

For the past four months we’ve been working hard to improve support for ES6, TypeScript, and Flow and integrate more tools into the IDE, to help you develop more smoothly and productively not only for the web but also for mobile.

WebStorm 2016.3 is jam-packed with new features! Here are the highlights:

  • Support for Flow: type errors are reported right in the editor; Flow-powered code completion
  • Support for React Native: code completion; running and debugging apps in WebStorm
  • Better TypeScript support: more precise code completion and analysis powered by the TypeScript language service; smarter Rename refactoring that understands the inheritance hierarchy
  • Set of inspections and quick-fixes for migrating the code to ES6 and a new Convert to class intention

Among other noticeable updates: integration with Stylelint, support for PostCSS via a plugin, running and debugging tests with Protractor, quick bootstrap to run and debug Node.js app in Docker, better support for ES6 destructuring, and even more!

Upsource 3.5

We have good news to share with you today: Upsource 3.5 is now publicly available! This major release brings a number of new features and improvements for a smoother, more productive experience. The list includes:

Redesigned home page

The new Home page is a lot more flexible and can be equally friendly to those who have a dozen of projects as well as to those who have hundreds of project. Plus it provides more useful information on the activity in the projects.

Public user profiles

Upsource now lets you know a little more about your teammates, and see what they’re working on, what projects they contribute to, and so on. From your own profile page, you can quickly access your own commits, reviews and other information.

Omni-search

Upsource’s search is now capable of finding files across projects, projects themselves and even people, and it has become sensitive to the context you’re in.

Revamped custom workflows

Previously introduced Custom workflows have been reworked as well, and allow a lot more flexibility.

Smarter notifications

If a code review completely slipped your mind, Upsource will now remind you to address pending changes.

Reviewers graph

With this new addition to the Analytics section you can now learn more about interactions in your projects and see what code review relationships have been built.

Annotated changes

When reviewing a branch with contributions from several people, it helps to have an annotated view of the changes, to see who wrote what.

IDE integration improvements

Take a moment and check out the Upsource 3.5 release notes! Eager to try? Download the build and don't forget to backup your current instance!

YouTrack 7.0: You Are Not Alone

Please welcome YouTrack 7.0, code-named Inception, featuring new Agile Board, Real-time updates, Gantt Chart, Multiple and Shareable Dashboards, and many other important enhancements.

The latest release brings:

  • Enhanced Backlog management
  • Agile Boards Templates
  • Issue drafts on Board
  • Enhanced Burndown and Cumulative flow
  • Project templates
  • Adding values to custom fields from anywhere
  • New color palette

Other enhancements:

  • SAML 2.0 support
  • Password strength policy
  • Revised Permission management
  • Delete user profiles
  • Issue link preview in messengers

For more details visit the What's new page. Get YouTrack 7.0 to start enjoying better user experience in addition to the awesome issue tracking your development team is already used to. The latest version is available for download or cloud registration.

ReSharper Ultimate 2016.2 is Here!

We at JetBrains have just finalized an update to the ReSharper Ultimate family, and we welcome you to download ReSharper Ultimate 2016.2 RTM!

Major highlights of ReSharper 2016.2 are the following:

  • Support for ASP.NET Core 1.0 and .NET Core 1.0 projects, which means that ReSharper now correctly resolves project references and provides its core set of features (code inspections, code completion, navigation, search and refactorings) in projects of this type.
  • Structural navigation, a new feature informally referred to as "Make Tab Great Again". You can now use Tab and Shift+Tab keys to quickly move the text selection to the next or previous code element without having to use the cursor keys, letting you quickly navigate to the next important piece of code you need to edit.
  • Go to Text navigation (Ctrl+T,T,T) lets you quickly find and navigate to any text in source and textual files. This new feature uses trigram indexing to make text search blazingly fast.
  • Warnings in solution-wide analysis help you constantly keep track of all warnings in your solution: both actual compiler warnings and ReSharper’s inspections with the Warning severity level.
  • Marking references as used at runtime to exclude them from code cleanup performed by the Optimize References and Remove Unused References features.
  • New C# typing assistant features, such as auto-replacing MethodName(.) with MethodName()., and correcting mistyped @$ prefixes for verbatim string interpolations.
  • Rearrange code improvements. For example, it is now available in interpolated string inserts, and in expressions with 3 and more operands; Greedy brace feature now works for opening brace, braces of types and namespace declarations.
  • Reworked surround templates. If you need to surround a piece of code with a template, just select the code, and type in the name of a template you need: no extra shortcuts required. In other news, a single template can now be used for for creating code (as a live template) and for surrounding existing code (as a surround template).
  • A new refactoring to move members to another part of a class. You can also use the refactoring over a region to move all region members into a new file with a name inferred from the region name.
  • New quick-fixes and context actions that help simplify string interpolation inserts, revert the order of iteration in simple for loops, or fix awaiting of a void method. In other news, you can now check all parameters of a method for null (or empty strings) with a single context action. You can even uncomment or even delete a comment via Alt+Enter.
  • Assembly dependency diagram that visualizes how assemblies are interrelated via references.
  • HTML analysis inside string literals in .cs, .js, and .ts files, which can be enabled with the context action or with a comment /*language=html*/ ahead of a string literal. You can now use the Mark HTML here action to enjoy syntax highlighting, error detection and other HTML goodies right inside the string literal.
  • Regular expression assistance in string literals can now also be enabled with a comment /*language=regexp|jsregexp*/ before the string literal.
  • JSON value helpers allow you to tell ReSharper to provide code completion or validation for your own JSON files. You can add a helper in the JSON Value Helpers options page, matching based on a filename mask and/or schema match. Custom JSON schema catalogs can also be added in JSON options.
  • Support for the <inheritdoc/> tag in XML documentation comments.
  • C# formatter improvements: new options for indenting of parentheses and code inside them.
  • Improved IL Viewer: types, members, type parameters, local variables, etc. are highlighted with distinct colors; loops in your code can be distinguished by indents and comments.
  • String interpolation suggestions, quick-fixes and context actions are now available for VB.NET. Context actions to convert a string literal to an interpolated string, or insert an interpolated argument are here as well.
  • Improved CSS support: ReSharper’s code inspections, code completion, navigation, search and refactorings are now also available for CSS variables. In addition, several fixes for better spec handling are introduced.
  • Extended TypeScript/JavaScript support including:
    • Generating code with code completion in TypeScript.
    • Improved Find Usages and Rename for union and intersection types.
    • Full support of TypeScript 2.0.0 features, including this for functions, control flow aware type guards, path mappings, optional class members, the never type.
    • Go to Declaration and Find Usages work correctly when dealing with type aliases.
  • The Process Explorer window, which was previously only available in dotPeek, provides you with the list of currently running processes, allows exploring their modules and decompiling those of them that are .NET assemblies.

ReSharper C++ 2016.2 comes with the following set of improvements:

  • Inline Variable refactoring is now available in ReSharper C++.
  • Quick Documentation pop-up appears in ReSharper C++ 2016.2. It can display documentation from Doxygen comment blocks, and even if there is no Doxygen documentation for a symbol, it will display the symbol signature.
  • New code inspections and quick-fixes: There is a new code inspection that warns you about missing include guards in your header files. As a quick-fix, it lets you automatically add #pragma once directive. Another new inspection detects a missing default case in a switch statement with a corresponding fix to add it.
  • Warnings about usages of classes and functions marked with the [[deprecated]]/__declspec(deprecated) attribute.
  • Improved C++14 support: variable templates and decltype(auto).
  • New code style preferences for #include directives in generated code.
  • Code style for default pointer initializer.
  • Automatic completion in C++ can now suggest symbols that are not included in the current file. The corresponding #include directives are added automatically.
  • You can now generate documentation comments for C++ declarators, classes and macro definitions with a context action. The comment stub can be customized by editing the ‘doc’ live template that ReSharper uses for generation.
  • When your caret is on one of the exit points of a function/loop/switch, ReSharper C++ will automatically highlight all other exit points.
  • New formatter settings for single-line functions and lambdas, blank lines around single line function definitions, line breaks before member initializer list, and space between closing angle brackets in template arguments (for conformance with pre-C++11 compilers).
  • The mock function generator now supports the Trompeloeil framework.
  • Completion, usage search and rename of symbols in Doxygen comments.
  • __RESHARPER__ macro that allows you to detect when ReSharper is parsing your source code and, if necessary, disable ReSharper's preprocessor for some code.
  • Performance improvements in indexing and code analysis.

Other tools within the ReSharper Ultimate family have received their shares of improvement as well:

  • dotCover 2016.2 lets you exclude auto-properties from coverage analysis with Hide auto-properties option. It also adds a way to filter processes from console runner to reduce unnecessary overhead by excluding child processes that are irrelevant.
  • dotPeek 2016.2 adds Assembly Dependency Diagram to the existing visual dependency analysis tools. In addition, the IL Viewer now displays code in a more readable manner.
  • dotMemory 2016.2 allows you to compare memory snapshots stored in different workspaces: that is, collected in different profiling sessions. This can be useful to check how particular changes in code affect your application's memory usage.
  • dotTrace 2016.2 Timeline Viewer adds an easy way to fold recursive call stacks to streamline call stack analysis.

Download the updated ReSharper Ultimate 2016.2 and give it a try!

RubyMine 2016.2 is out

RubyMine 2016.2, the second update in the 2016 series of releases, is out!

The following features are on board:

  • Frozen objects inspection – a new code inspection highlights immutable strings as well as any other frozen objects when modified.
  • Rbenv gemsets support improvements – a new inspection with a quick-fix option is available for .rbenv-gemset and .ruby-gemset files; any nonexistent gemset is highlighted and can be created on the fly.
  • YAML language injection – a new and long-awaited language injection option in YAML files makes possible language-specific code highlighting, completion, formatting, and more.
  • New refactoring for RSpec tests – you can now extract a code fragment into a new let statement and then replace all duplicated code fragments.
  • Better JavaScript and TypeScript – improvements include TypeScript 2.0 support; improvements in React support; new intentions for upgrading to ECMAScript 6; integration with Angular CLI and a collection of Angular 2 code snippets.
  • VCS improvements – improvements in working with VCS patches; better log viewer for Git and Mercurial; unversioned files in Commit dialog; case-only rename in Git for Windows and OS X.
  • Database tools new features – auto-scroll from Editor in the Database tool window; more context-aware SQL code completion; completion for column values in Table Editor; and more.

Please learn more about 2016.2 features on our website

TeamCity 10.0

TeamCity 10.0, the jubilee version of our continuous integration and deployment server, is now available!

Here is what’s new:

In addition to the regular way of creating projects and build configurations, you can now set up TeamCity programmatically. Create projects and build configurations in code, using TeamCity DSL based on the Kotlin programming language. Keep this code in a VCS, and TeamCity will apply all the changes to your projects and build configurations automatically, without you interacting with the web UI.

In this release another take on scalability has been made - now you can set up a two-node TeamCity, distributing the workload between two servers.

Issue trackers integration has been improved: TFS, GitHub, and Bitbucket are supported out of the box.

We've made significant progress making VCS-related improvements: cross-platform support for TFS is finally here; TeamCity works with Perforce streams now and more!

This is just a teaser - for the full list of features see our What's New and Release Notes, and download TeamCity 10.0! Remember to check the Upgrade Notes before you install the new version!

PyCharm 2016.2 is available

Today we bring you PyCharm 2016.2, now available for download. This is the second update in the series of releases planned for 2016. Its outstanding new features for professional Python, Web and scientific development work together smoothly to offer you a unique coding experience.

As usual, PyCharm 2016.2 is available as a full-featured Professional Edition for Python and Web development, or as a free and open-source Community Edition for pure Python and scientific development.

Here are some notable highlights of this release.

Python-related improvements:

  • vmprof Profiler Support
  • Pandas dataframes viewer
  • Thread suspend option
  • Function return values in the debugger
  • Package installation from requirements.txt
  • Configuration for optimize imports
  • Postfix code completion
  • Lettuce scenario outlines

Platform enhancements:

  • Support for ligatures
  • Improved inspection tool
  • Custom background image for the editor
  • Regex support improvement
  • Handling of unversioned files
  • Improvements in working with patches
  • Enhanced VCS Log Viewer
  • Database tool improvements
  • And even more

Read more about what’s new in PyCharm 2016.2 on the product website and download the IDE for your platform.

DataGrip 2016.3 is Here!

AppCode 2016.2 released: Swift inspections and intentions, Introduce Variable, Live Templates, parameter placeholders and more!

AppCode 2016.2 is here, so download and try it right now! And if you've already installed the AppCode 2016.2 RC build, then simply keep it, since it's the same as the released one.

SWIFT

Introduce Variable

One of the most important features from our roadmap, an initial implementation of Introduce Variable refactoring for Swift, is here! Extract Swift expressions from complex ones simply by pressing ⌘⌥V. Replace multiple occurrences of selected expression in one click, and select if you want to specify variable type or make the variable mutable.

Read more about this refactoring in this blog post.

Inspections and intentions

See all errors and warnings immediately in the editor when writing Swift code with SourceKit inspections integrated into AppCode and use the same fix-its as in Xcode for Swift – simply press ⌥Enter on a highlighted region to apply them.

If you happen to mistype something in your comments or code constructs, use the same approach to fix any mistake with new Spelling inspection for Swift.

Read the tutorial to learn more about inspections in AppCode

Live templates

Use Live Templates in Swift to insert frequently-used or custom code constructs into source code quickly and learn more about it in our in-depth Live Templates tutorial.

Parameter placeholders

Have parameter names and value placeholders autofilled simply by invoking completion on a Swift method or function and navigate between them forward and back using Tab/Shift+Tab.

OBJECTIVE-C

Complete Statement

Use Complete Statement (⇧⌘Enter) in Objective-C code to insert parentheses, braces, semicolons and quotes for such code constructs as if, switch or else. Quickly jump to the place where you can start typing the next statement automatically.

Learn how to use this and other types of completion

Documentation

Generate documentation comments for Objective-C/C++ methods in no time, simply by pressing /**,/*! or /// and have parameter names inserted into the comment stub automatically.

Use completion inside documentation comment to quickly insert documentation tag or method parameter name.

Benefit from the significantly improved formatting in Quick Documentation (F1) and save your time when updating your documentation – use Rename for method parameters and have them changed automatically in documentation comments.

Debugger

In debugger tool window, the Watches and Variables modes are now merged so you don't need to switch between them. If you still prefer the old style, a new button is available in the watches toolbar to switch between the modes (new mode is on by default).

Besides, performance improvements made for Objective-C debugger should make rendering large data structures, expanding large collections and stepping through the code faster and easier.

MIXED CODE

Easily rename Swift methods and method parameters used in Objective-C and quickly find their usages with ⌥F7.

VERSION CONTROL

The following changes are available for VCS support in AppCode:

  • To make navigation through the VCS log easier, we've added tooltips with target commit information for arrows.
  • Commit dialog now also shows unversioned files.
  • Support for Apply somehow interactive mode for applying patches.
  • Git/Hg log shows commit details for several selected commits.

OTHER CHANGES

  • LLVM and LLDB predefined coding styles added for Objective-C/C++.
  • Font ligatures are officially supported by IntelliJ-based IDEs. If you have a font that supports ligatures installed (e.g. FiraCode, Hasklig, Monoid or PragmataPro), then simply go to Preferences | Editor | Colors & Fonts | Font, choose a corresponding font there and select 'Enable font ligatures'.
  • You can now set any custom background image for the editor window via Find Action (⇧⌘A) | Set Background Image.
  • IDE notifications are now friendlier – they appear in the right-hand bottom corner and are grouped by subsystem.
  • The Inspection results window makes it easier to preview the corresponding piece of code immediately, apply a quick-fix or disable a group of inspections in-place.

To learn more, please visit the What's new page on our website or just download AppCode 2016.2, try it and let us know what you think in the comments section below!

Your AppCode team

CLion 2016.2 released: Remote debug, Doxygen support, operator generation, and smart CMake features

As of today, CLion 2016.2 is generally available.

This is our second release of 2016, building on the idea of releasing more often and bringing you the latest features faster. With many new fantastic tools, CLion can help you become a true C++ rockstar:

  • Inspect code more efficiently thanks to improved performance of debugger drivers and the remote debug possibility.
  • Keep your code well-documented with Doxygen support (and thus reduce maintainability costs).
  • Save time on typing, with lots of new code generation options.
  • Work with CMake project model more easily thanks to smart CMake support.

Let's take a closer look at these and other capabilities available in CLion 2016.2.

Debugger performance

GDB and LLDB debugger drivers have been overhauled to improve both correctness and performance. We thank all our users for your collaboration - all your logs, sample projects and use case details finally made this possible!

If you've ever run into 'command timeout' in CLion, we encourage you to get this build as the problem should be fixed now. Lots of other issues have been fixed as well: 'Variables' windows that wasn't updated on variable setting, problems with showing frames, incorrect debugger exit, and more. As an important result, debugger performance has seen a huge boost – up to 800x in some cases.

The supported GDB version was updated to 7.11 and LLDB updated to 3.8. Besides, Linux users can now benefit from using LLDB (as it was previously available on macOS only).

Remote GDB debug

It's finally here! One of the most awaited features has finally made its way into CLion. Run an executable on a target host under gdbserver, connect remotely using CLion remote GDB configuration, and inspect code more powerfully from the IDE's debugger. Set breakpoints to stop at, evaluate expressions, inspect variables views, change variable values on the fly, and more. For more details about the supported platforms and configuration, see this earlier blog post.

Doxygen support

Documenting code is a best practice that greatly aids code maintenance and support. Now CLion helps you with this by supporting the well-known Doxygen format.

See the Doxygen documentation preview in the Quick Documentation pop-up (Ctrl+Q on Linux/Windows, F1 on macOS), navigate to the function parameters from their description in Doxygen comments, and rely on function and function parameters rename that update Doxygen references automatically.

While adding new Doxygen comments to your code base, use Doxygen commands and function parameters completion, or simply generate the stub for Doxygen comments (it will work if your function has parameters, returns a value, or throws an exception).

More details on Doxygen support in CLion can be found in this blog post.

Code generation

Saving time on typing is really easy with CLion. The many options of its 'Generate' menu (Alt+Insert on Linux/Windows, ⌘N on macOS) have been expanded with equality, relational and stream output operators. Select if you'd like to generate in-place, as class members, use std::tie for the implementation, and more.

Generate definitions (introduced in 2016.1) got updated behavior templates. Now CLion is able to adapt to the patterns you are using in your project. It can detect and support three possible patterns:

  • declarations are located in header files, definitions are in cpp-files;
  • class/struct is located in header file only; or
  • class/struct is located in cpp-file only.

If you switch from one of these patterns to another, CLion will pick up on that and behave accordingly when you use code generation the next time. More on that here.

Another way to save time on typing is the improved Complete Statement feature (Ctrl+Shift+Enter on Linux/Windows, or ⇧⌘⏎ on macOS). It helps you create syntactically correct code constructs by inserting the necessary syntax elements and getting you in position to start typing the next statement. It can complete namespaces, classes, enums, enum classes, structs and control statements. Learn more about Complete Statement in this earlier blog post.

Smart CMake support

We keep working to make CMake easier to use in CLion. 2016.2 adds refactoring support for CMake:

  • Rename (Shift+F6 on Linux/Windows, ⇧F6 on macOS) for users symbols (like functions or macros) - all the usages will be updated accordingly.
  • Safe delete for files - related CMake commands will be updated, and a warning will appear in case of a possibly incorrect command.

To help you become a CMake guru, CLion also offers completion and navigation for user symbols, together with the new Boost-related live templates.

If you want your CMake script to detect that it's being called from CLion ( and if so, set special variables/paths or execute some additional scripts of your choice), you can now do that with the special environment variable, CLION_IDE. Environment variable completion in CMake will make the task even easier.

Code formatting

CLion allows you to configure plenty of code style rules that will be applied on the fly as you type, to help you keep code well-formatted and thus easy to read and maintain. The newest settings fine-tune wrapping for lines after function return type in the scope of a class, in global and namespace scopes, lambda capture list, and in '<<' and '>>' operators.

Also, the list of predefined code styles has been expanded with LLVM and LLDB styles.

Editor and tool windows improvements

If you a fan of fonts with ligatures (e.g. FiraCode, Hasklig, Monoid or PragmataPro), you'll be pleased to know that CLion now supports such fonts. Simply go to Settings | Editor | Colors & Fonts | Font, choose a corresponding font, and select the 'Enable font ligatures' option.

To spice up your editor's look, you can now set a custom background image. Use Find Action (Shift+Ctrl+A on Linux/Windows, ⇧⌘A on OS X), type Set Background Image, select an image and configure its settings in the dialog that appears.

If you work with long files, a new alphabetical sorting in Structure View (Alt+7) can come in handy to locate entities quicker (as opposed the reflecting the order in the original file).

Other changes

There's a lot more in CLion 2016.2:

  • Important improvements in VCS support:
    • Files not yet under version control are now shown in the commit dialog, so you'll never forget anything important.
    • The Log view for Git and Mercurial loads in the background on every change, so it's always ready when you need it.
    • Patches can now be applied from the clipboard or by simply dragging them into the IDE. There's also a Show Diff action to check the changes over your local version, and even a possibility to apply patches to files that were already moved or renamed.
    • Don't worry about case-only renames in Git for Windows and macOS, as CLion now treats these situations correctly.
  • The Inspection results window makes it easier to preview the corresponding piece of code immediately and to disable a group of inspections in-place.
  • The maximum supported version of MinGW-w64 was updated to 5.3, and Cygwin to 2.5.
  • CLion on Windows now bundles a customized JDK version with font-rendering and focus fixes from the JetBrains team.
  • Swift plugin for CLion adds Swift 2.2 support, Introduce Variable refactoring and parameter placeholders for Swift. For more details head to the AppCode blog.

To learn more, please visit the What's new in CLion 2016.2 page on our website, view our demo and download CLion for your operating system.

Your CLion Team

PhpStorm 2016.2 is Here

PhpStorm 2016.2, the second update for PhpStorm this year, is now available!

Here are some notable highlights of this release:

  • Better PHP language support: Improved type inference, strict type inspection for PHP 7, better parsing of PHP 7 and PHP 7.1, and improved getter and setter generation for PHP 7 (and higher).
  • New editing experience: Dynamic live template for smart completion of function parameters; values of class constants shown in completion lists; possibility to filter out static methods from completion list; smart type code completion; and various @throws improvements.
  • Code quality analysis: Reworked 'Unused imports' inspection for unused namespaces, functions, and constants; 'Return type' inspection; and 'Dynamic call to static method' inspection.
  • Frameworks, tools, and more: Template projects, better Joomla! support, and Xdebug On Demand for CLI PHP Scripts.

IntelliJ IDEA 2016.2 is Here

Exciting news: IntelliJ IDEA 2016.2, our second update in this year's series of releases, is out and ready for you to try. We've stayed busy the last four months to bring you these improvements and new features:

  • Debugger
    • Variables merged with Watches
    • Multiline expressions in breakpoint Condition and Evaluate and log, and Data Type Renderers
    • Try and return statements in Evaluate Expression
  • Version control
    • Log for Git and Mercurial now loads data in the background, gets a handy loading progress indicator and a shortcut to navigate to the filter field
    • Unversioned files in Commit dialog
    • Case-only rename in Git for Windows and OS X
    • Patches can now be applied from the clipboard or by dragging a file into the IDE; and IntelliJ offers help when applying patches with conflicts
  • User interface
    • Font ligatures
    • Breadcrumb for Java
    • Notification popups got compact and moved to the right-bottom corner
    • Background Image in Editor and IDE Frame
    • The Inspection tool window now displays editable code for each problem and provides controls to apply a quick-fix or suppress the inspection
  • Java
    • JUnit 5 support
    • A warning when you instantiate new objects inside equals, hashCode, compareTo or Comparator.compare methods
  • Spring Frameworks
    • Spring 4.3 core features, new inspections, and better performance
    • Improvements for Spring Security 4.x
    • Code completion and navigation in FreeMarker and Velocity templates for variables
    • Coding assistance for Spring Caching
  • JavaScript
    • A quick-fix to convert JavaScript functions to ES6 arrow functions
    • More postfix templates such as .let and .const
    • Smarter code completion for enum types
    • Better coding assistance for React; support for AngularJS 2
    • Grunt, gulp and npm tasks as Before launch tasks in a Run/Debug configuration
    • Code style preference over single quotes, double quotes or none at all
  • Database Tools
    • Code completion for database names in Data Sources and Drivers
    • Auto-scroll from Editor in the Database tool window
    • Surround With a function
    • More context-aware SQL code completion
    • Completion for column values in Table Editor
    • Resizing columns via shortcuts
    • Schema Search Path, Range types and types with TimeZone for PostgreSQL
  • Android
    • Faster Emulator
    • GPU Debugger
    • Code generation and testing for App Indexing
  • Installer
    • The Windows installer bundles our custom JDK build

Announcing WebStorm 2016.2!

Please welcome the official release of WebStorm 2016.2 , the second update for our JavaScript IDE this year. This update brings even better experience while editing and refactoring JavaScript and TypeScript code and steps up the IDE's debugging capabilities.

Here are the highlights of this update:

  • Support for the upcoming TypeScript 2.0 features.
  • Improvements in React support: coding assistance for component properties defined using PropTypes , support for non-DOM attributes and lifecycle methods.
  • Integration with Angular CLI for creating new projects and the collection of Angular 2 code snippets.
  • New intentions for upgrading to ECMAScript 6: Convert to arrow function and Convert to const or let.

In other updates, you can now take advantage of support for jspm imports, support for fonts with ligatures in the editor, improvements in working with VCS patches, and more.

Security update released for IntelliJ-based IDEs v2016.1 and older versions

We have just released a bug fix update for the latest version of all IntelliJ-based IDEs (2016.1.x). In addition to the usual functionality fixes, this update contains important fixes for two security issues inside IntelliJ Platform. The vulnerabilities, in various forms, are also present in older versions of the IDEs; therefore, patches for those are also available.

While we have had no reports of any active attacks against these vulnerabilities, we strongly recommend all users to install the update as soon as possible.

Please read more on the issues and ways to update in this special blog post.

DataGrip 2016.2 is released

DataGrip, our IDE for SQL and databases, has reached a new version.

DataGrip 2016.2 brings UI for importing CSV files, JSON and XML support in literals, regular expressions checking, dynamic SQL support, completion in tables, keyboard layout aware completion and more.

Specific DB features: Recompile packages in Oracle, search path support and enhancements in fields editing for PostgreSQL.

Hub 2.0: One Hub to Rule Them All

Get Hub 2.0 for an easier way to connect your YouTrack, Upsource and TeamCity. This update also provides a single sign-on for all your applications, and lets you comfortably manage users and permissions in one place.

Enjoy the fresh Hub 2.0 with:

  • SAML support
  • Multiple & shareable dashboards
  • Keyboard-centric dashboard
  • Backup your database
  • Per-user service licenses
  • Password strength policy
  • Read-only mode

And that's not all, as dozens of enhancements are also here for you:

  • Revised permissions management
  • Remove user profile
  • 'Undo' command on dashboard
  • UI & usability improvements
  • And much more

Want more details? Check out our What's New page, watch a short demo, or review the release notes.

Download Hub 2.0 and use it absolutely free.

ReSharper Ultimate 2016.1 is Released!

We've just finalized an update to ReSharper Ultimate and welcome you to download Resharper Ultimate 2016.1 RTM!

Major highlights of ReSharper 2016.1 are the following:

  • A variety of new context actions: ReSharper 2016.1 brings a set of new Alt+Enter actions to check method input parameters, manipulate strings, convert strings to objects, comment and uncomment code selections, and many more!
  • A new Invert Boolean Member refactoring. The refactoring can be invoked on a method, property, local variable or a parameter to invert the boolean value it returns and update other members that receive values from it.
  • Smart Paste feature that ensures the right escaping in string literals that you copy/paste around your code. It works in C#, VB.NET, JavaScript, XML, XAML and HTML files.
  • Asynchronous Find Code Issues. Starting with version 2016.1, Find Code Issues works in the background both in ReSharper and ReSharper C++. This lets you keep editing or navigating your code while ReSharper runs its analysis.
  • New WCF-specific code inspections, quick-fixes and context actions.
  • Initial support for Node.js. All ReSharper goodies you are well familiar with, like completion, code inspections, quick-fixes, and navigation features are now available for Node.js.
  • ReSharper 2016.1 is way better at understanding VB.NET 14, introducing support for string interpolation, multi-line strings, null-conditional operators, partial modules and interfaces, year-first date literals and XML documentation comments.
  • Out-of-the-box xUnit.net support. ReSharper 2016.1 provides built-in support for xUnit.net and doesn't require a separate extension to be installed anymore.
  • Support for JSON files and schemas includes the File Structure view, a "Convert JSON string to a Newtonsoft JSON.NET object" context action, JSON schema-aware code completion, inspections and quick-fixes.
  • JavaScript and TypeScript support enhancements include a reworked Rename refactoring (which can now rename files corresponding to TypeScript types), granular formatter settings, and full support for TypeScript 1.8. In addition, ReSharper starts to properly handle some bits of TypeScript 2.0: readonly properties, implicit indexers, private and protected constructors, abstract properties, and nullable types.
  • JSDoc improvements. ReSharper can now parse generics, HTML markup, and parameters with properties in your JSDoc comments.
  • Code style features keep improving. Code styles can now be applied with a single command. Reformat Code, Apply Code Style and Run Code Cleanup commands are now accessible from Alt+Enter menu when you make a selection in the editor. Another improvement covers the use of braces, which ReSharper now helps you make consistent across your code base.
  • Intermediate Language viewer is now built into ReSharper. The IL Viewer, which first appeared in dotPeek 10, is now available for drilling down library code right in Visual Studio.
  • Optimize References learns to handle NuGet references, and Remove Unused References starts to support NuGet references as well.

ReSharper C++ 2016.1 comes with the following set of improvements:

  • To-do Explorer. ReSharper C++ 2016.1 introduces the long-awaited navigation view, which lets you view, group and filter comments that contain one of the 3 default to-do patterns (Bug, Todo and Not Implemented) and any custom patterns that you might want to set up.
  • New context actions and quick-fixes. ReSharper C++ 2016.1 comes with quick-fixes to change variable type, function return type, type of unmatched out of class definition or declaration. Another new quick-fix lets you create a field from constructor parameter. We also added a set of new context actions and quick-fixes for working with #include directives.
  • The list of supported C++ language features is extended with generalized lambda captures, exception specifications, user defined literals and delegating constructors.
  • ReSharper C++ 2016.1 enhances Rename refactoring, which can now automatically rename corresponding files (both source and header) along with code symbols, and to update usages in include directives.
  • ReSharper C++ 2016.1 adds support for the Boost.Test framework to its Unit Test Runner. Please note that only Boost version 1.60 is supported at this point.
  • Code generation improvements. The Generate stream operations can now generate stubs for Boost.Serialization functions. In addition, formatting options are now taken into account when generating code.

Other tools within the ReSharper Ultimate family have received their shares of improvement as well:

  • dotCover 2016.1: Test execution in Continuous Testing for MSTest and xUnit test becomes faster with dotCover 2016.1 thanks to pre-loading test runners, and coverage filters are now supported in Continuous Testing. In addition, TeamCity now understands the output of dotCover console runner and highlights its errors and warnings in the build log.
  • dotPeek 2016.1 learns to show extension methods as instance methods and automatically highlights usages of the symbol under the caret. With dotPeek 2016.1 you can load NuGet packages and their dependencies from any online package source.
  • dotMemory 2016.1 adds browser-style Back and Forward buttons to navigate through profiling results.
  • dotTrace 2016.1 adds its Threads diagram into Visual Studio. Now, the integrated Timeline Viewer gets exactly the same diagram, which you can use to select threads and time ranges, view thread activity and filtered time intervals.
  • dotMemory Unit 2.2, our free .NET memory testing framework, improves performance of key queries (Type.Is, Interface.Is and Namespace.Like), supports open generic types in object selection, learns to select objects by wildcards using the Like and NotLike queries.

Download the updated ReSharper Ultimate 2016.1 and give it a try!

RubyMine 2016.1: Rails 5, Ruby 2.3, better JavaScript and TypeScript, and more

We're excited to announce the public availability of RubyMine 2016.1, the next major update for our Ruby and Rails IDE.

This update brings support for the latest Rails 5 and Ruby 2.3, while also improving your development experience with better JavaScript and TypeScript, enhanced VCS and database tools.

The following features are on board:

  • Rails 5 ActionCable is now supported with code completion, navigation and refactorings; Rails API can now be chosen when creating a new app; code insight is added for all the new ActiveRecord methods.
  • Stubs for Ruby 2.3 are provided: all newcomers are present in completion, resolving and documentation; safe navigator and squiggly heredocs are also introduced.
  • When creating a new Rails app, you can now choose one of the existing Rails templates.
  • Improvements in ECMAScript 6 and TypeScript support include better refactoring options, new “Unused imports” inspection, and new “Optimize imports” action.
  • Angular 2 support is now enhanced with coding assistance for event and property bindings, completion inside any data bindings, code insight for custom event handlers, and much more.
  • The JavaScript debugger now supports asynchronous client-side code, arrow functions in ES6, and Web and Service workers.
  • Running and debugging Node.js apps are now available on a remote machine or Vagrant box from the IDE.
  • VCS improvements include support for Git worktrees, and merging and comparing revisions with by-word difference highlighting.
  • Database tools bring better support for PostgreSQL, SQL Server custom types completion, table truncation option.

For more details please read the What's new page, where you can also download a free 30-day trial.

Upsource 3.0 is released

We are happy to announce the general availability of Upsource 3.0 that has matured and evolved into a one-of-a-kind Polyglot Code Review Tool. Here's what we have for you in this release.

PHP, JavaScript, Kotlin Code Insight
Code-aware navigation and static code analysis in your browser are now available for projects written in PHP, JavaScript and Kotlin.

GitHub Pull Requests
Teams that use GitHub pull requests as their way of reviewing changes can now benefit from all the smart code review features Upsource offers. Simply connect Upsource to GitHub and enjoy code insight for your pull requests. Upsource will keep comments and other activity synchronized.

Even Smarter Code Insight
To help reviewers see the impact of a new change on the overall code quality, we've added “Code Analysis Summary”. It shows what problems have been fixed with the new change, and what new possible issues the change introduced.

Build Status
In Upsource 3.0 we've added a Build status endpoint that lets you post build information from your Continuous Integration server to Upsource, so you can see the status of the build with this particular change.

And More!
We have also significantly improved IDE integration, added webhooks, new Analytics reports, reworked our permission model and simplified upgrade procedure.

Having all these tools at hand makes it a lot easier for a developer to understand, review and suggest improvements for a change.

Take a moment and check out the Upsource 3.0 release notes! Eager to try? Download the build and don't forget to backup your current instance!

You can also register to our free webinar "What's New in Upsource 3.0" to see the new features in action.

AppCode 2016.1 released: better Swift language support, code folding for Swift declarations and more!

AppCode 2016.1 is here, so download and try it right now! And if you've already installed the AppCode 2016.1 RC2 build, then simply keep using it, since it's the same as the released one.

Swift

This release delivers a lot of fixes bringing correct parsing and resolve for the following Swift constructions:

  • Types conforming to OptionSetType protocol
  • Self type
  • Variadic parameters in closures and functions
  • Typealias initializers
  • Function array types

Swift code folding

With the code folding for declarations in Swift it's now easy to focus on the most important part of your code. Use expand/collapse actions for current code block (⌘+/⌘-), all code blocks in particular Swift file (⇧⌘+/⇧⌘-) or collapse recursively complex declarations in your code. Read more about all code folding options in this blog post.

CocoaPods support

Now you can edit your Podfiles with all the keywords supported in completion, including use_frameworks, inherit!, abstract!, abstract_target and others. See all these changes in action in the short demo.

Build messages

Parsing of build messages is reworked in the release: now the Messages tool window (⌘0) displays all errors and warnings in a convenient way, skipping all irrelevant information.

Build progress messages were updated to show user-friendly descriptions for particular build phases.

Source directories management

A new context menu called Mark directory as is available for folders in the Files view. It allows you to manage indexing, code completion, code generation or navigation features by manually setting any source directory as:

  • Excluded
  • Library
  • Project sources and headers

Read how to use it and tune any of these options in your project.

C++ language support

You may know that AppCode shares the same codebase for C++ support with CLion, our cross-platform IDE for C and C++. In addition to changes made by the AppCode team, this release delivers a huge number of C++ improvements made by the CLion team including:

  • Support for variadic templates with related fixes in the function overload resolution, which together make it possible to resolve C++ code correctly and avoid many false positives in code analysis.
  • Improved auto-import for STL symbols.
  • Extended information displayed in the Quick documentation popup (F1) which now shows lambda expressions, namespace aliases and explicit instantiation, as well as hyperlinks for types in the documentation text.

Xcode compatibility

As we already wrote in our post about AppCode 2016.1 RC2, this release can be used with Xcode 7.3. The minimum Xcode version supported by AppCode 2016.1 is limited to Xcode 7.2.x.

Other improvements

  • Fixes for localization intentions in Objective-C
  • By-word difference highlighting option in Diff viewer.
  • Support for multiple Git worktrees and Checkout with Rebase Git action.
  • Right-to-left languages (Arabic and Hebrew) are now supported in the editor.
  • CoffeeScript and Stylus are bundled in AppCode.
  • Improved UI for Attach to local process... action.

To learn more, please visit the What's new page on our website or just download AppCode 2016.1 and try it!

Announcing General Availability of PyCharm 2016.1

Today we bring you PyCharm 2016.1, now available for download. This is the first update in the series of releases planned for 2016. Its outstanding new features for professional Python, Web and scientific development work together smoothly to offer you a unique coding experience.

Download PyCharm 2016.1 for your platform today!

The key features in this release include:

Python-related improvements:

  • Python 2 and Python 3 type hinting and compatibility inspection
  • Docker Compose and Docker container settings
  • Tox Support
  • Improved Support for Django Forms
  • Significant debugger improvements
  • Enhanced support for IPython Notebook

Platform enhancements:

  • Git Rebase and Rename
  • Git Worktree Support
  • By-word changes highlighting in Diff Viewer
  • Enhanced Database Tools
  • Local Terminal Improvements

Web development improvements:

  • Improvements in ECMAScript 6 and TypeScript support
  • Major enhancements in Angular 2 support
  • Support for debugging asynchronous client-side code
  • Running and debugging Node.js apps on remote hosts
  • And even more

For more details on these and other new features and changes in PyCharm 2016.1, please see our What's New page, and download the IDE for your platform.

Announcing WebStorm 2016.1!

We're excited to announce the release of WebStorm 2016.1, the first major update for our IDE this year. This update brings even better experience while editing and refactoring JavaScript and TypeScript code and steps up the IDE's debugging capabilities.

Here are the highlights of this update:

  • Improvements in ECMAScript 6 and TypeScript support: better refactoring options, new Unused imports inspection and Optimize imports action.
  • Major enhancements in Angular 2 support: coding assistance for event and property bindings, completion inside any data bindings, code insight for custom event handlers, and much more.
  • Support for debugging asynchronous client-side code, arrow functions in ES6, and Web and Service workers.
  • Running and debugging Node.js apps on a remote machine or Vagrant box from the IDE.

Other updates worth mentioning include support for AngularJS ui-router, support for CSS Custom properties, running and debugging Electron apps in the IDE, support for the JSON Schema format for smarter coding assistance, and new Convert string to template string intention.

CLion 2016.1 released: Better language support and new dev tools

Spring is almost here and so is our new release, CLion 2016.1. This is the version that was previously tagged 1.5 - we hope our new versioning scheme doesn't confuse you too much.

We're nearly done with the announced roadmap, though some CMake items are left for future updates. Many extra features have also found their way into this release. Read on for more details, and then download and try the new version right now!

C++ language support

This release brings long-awaited support for variadic templates (C++11). With the related fixes in the function overload resolution, this makes it possible to resolve the code correctly and avoid many false positives in code analysis. This also means that Qt C++11 connect calls are resolved correctly in CLion.

Auto-import has been improved greatly for symbols from STL, and the quick documentation popup (Ctrl+Q on Linux/Windows, F1 on OS X) now shows lambda expressions, namespace aliases and explicit instantiation, as well as accurately redirecting hyperlinks.

Code generation

In addition to Override and Implement actions that generates stubs for virtual member functions from any of base classes, we've added Generate definitions (Shift+Ctrl+D on Windows/Linux, shift+cmd+D on OS X) which, as you would expect, generate definitions for existing declarations. All three actions put the code in the place the caret is positioned, in case it's inside the class, or ask for a destination in other cases.

'Generate definitions' can be called up in three different ways:

  • By pressing Shift+Ctrl+D on Windows/Linux, shift+cmd+D on OS X.
  • Under the Generate menu (Alt+Insert in Windows/Linux, cmd+N on OS X).
  • As an intention action (Alt+Enter).

CMake and directories control

On the CMake side, a new feature called Reset CMake Cache is now available which allows you to clear the CMake Cache without dropping all of IDE indexes and caches.

Sometimes your project folders may contain binaries, logs, generated data or build artifacts (that you surely don't want CLion to index) or simply libraries (that you don't want to touch with refactorings). To handle this, a new feature was introduced - 'Mark directory As', which allows you to manually set directory as:

  • Excluded
  • Library files
  • Project sources and headers

Read how code completion, code generation, navigation and search features and refactorings are working for each of these cases.

The bundled Remote Host Access plugin will help you synchronize your sources with the remote host from time to time, for example if you develop on one machine but build/run on another. You can configure a FTP, FTPS or SFTP server together with the path mappings and excluded paths (to avoid downloading/uploading any files in particular).

Debug

In case you have a process running locally on your machine that you'd like to debug, you can do this within CLion. You just need to have the sources and open them in CLion, then call Attach to local process (from the Run menu or Find Action dialog) – and benefit from the built-in debugger. Processes can be searched by process name or process pid: just start typing and select a match from the list.

New languages

CLion 2016.1 comes with support for two additional languages: Python and Swift. The Python plugin is bundled into the IDE and is on by default. To easily start working on your mixed Python and C/C++ code project, install the Python SDK and point CLion to the Python interpreter for your project.

The feature set corresponds to the PyCharm IDE Community Edition and includes all the essential Python editing features, like code completion, formatting, navigation, etc., as well as Python refactorings, code analysis, and running/debugging/testing the Python part of your project. Get more details and watch a demo in this blog post.

Another addition is support for Swift language. As Apple has open sourced Swift, developers on Linux can now try the language, and for their work an IDE is essential. CLion is cross-platform, so version 2016.1 can be used as a Swift IDE on Linux. Since this is the very first stage of the Swift support in CLion, you'll need to download and install the plugin separately. If we see enough interest from the community, we may later bundle the plugin with CLion, so let us know!

The feature set of the Swift plugin comes from AppCode (our IDE for iOS/OS X development which is based on Xcode toolchain and runs on OS X only). Swift code can be properly highlighted, formatted and completed; navigation and search actions are also available. If you're looking for more high-level features, welcome the familiar Rename refactoring for Swift.

The plugin also includes Override/Implement for functions and protocols, and a built-in debugger. More details and short demo can be found in a related blog post.

Other improvements

Other fixes and enhancements in this release include:

  • By-word difference highlighting option.
  • Support for multiple Git working trees and Checkout with Rebase Git action.
  • Right-to-left languages (Arabic and Hebrew) are now supported in the editor.
  • Automatic detection of Google Test configurations on project loading.
  • Custom bundled JRE on Linux with fixes from the JetBrains team.
  • And lots more.

To learn more, please visit the What's new in CLion 2016.1 page on our website, view our demo and download CLion for your operating system.

IntelliJ IDEA 2016.1 is Here!

Today we're announcing the availability of IntelliJ IDEA 2016.1 , the first update in the series of releases planned for 2016. Download the new version today and try all the new features for yourself.

The major improvements include:

  • Debugger
    • Groovy expressions in Evaluate Expression and Watches when debugging Java
    • Easier debugging of multiple threads
    • Warns you if the source code doesn't match the running copy
  • VCS
    • Git worktrees support
    • Merging and comparing revisions with by-word difference highlighting
    • New actions for Git
  • Editor
    • Shifting statements right and left
    • Easier way of importing static members
    • RTL languages support (e.g. Arabic and Hebrew)
  • Gradle
    • Custom source sets support (this improvement fixes a great number of issues)
    • Automatic configuring EAR artifacts
  • Java 8
    • Many new code inspections that help with migrating to Java 8 method references, lambda expressions, and the Optional type
  • Kotlin
  • Scala
    • Code completion now respects the type of symbols, their definition scope and their usage, and suggests property names for case classes within pattern matching statements
  • JavaScript
    • Better coding assistance for ECMAScript 6, TypeScript and AngularJS 2
    • Easier debugging of asynchronous code
  • Spring Frameworks
    • A lot of new coding assistance features for Spring Boot. Better support for Spring MVC along with fixes for many issues reported by users
  • Thymeleaf
    • Coding assistance for user-defined dialects
    • Thymeleaf 3.0 support
  • Android 1.5
    • Profiling leaked activities
    • New lint checks
  • Docker
    • Docker Machine support
    • A separate tool window
    • Right-side panel with logs and controls to manage environment variables and port bindings

For more details, read the What's new page , where you can also download the edition of your choice.