Great news – CLion 2017.2 EAP starts now!
We had a lot of work planned for this iteration, and especially one thing that was nearly ready for 2017.1 but got postponed in the end as it required more thoughtful development and testing. Today as a part of the 2017.2 EAP (build 172.1572.3), we give you Clang-Tidy integration!
CLion 2017.2 EAP started with the Clang-Tidy integration. Clang-Tidy warnings are shown the same way as CLion’s own built-in code inspections. Similarly you can use Alt+Enter to apply Clang-Tidy quick-fixes where available.
This EAP build fixes some issues related to this integration:
CLion used to continue highlighting the code and showing the warning for a couple of seconds after the quick-fix was applied. This is partially fixed now. The problem only left for the cases when the fix and the warning are located in various lines, or when the user calls Undo for a quick-fix.
We continue our work on performance improvements in CLion. This EAP build brings fixes for laggy Enter and Backspace handle on some projects (when, for example, cursor enters a new block, moves to a new line and causes the code indent).
C++17 is just around the corner. Besides, CLion now includes bundled CMake 3.8, that supports set(CMAKE_CXX_STANDARD 17) command to set C++17 for the project. Therefore we’ve added C++17 option to the list of standards in the New Project… wizard:
The corresponding set command will be added to CMakeLists.txt generated for your new project in this case.
A new CLion 2017.2 EAP is now available (build 172.2953.14).
C++ code analysis
CLion supports va_* macros in a more accurate way now. This means less false-positive code analysis, like for example, incorrect unused code inspection (CPP-9748).
Besides, CLion now works more accurately with GCC and Clang compiler predefined macros.
After optimizing the parsing of the compiler predefined macros in CLion, some performance improvement during the reindexing was achieved.
CMake reload can take significant time, and sometimes you decide to cancel when it’s already running (to introduce additional changes or just to postpone this time-consuming operation). It’s now possible in CLion – Stop button is available in the CMake tool window:
If you enable the auto-reload function, then currently running CMake command will be stopped automatically, in case you continue typing in CMake file, and the new one will be scheduled.
Besides, CLion now prints [Finished] in every output tab for each CMake configuration being reloaded and finished (not cancelled):
This webinar will provide an introduction to developing large C/C++ projects using the package modularization and reuse offered by Conan package manager, and the power and convenience of the CLion IDE, using the CMake build system.
It will be demonstrated how to consume existing packages of popular C and C++ libraries like Poco, Boost, OpenSSL and ZLib, easily from the CLion environment. Then, how to create package will be explained, with a special focus on continuous development of packages from your own, evolving source code.
Join us Wednesday, July 11th, 4pm – 5pm GMT (6pm – 7pm CEST, 9am – 10am PDT).
Diego’s passions are robotics and SW engineering and development. He has developed many years in C and C++ in the Industrial, Robotics and AI fields. Diego was also a University (tenure track) professor and robotics researcher for 8 years, till 2012, when he quit academia to try to build a C/C++ dependency manager and co-founded a startup. Since then he mostly develops in Python. Diego is a conan.io open source C/C++ package manager co-creator and maintainer, now working at JFrog as SW engineer and C/C++ advocate.
Luis Martinez de Bartolome
Luis is a full stack software engineer with more than 13 years of experience. He has spent the last 5 years mitigating the pains of C/C++ development flows & dependency management. Co-founder of Conan and a proudly Frog 🐸, today spends his time developing Conan and its ecosystem, playing ukulele, growing hydroponic lettuces and enjoying his two kids.
It’s been a while since C++Now 2017 wrapped up in Aspen. As it was my first C++Now, I took some time to think it over before sharing my impressions. By the way, there are other trip reports: by Ben Deane, Michael Park and Odin Holmes.
In a few words, it was a fantastic opportunity to dive into cutting-edge C++, and hopefully survive. That means not only successfully escape from a major storm in Denver and Aspen’s snowy weather, but also meet dozens of clever people and dive into crazy ideas and libraries, that will become your everyday C++ routine tomorrow.
One exceptional thing about C++Now sessions, which makes this conference unique in comparison to CppCon, Meeting C++ and others, is a drive for discussions and collaboration. JetBrains is a C++Now video sponsor this year and, together with Bash Films, we make sure you’ll get high-quality video content from this year’s conference. Still, many valuable points will unfortunately be lost as they could not be recorded. Only there, high up in the Aspen mountains, could you experience:
Live discussions during the talks
Library-in-a-week activity and work on proposals going on day and night (sometimes literally!)
C++ developers come to Aspen to contribute to the language, work on libraries that may later be included as a part of the standard, evaluate various proposals implementations, and suggest bright and revolutionary ideas and solutions to other developers.
For us, a tool vendor, this was a great opportunity not only to get a glimpse into how the language is evolving, but also to understand how to enhance our tools now so that they best work for C++ developers tomorrow.
A new CLion 2017.2 EAP build (172.2827.9) is now available.
From C++ side this build includes some exception fixes and bundled CMake 3.8.2. Besides, there is a bunch of improvements to VCS support in CLion.
Commit messages are part of a team communication process, so it’s important to keep them easy-to-read and expressive, and formatting is quite important here. You might want to have a blank line between subject and body, or set a maximum text length, and for sure check the spelling in the comments. Reworked and moved to a separate page under Version Control, Commit Dialog settings allow you to do exactly that:
Commit messages inspections are accompanied by quick-fixes to reformat the text.
If you committed your changes but not pushed yet and would like to change the commit message, you can do this with the new Reword action:
For GCC5/6 CLion failed to resolve STL containers with nested template type correctly in case “using namespace std” was used. That caused incorrect no matching function and other errors when accessing container’s member.(CPP-8638, CPP-9412, etc.). Please.
note, for MinGW-W64 & GCC 6.3 the problem is still there (CPP-9796).
Incorrect “Declaration of const variable requires an initializer” in case of a static const field (CPP-1145) or constexpr (CPP-9340).
Out of memory issue (regression) when the code uses boost::property_tree.
Git Revert command is now available in the Git Log view. Select any number of commits and call Revert from the context menu.
And there is more! Check the full list by the link.
A new early access build for CLion 2017.2 (172.2273.4) is available.
While inspecting arrays during debug, you might notice there was a limit of 50 elements shown by default. To see more user had to explicitly expand the next 50 elements. This was done to reduce performance issues. However, sometimes a few elements with big indexes are needed, and it’s quite tiresome to click expand several times in a row.
In order to provide a solution to the problem, we’ve added a registry value to control the default number of composite value’s children:
A few other issues were resolved in CLion’s GDB driver:
Debugger showed command time out when trying to attach to a non-existent local process.
Backslashes in program arguments on Windows were escaped incorrectly.
Conditional breakpoints were disabled because of the GDB bug (CPP-9336). A workaround was implemented in CLion.
Includes paths on Windows
Includes paths on Windows were fixed to support absolute paths, paths with multiple backslashes and paths related to the root of the working disk.
CLion checks the configured toolchain by compiling a simple program and providing you with the results under Preferences/Settings | Build, Execution, Deployment | Toolchains. CLion now shows the diagnostic for the cases when errors happen. Click error label to open CMake Errors window:
Besides, CMake 3.8 was bundled into CLion.
Code analysis improvements
This build includes a couple of fixes for various code analysis false-positives:
Error in analysis of full specializations from variadic templates (CPP-7313)
Incorrect analysis of function that take parameter pack arguments and non-template arguments (CPP-7336)
Incorrect “Call to … is ambiguous” for member function vs. function in foreign namespace (CPP-9240)
Find in Path enhancements
In CLion 2017.1 a compact popup window with immediate preview was implemented for Find in Path. Now it has a left gutter, where you can see navigation icons and local change markers:
There were some requests to keep this popup window visible, even after the user switch focus back to the editor. So now to close the popup you have to press Esc.
Better HiDPI support on Windows
Instead of scaling IDE’s UI according to the global settings (primary display), CLion now provides each display with its own scale factor. This is done for Windows, Linux support is coming. Also font settings are adjusted automatically based on the display resolution.
We’ve just returned from ACCU 2017 in Bristol, UK. Being amazed by the event I decided to share some notes here, and hope Phil will also jump in and share his impression. There are also reports by Vittorio Romeo, Simon Brand and Samathy Barratt which you might find interesting.
JetBrains booth and my talk
We’ve decided not to break the good tradition started in 2015 and as usual had a booth for Wed-Fri. We’d like to thank everyone who came for a chat or just to say hello:
CLion is two years old—a big toddler! Over this time we’ve boasted an impressive user base growth of almost 400%, which has given us all the confidence in the world to continue and improve.
Remember what CLion was capable of when you joined us? Some things have stayed unchanged, for example CLion is still CMake-only, even though CMake smart support has evolved greatly. But the rest has been impressively enhanced:
Support for C++14, initial support for C++17, and C11 keywords
Code generation options for operators and lots of new and improved code inspections & intentions
Microsoft Visual C++ compiler experimental support
Clang-Tidy (2017.2 EAP)
LLDB on Linux and macOS, remote GDB debug, and attach to local process
Google Test and Catch
Updated Go plugin, plugin for Swift (covering Linux), Remote Host Access, and others
Did I leave out your favorite feature? Most likely I did.
It’s a good time to update our Quick Tour Video now. Phil Nash, our developer advocate, did a great job and prepared a new recording. Check this fascinating monster story:
What do you expect from CLion in the next two years? Share in the comments below! We’re listening and it sure will be interesting to see how things develop 😉