Early Access Program News

CLion 2018.3 EAP: clangd-based navigation and search, CPU Profiler and remote mode improvements


Please welcome a new CLion 2018.3 EAP (build 183.4284.40)!

As usual, a patch-update will be available shortly for those using the previous EAP build, and you can also use Toolbox app or snap packages (in the case of Ubuntu) to get this build.

No license is required and the build is free to use, but it will expire within 30 days of the build date.

Download CLion 2018.3 EAP

Clangd-based navigation and search

In CLion 2018.2 we’ve introduced an experimental complementary language engine, based on Clangd. Initially it worked only as an error annotator, providing code errors and warnings in the editor. Now it’s also used by CLion for some navigation and search actions:

  • Go to declaration (Ctrl+B on Win/Lin, ⌘B on macOS) / go to definition (Ctrl+Alt+B on Win/Lin, ⌥⌘B on macOS).
  • Highlighting references under caret.
  • Quick Documentation popup (Ctrl+Q on Win/Lin, F1 on macOS)
  • Find Usages (Alt+F7) – it uses Clangd-based engine to search through the files opened currently in the editor and CLion’s own engine for all the other usages.

CLion’s own engine is still in use for all the actions not listed above and also for the cases when Clangd-based engine fails. Besides, CLion adjusts the results it gets from Clangd in some cases (for example, it goes to the constructor not class declaration, when navigating from the constructor call).

Clangd-based language engine in CLion is turned on by default on all platforms. You can change the default configuration in Settings/Preferences | Languages & Frameworks | C/C++ | Clangd:
Note that if you’d like to turn off the Clangd-based engine completely in CLion, you need to uncheck all the options in this dialog.

Navigation in CPU profiler, fixes for remote and more

Jump to Source action in CPU Profiler tool window now works not only on Linux, but on macOS as well:

Remote mode was improved in this build thanks to a few important fixes delivered:

  • An ability to exclude paths when synchronizing the sources to the remote machine for remote toolchains in CLion (CPP-14275).
  • Different deployment configurations are now used for different toolchains (CPP-14014). This also allows to copy remote toolchain correctly (CPP-14626).

Full release notes are available here.

Your CLion Team
The Drive to Develop