CLion 2019.3 EAP: C++20’s Concepts, Go to Header/Source, and .lldbinit
A new CLion 2019.3 EAP (build 193.5096.27) is now available! Get it from our website, via the Toolbox App, or as a snap package (if you are using Ubuntu). A patch-update for anyone using the previous EAP build will be available shortly.
- Support for C++20’s Concepts
- Action to switch between header/source files
- Reading .lldbinit from the project root
Support for C++20’s Concepts in CLion
Concepts are one of the biggest and most important features coming in the C++20 standard. We’ve been collaborating with Saar Raz, the author of the Concepts support in Clang, and have merged his Clang branch into our custom Clangd-based language engine in CLion, and implemented a few things on top:
- Parsing and custom highlighting
- Code inspections, like Unused Concept
- Code completion
- Completions on template type parameters that are constrained
- Completion for types constrained by
- Refactorings and navigation actions for Concepts
- Go to Definition
- Find Usages
To learn more about CLion’s support for C++20’s Concepts, please see our dedicated blog post.
Action to switch between header/source files
To switch between header/source files, CLion has offered Go to Related Symbol. This IntelliJ platform action is smart as it tries to find related symbols across the whole project, but it may also cause some issues and inaccuracies when used for switching between header/source use case:
- It tries to locate the cursor in the newly opened file on a related class/function definition, which is often inconvenient.
- It tries to find the best option and just goes there without asking the user to select from the available options (this often causes issues for cases with one header plus many source files, or a .h/.inl/.cpp triple).
- Because it tries to be so smart, it might be heavy in terms of performance (as it looks through all the project symbols).
- Several heuristics exist which could be quicker and superior in many situations when switching between header/source. None of them is used by this general Go to Related Symbol action.
To address these issues, we’re introducing a new "Go to Header/Source" action:
As you can see, it either opens a file in the editor right away or shows the popup with various options. This action uses a few heuristics for the search:
- The most recent switched file is always at the top of the list.
- Next goes the file with the matching name from the same directory, if any (for example, myfile.h / myfile.cpp).
- Then, a definition/declaration-based search is performed in the background (which looks for files with definitions with matching declarations in the current file, and vice versa), and new items are added to the popup.
- Note that the search is currently limited to direct includers/includees so as to avoid interference from the same symbols from different targets.
- If no single destination is found within 500 ms, CLion shows an interactive popup where new items are added and you can select where you want to navigate to.
There’s one last thing worth mentioning. We understand that CLion users mostly use Go to Related Symbol as a Go to Header/Source action and might be accustomed to this shortcut. From now on, if you invoke Go to Related Symbol via the keyboard shortcut in a C/C++ file, and the non-default shortcut is not yet set for Go to Header/Source, CLion will ask you – only once per installation – if you’d like to remap the current shortcut from Go to Related Symbol to Go to Header/Source:
LLDB: read .lldbinit from the project root
You may find this useful to tune the LLDB debugger behavior via passing some commands and options in a .lldbinit file. Note that to enable this behavior, you have to explicitly allow it in your home .lldbinit file. Please see this for the exact commands.
Full release notes are here.
Your CLion Team
The Drive to Develop
Subscribe to Blog updates
Thanks, we've got you!
The CLion 2023.3 Early Access Program Is Open
We recently shared our preliminary plans for v2023.3, which we plan to release at the end of November. We are now happy to announce that the CLion 2023.3 Early Access Program (EAP) starts today! Our EAP lets the community participate in discussions devoted to our products and influence the developm…
CLion 2023.2.2 Bug-Fix Update
The CLion bug-fix update 2023.2.2 is now available! The fixes included in this bug-fix update are listed below. Download build 232.9921.42 from our website, through the Toolbox App, as a snap package for Ubuntu, or via a patch from inside the IDE. DOWNLOAD CLION This update’s main highlights includ…
CLion 2023.2.1 Bug-Fix Update
The CLion bug-fix update 2023.2.1 is now available! If you haven’t yet upgraded to v2023.2, now is definitely a good time to do so! The key enhancements in the major 2023.2 update include: The Beta version of AI Assistant is now available as a plugin with limited access. Streamlined integratio…