CLion 2019.2 EAP: Debugger Improvements, Syntax Highlighting for 20+ Languages, and Shell Script Plugin

Hi,

A new CLion 2019.2 EAP (build 192.5118.29) is now available. Download the full build from our site, install it via the Toolbox App, or use a snap package if you are using Ubuntu. A patch-update for those using the previous EAP build will be available shortly.

DOWNLOAD CLION 2019.2 EAP

Debugger

When debugging your application, you can use the GDB/LLDB console directly from CLion. Now, command completion works when you press Tab or Ctrl+Space. Note that completion is provided by GDB or LLDB, respectively, while CLion simply gives you access to them.

For GDB:
gdb completion

For LLDB:
lldb completion

This build also introduces new, clearer icons for line breakpoints:

  • breakpoint_set
    Line breakpoint out of debugging session (i.e. the session hasn’t started yet).
  • breakpoint_resolved
    Line breakpoint is successfully resolved by GDB or LLDB using the provided debug symbols, and can be hit during the execution.
  • breakpoint_invalid
    Line breakpoint is invalid, which means it can’t be resolved by GDB or LLDB and will never be hit. This might happen when the breakpoint is actually located out of the executable code or some debugging symbols are missing. CLion now detects such situations accurately and updates the icon on the fly (for example, when you load the proper debug symbols).

Naming Convention: Leading_upper_snake_case

We keep improving the naming convention settings (available via Settings/Preferences | Editor | Code Style | C/C++ | Naming Convention). We’ve added a Leading_upper_snake_case style, which capitalizes only the first letter in the snake_case name, leaving the rest in lower case. Now it’s available along with the somewhat similar Upper_Snake_Case style and others.

Syntax highlighting for over 20 different languages

In your C++ projects, you may also have some code in other languages such as Rust, PHP, Python, Ruby, or Java. For some of these, CLion offers full-featured support, including:

  • Bundled support for JavaScript, XML, HTML.
  • Bundled support for Python.
  • A plugin for Rust.

And yet in some situations no support is available. Well, we are now adding syntax highlighting for over 20 different programming languages, and it just works out of the box – no additional configuration required!

If you occasionally have to look through code written in a different language that is not supported in CLion, the IDE provides you with a friendly way to do it. Please note, however, that we don’t plan to extend the support for these other languages beyond syntax highlighting.

ruby_sample

This support is based on TextMate grammars. The list of languages is available in Settings/Preferences | Editor | TextMate Bundles, and you can even add additional languages there. Of course, where more profound support is provided through the IDE itself or a plugin (such as Rust), it’s prioritized over a TextMate Bundle.

Shell Script Support

This EAP build bundles a Shell Script plugin, which enables rich editing support for shell scripts, including word and path completion, and even textual Rename:
schell_script

The full release notes are available here.

DOWNLOAD CLION 2019.2 EAP

Your CLion Team
JetBrains
The Drive to Develop

This entry was posted in Announcement, Early Access Preview and tagged , , , . Bookmark the permalink.

22 Responses to CLion 2019.2 EAP: Debugger Improvements, Syntax Highlighting for 20+ Languages, and Shell Script Plugin

  1. Ernst says:

    auto-completion in gdb console is a nice news,
    but is there still no shortcut for a switching to gdb conlsole quickly?

  2. Tano says:

    shell script is unusable, it constantly throws exception, I opened CPP-16542

  3. Tano says:

    Sorry Anastasia, but I started to hate CLion, please improve the performance.
    I have a very very small project, (20 lines!!!), I press Enter and I get lag while doing it, sorry this is not acceptable. It’s a very simple project, not some complicated stuff…really…I have i7 and 32GB ram…we are in 2019.
    I updated the small video on CPP-9819.

    • Anton says:

      I totally agree. I really appreciate your hard work but this is really disappointing. You said you were going to work on performance improvements during this release cycle and this is the third EAP with bells and whistles but without any notable improvement. Text editor shouldn’t freeze on typing. At least on i7 and i9. Code analyzer shouldn’t load one CPU core up to 100% for a few minutes only because I switched to the tab with 2000 LOC file. I can understand that you have limited manpower but please, don’t ignore performance issues.

    • Anastasia Kazakova says:

      Please attach your project or a CPU snapshot, this is definitely a bug to investigate. Thanks

    • Olof says:

      Performance has gotten better since I started using CLion. But it bothers me that work is being done on anything other than performance optimization. It should be priority 1, 2 and 3.

      I’m beginning to wonder if Java is suitable for complex latency sensitive apps

      • Tano says:

        I perfectly agree, perhaps some parts should be written in a faster language. Although I love this IDE, the typing lag is the most obvious and the most disturbing part of CLion.

        • Anastasia Kazakova says:

          The typing lag is mostly caused by the fact that the IDE requires resolve on typing in many cases (unlike, for example, for Python or Java), and it takes time. Currently, we work on the light-weight PSI, which we hope can resolve this issue.

      • Anastasia Kazakova says:

        It is priority number one. I can assure you.

        We are not covering the changes in the weekly EAP posts, as it’s a much bigger work that is in progress. We plan some separate blog post on performance improvements and our current ongoing work, hope it will make the situation clearer.

        Java is not the reason here. It’s mostly the problem of fitting C++ code resolve into IntelliJ Platform architecture. We are currently working on some lightweight PSI which should help a lot in that direction. Also, clangd-based engine helps in quite many cases.

  4. Kira Backes says:

    We’ve tested the new Leading_upper_snake_case in our C++ dev team, it works fine, now we can finally activate the naming inspection and it works! Thank you! :)

  5. Jeff Young says:

    The last couple of EAPs “go away” frequently when trying to navigate between a function definition and a declaration. It’s usually when compiling is going on in the background, but not always. The temporary hang is between 30 seconds and several minutes, after which I get a bug report but the app then carries on. (I have submitted the bug reports.)

    Is this a common experience?

  6. Steffen says:

    When having multiple git repositories in the project, the new “update info” view just shows the complete log. Is this intended?

    • Dmitriy Smirnov says:

      Update info now shows part of the log – commits fetched by the update. It does not depend on the number of repositories.

Leave a Reply to Kira Backes Cancel reply

Your email address will not be published. Required fields are marked *