We’re launching the Early Access Program for CLion 2019.2! As usual, the EAP builds are free to use and no license is required. Get early access to the upcoming changes and enhancements and give us your feedback! We want to test it in all kinds of non-standard or unusual environments you may have set up, and collect and fix as many issues and regressions as possible. So, please try these builds and let us know what you think!
Note you can install any EAP build in parallel with a stable CLion release such as 2019.1.
As usual, you can download build 192.4205.36 from our site, use the Toolbox App, or a snap package (if you are using Ubuntu).
This EAP build polishes lots of features first introduced in the recent v2019.1, but also brings some new enhancements. The main highlights include:
- Parameter name hints
- Go to address in Memory view
- Code assistance for .clang-format files
- Move refactoring: an ongoing update
- Naming convention: new settings
- Platform changes
Parameter name hints
Parameter hints are now displayed in the editor in line with your code, to increase its readability. They can help you understand the function call without exploring the function signature (which you still can do with the parameter info tooltip or by navigating to a function declaration). They show the names of function parameters for passed arguments.
Arguments passed by non-const reference show the hint
&: to indicate the fact they can be modified:
Note: Parameter hints require Clagd-based engine running (on by default).
Hints are displayed in the following cases:
- For function calls, lambdas, constructors, initializer lists, and macro expressions.
- For argument literals and expressions with more than one operand.
- For a constructor invoked through
- Hints for initializers are not shown when the argument is used as a designated initializer.
To show/hide parameter hints in particular cases or globally, use Settings/Preferences | Editor | General | Appearance. Use Configure dialog to adjust the parameter hints settings. Or just right-click on any parameter hint in the editor:
This is a work in progress, and we are aware of several issues (for example, see subtasks of CPP-12452).
Go to address in Memory view
In CLion 2019.1, we’ve introduced Memory View. When you debug your application, it’s possible to review the memory behind the pointer by simply calling Show in Memory View (Ctrl+Enter on Windows/Linux, ⌘Enter on macOS) on a pointer in the Variables view in the debug toolwindow.
We’ve updated Memory View and added ‘Go to address’ functionality:
You can enter a hex number representing an address, a pointer variable, or call the address (
&) of any variable you are interested in. Code completion will help you with the known symbols:
We also plan to have Go to address in the Disassembly View, to navigate to the function’s assembly code for example (currently it’s implemented only for global symbols CPP-16323). Stay tuned!
Code assistance for .clang-format files
There’s one more enhancement for ClangFormat: if you have your customized .clang-format config files in the project, you can now benefit from code assistance when you update them. This includes:
- The Quick Documentation popup for options in .clang-format config files:
- Code completion for options and their values:
- Options description in the code completion popup.
- Highlighting for option values that don’t match the allowed value set.
Wondering how this works? CLion simply validates the .clang-format config YAML file against the JSON Schema that we build specially for ClangFormat.
Move refactoring: an ongoing update
We never stop working to improve CLion’s refactorings. In 2019.1, we focused on Rename and Extract refactorings and now it’s time to, err, move forward with the Move refactoring!
While the work is still in the very beginning (CPP-1166), we’d just like to briefly highlight the main improvement. The update Move refactoring dialog consists of the following parts:
- As before, you can move a member to a file (existing or new).
- Now you can also move a member to a namespace (existing or new).
- A preview for the change is available right in the dialog.
- The conflicts, like other members dependent on the one you move, are shown in the dialog.
As a nice addition, code completion helps you with select files and namespaces in the dialog:
Naming convention: new settings
CLion 2019.1 respects the naming scheme you provide. You can inherit one of the existing schemes, or create and customize your own.
The settings to describe the naming convention have been reworked to become more flexible and provide more opportunities:
First, let me assure you that all your current naming settings will be migrated smoothly from 2019.1 to 2019.2. (If you notice any issue of that kind in the EAP build, please report immediately so that we can fix it before the release.)
The rule can now address several entity kinds at a time – just add as many as you need by clicking to the entity kind field of the selected rule, or select none to specify a rule for any entity kind:
If there are several rules applicable to one entity kind in the given code location, the last one in the list will be used in practice.
Settings like Visibility (Public, Private, or Protected) and Specifier (Const or Static) are shown only for the entity kinds for which these settings can be applied. For example, for member function you can configure both, while for namespaces none of these work.
Now try the settings and please let us know what you think about the updated UI.
All our IntelliJ-based IDEs are now available with the bundled customized JBR11 (the fork of OpenJDK 11 with fixes from the JetBrains team). This transition addresses a whole bunch of issues and hopefully will make your experience with our IDEs much more pleasant.
However, builds with JBR8 are still provided on our site for your convenience. Also, as before, you can switch the boot JDK in the Switch Boot JDK dialog (use the Maintenance dialog (Shift+Ctrl+Alt+/ on Linux/Windows, ⌥⇧⌘/ on macOS) to find it).
Statistics Sending Change
Note: This change affects EAP builds only. In a stable release the data sharing will remain OFF by default.
The full release notes are here.
Your CLion Team
The Drive to Develop