CLion starts 2016.2 Early Access Program
Great news today as CLion starts an Early Access Program for version 2016.2! Many things are planned, and some are already in there. Download the build (162.232.8) and check them out right now!
This build addresses Complete Statement and CMake improvements, introduces Doxygen support, VCS changes and custom JDK on Windows. See more details below.
Complete Statement
Together with code completion and code generation, this feature helps you develop at the speed of thought. Invoked with Ctrl+Shift+Enter
on Linux/Windows or ⇧⌘⏎
on OS X, it helps you complete many code constructs to syntactically correct ones. The simplest sample is a missing semicolon, but it’s actually much more!
With Complete Statement, CLion inserts parentheses, braces, semicolons, quotes, etc. for you where necessary, and then moves the caret in position where you can start typing the next statement automatically. Time savings are guaranteed.
Check out this blog post to learn more about it!
CMake changes
Starting from this build user symbols in CMake (like functions or macros) are available in code completion, as well as in the go to declaration/definition navigation actions. Quick definition pop-up is now also able to show definitions for user symbols. To invoke it, simply press Shift+Ctrl+I
on Linux/Windows, or ⌘Y
on OS X. The definition for the symbol at caret will be displayed:
Besides, Rename refactoring now works for user symbols in CMake as well:
Doxygen support
Starting from this EAP build CLion makes it easier to keep your code properly documented with support for the widely-known documentation format, Doxygen. You can now view the documentation parsed from your Doxygen-styled comments in the Quick Documentation pop-up:
Besides, CLion will help you rename function parameters, by updating Doxygen comments automatically. It also provides code completion for a set of Doxygen commands and parameters names, and even code generation for the function documentation in Doxygen style. Read our blog post to learn more.
Swift plugin
Have you already tried Swift plugin in CLion? Since we’re seeing growing interest in the community, we continue putting our efforts into it. Thanks to our AppCode team, Swift 2.2 language support comes today to both AppCode 2016.1.3 EAP and CLion’s Swift plugin. You can check the details in the corresponding post in the AppCode blog or see the list of fixed child issues.
VCS improvements
To make navigation through the VCS log easier, we’ve added tooltips with target commit information for arrows:
If you’ve created several new files and didn’t add them to the version control, the commit dialog will show these files so you won’t forget to add them:
Several improvements were made for patches:
- You can apply patch from the clipboard (the IDE will offer to apply the patch when it obtains focus). Alternatively, drag a file into the IDE.
- If a file has been moved or renamed since a patch was created for it, the IDE will try to figure that out or let you manually choose the file to apply the patch to
Other improvements
In debugger tool window, the Watches and Variables modes are now merged so you don’t need to switch between them. If you still prefer the old style, a new button is available in the watches toolbar to switch between the modes (new mode is on by default):
Following our custom JRE on Linux and OS X, our Windows builds are using a customized build of JDK now, which mostly includes font-rendering and focus fixes. (Just in case, build with the Oracle JRE is still available for the download.)
IdeaVim upd.
In case you’d like to use IdeaVim plugin with CLion 2016.2 EAP build, please, note that IdeaVim 0.44 is not compatible with 2016.2 EAP – install IdeaVim EAP instead. The instruction on how to obtain it can be found here.
That’s it! Download the build, try it right now and let us know what you think. Full release notes are available by the link.
Your CLion Team
Olof says:
May 18, 2016Oh no! It broke the IdeaVim plugin.
Anastasia Kazakova says:
May 19, 2016We’ll check, thanks for letting us know.
Anastasia Kazakova says:
May 19, 2016Could you please try the plugin EAP from here: https://github.com/JetBrains/ideavim
Olof says:
May 19, 2016I’d love to.
I can’t seem to find a download link though. My work box Is blocked from doing downloads so I need to send a link to a .zip or .jar to my IT department. So things as installing plugins through the GUI doesn’t work.
Anastasia Kazakova says:
May 19, 2016Please, check the zip here: https://teamcity.jetbrains.com/viewLog.html?buildId=760984&buildTypeId=IdeaVim_Build&tab=artifacts&guest=1
In general EAP builds are living here: https://teamcity.jetbrains.com/project.html?projectId=IdeaVim&guest=1. See the ‘Publish EAP build’ configuration, the ‘Artifacts’ drop-down menu
Olof says:
May 19, 2016That solved the problem.
Great work!
Anastasia Kazakova says:
May 20, 2016Glad to know!
Gauthier P. says:
May 18, 2016Complete statement and CMake improvement are nice !
Personally, what I’m looking for this build is bug correction (in particular for auto-includes in C, who sometimes are strange with “printf.h” included, cf CPP-6038, or zconf.h which is practically always included instead of unistd.h :/ ) and namespace better support in code generation (I saw that it’s WIP) more than new features.
The situation is going better and better with each release, continue like that! 🙂
Anastasia Kazakova says:
May 19, 2016Thanks for your support. We plan many bug fixes as well new features, so please stay tuned.
Bob Morane says:
May 19, 2016Doxygen support, finally! Amazing !
Marcus says:
May 19, 2016Was so excited to see that a fix for CPP-4813 was in this release. I was hoping that the endless stream of false positives at every smart pointer call site would go.
Sadly, that error is now replaced by another false positive (( This time it’s a “Applying a -> operator to MyAutopointerType instead of a pointer” – what does this error mean? Is it possible to turn it off? (I never have much luck matching false errors in the code to the list in the inspections settings)
Many thanks,
Marcus.
Anastasia Kazakova says:
May 19, 2016If I’m not mistaken it should be Type checks | Incompatible pointers. However, could you please submit a code sample to us, if not yet? We’d better fix this one as well.
Marcus says:
May 19, 2016Thanks Anastasia, when I get some time I’ll try to isolate this and file some bug reports (there are a couple of other new parser problems in here too around varargs function selection)
Matej K. says:
May 19, 2016I tried CLion, really liked it (apart from some text navigation issues on OS X, like alt+up/down not working as expected), but missing MSVC support is a dealbreaker. Clion has the potential to be truly the best cross platform IDE but that will not happen until you support microsoft toolchain.
Anastasia Kazakova says:
May 19, 2016Since we have ReSharper C++ (that is an extension for VS) MSVC is not our top-priority task, however it is in the longer list – https://youtrack.jetbrains.com/issue/CPP-819.
Matej K. says:
May 19, 2016When looking for cross platform IDE the presence of another IDE plugin does not help in any way, so I don’t really understand this argument.
I hope you’ll reconsider this.
Anastasia Kazakova says:
May 20, 2016CLion main focus is clang and GCC for now. Also Intel compiler is possible. MSVC is also used in cross-platform cases of course, but not that often we believe (at least as we saw from our research). Also there are some technical difficulties with MSVC especially, that will require additional work. So it’s postponed because the lack of the resources for now.
Matej Knopp says:
May 21, 2016Doesn’t Intel compiler on Windows use same interface as MSVC? What would make it easier to support?
I’m not sure where you did your research, but personally I don’t think I’ve ever seen a company using mingw on windows for anything serious (apart from maybe building some libraries that can not be built with MSVC)
Anastasia Kazakova says:
May 21, 2016Unfortunately, Intel and MSVC differs greatly in the part about getting compiler predefined macros. Intel has the same interface (command support) like GCC or Clang, while MSVC doesn’t support this at all. That’s why it’s not that easy.
Were these companies doing cross-platform development or were these Windows-only projects based on the Windows environment?
exim says:
May 22, 2016They (jetbrains) are in partnership with Microsoft, that’s why they won’t release a direct competitor to Visual C++ IDE.
Anastasia Kazakova says:
May 22, 2016Hm, that’s an interesting suggestion, but why do we then do Rider for example?
Roman says:
May 27, 2016@Anastasia Kazakova
This is pretty obvious: .Net is “burning platform”(c) so Microsoft would be happy if someone will build tools to popularize it.
This is not the case with MSVC, that is the most popular C++ IDE and toolchain for Windows.
That is why we will not get C++ support in Rider, isn’t it?
Anastasia Kazakova says:
May 27, 2016We do consider adding MSVC compiler support, still it requires an additional resources from the team, since it’s not that obvious right now how to support it in the current architecture. And because we have ReSharper C++, that’s not one top-priority task for now. So the reasons for not having it for now are fully internal.
RS232 says:
May 19, 2016My company is waiting for remote debugging before switching to CLION, it’s an awesome IDE.
Is there any release plan for remote debugging with GDB / gdbserver ?
Great work.
Anastasia Kazakova says:
May 19, 2016We plan to implement attach to remote process in 2016.2, however can’t promise you this for sure, since it’s only the preliminary plan.
Ryan Steele says:
May 19, 2016IdeaVim! Oh no! 🙁
Tried building and running snapshot version of plugin, still failed.
Anastasia Kazakova says:
May 19, 2016Thanks for the info. We are on it currently.
Anastasia Kazakova says:
May 19, 2016Could you please file a bug here: https://youtrack.jetbrains.com/issues/VIM with the description of a problem. We can’t reproduce it unfortunately.
Anastasia Kazakova says:
May 19, 2016Are you using IdeaVim EAP build? ee the instructions on how to install a EAP build in the Get an Early Access section https://github.com/JetBrains/ideavim#get-an-early-access
Ryan Steele says:
May 23, 2016A.K.,
Using EAP for plugin and problem still persists.
Anastasia Kazakova says:
May 24, 2016Please, submit here: https://youtrack.jetbrains.com/issues/VIM with some description how it looks like. Logs can be useful as well.
Maxim Tikhonov says:
May 20, 2016Are you planing to fix CPP-5205 in 2016.2 by a chance?
Anastasia Kazakova says:
May 20, 2016We are considering this and currently investigating how to implement it. However, can’t say for sure, since it may affect the performance greatly. So we are looking for the optimal solution.
Maxim Tikhonov says:
May 24, 2016Great, at least you are looking at it 🙂
It is really a show stopper with some libraries, such as juce.
Anastasia Kazakova says:
May 24, 2016Yes, we know it’s the main source of the problems for JUCE and Clang as well. We are on it. But without any estimation for now.
huang says:
May 27, 2016Wondering when will CPP-5201 being fixed.
Anastasia Kazakova says:
May 27, 2016Thanks for reminding us! We’ll check if it’s still actual or fixed already. Follow the issue to get the updates.
huang says:
May 27, 2016This issue has prevented me from using newer version of CLion for about half year. I’m still using CLion 1.1, which don’t affected by this.
Anastasia Kazakova says:
May 27, 2016Since there were many changes in performance during that period I’ll recommend you to try the latest EAP. You can install it along with the stable 1.1 version.
huang says:
May 27, 2016I’ve try the EAP, it still forzes. I think may be the highlighting is too slow?
Anastasia Kazakova says:
May 27, 2016We’ll check what’s going on there. Thanks.
Roman says:
May 28, 2016Is it possible to disable inspection for https://youtrack.jetbrains.com/issue/CPP-6165? I use this function call a lot, and it distracts to see that much red in ide.
Anastasia Kazakova says:
May 30, 2016I’m afraid it’s not possible to turn off. However, we’ll take a look at the issue. Thanks for pinging.
Michiel Fortuin says:
June 3, 2016Is there a way to navigate through smart pointers in debug mode? (std::shared_ptr and std::unique_ptr)
Currently i’m on full debug mode and I can’t what the smart pointer is pointing at.
Anastasia Kazakova says:
June 3, 2016Could you please share an example (screenshot)? With some description what do you expect. For me CLion shows the memory that is there pointed by the shared_ptr for example.
Michiel Fortuin says:
June 3, 2016Normal pointers to an object have a tree like structure with all it’s members and it’s values. When a smart pointer points to a object, it’s not possible to open that tree with al it’s members.
See screenshot(http://s33.postimg.org/fejsj98nz/Capture26.png) with the following code:
std::unique_ptr<System1D> s = std::unique_ptr<System1D>(new System1D()) ;
System1D* s2 = s.get();
Anastasia Kazakova says:
June 3, 2016That’s interesting. Where is the breakpoint in that case? Which debugger is it – LLDB or GDB? And is it the same for any type instead of System1D?
It looks different for me here with some other type used.
Michiel Fortuin says:
June 3, 2016I use the GDB that is bundled with clion.
I haven’t seen it any different since I use Clion, since version 1.1 I think. also with other types.
Anastasia Kazakova says:
June 3, 2016Could you please share the full sample project with breakpoint set? Maybe I’m just checking some different situation. Not sure, why it looks different.
Which OS version and CLion build are you on?
Michiel Fortuin says:
June 10, 2016I made a simple project that has the same problem
You can download it here: https://www.dropbox.com/s/7u6ig02oghs4vdd/test.zip?dl=0
I have also tested it on a ubuntu machine, that had exactly the same problem
Michiel Fortuin says:
June 10, 2016Here is my environment:
CLion: 2016.1.2
MinGW: 3.21
Cmake: 3.5.1 (the bundled version with clion)
GDB: 7.8 (the bundled version with clion)
GCC: 4.9.3
Michiel Fortuin says:
June 10, 2016I did also try it with the GDB that is in my MingW.
There it did work correctly, CLion saw the shared_ptr as a structure with for example the _M_ptr that directly pointed to my object.
Only this is an unsupported GDB by CLion, version 7.6.1.
I have also compiled GDB 7.8.2, wich is supported by CLion. I have also tried this version, and it also works. So for me it is fixed, but still something strange is happening with the bundled GDB.
Anastasia Kazakova says:
June 10, 2016We’ve recently updated the bundled GDB and introduced many fixes in the driver: https://blog.jetbrains.com/clion/2016/06/clion-2016-2-eap-debugger/ Could you please check it’s working for you in that build?
Michiel Fortuin says:
June 10, 2016Hey,
i have tried it in CLion 2016.2 EAP (build 162.844.13).
It has the same problem. The watch window doesn’t show anything behind a smart pointer.
If I use my own compiled GDB, then the problem is fixed, as is in the previous version.
Hugo Almosnino says:
October 21, 2016I don’t know if it is worth posting this here, but I have the exact same issue. I am using CLion2016.2 release and tried CLion2016.3 EAP without success. However, compiling the latest gdb fixes the problem for me.
I am using Xubuntu (Ubuntu) 16.04.1 with clang 3.8. On mac os X, everything seems to work fine.
Anastasia Kazakova says:
October 21, 2016Could you please collect logs when it doesn’t work in 2016.3 EAP using this instruction: https://intellij-support.jetbrains.com/hc/en-us/articles/206560589-Debugger-doesn-t-stop-on-a-breakpoint-Debugger-shows-Command-timed-out-What-to-do-. This would really help to isolate the problem.
Vincent says:
July 13, 2016Hi,
I’ve been trying CLion for few weeks now and it looks very promising! I do have one major problem with it though. I am working on a large project which contains many MANY occurrences of the single quote digit separator introduced in c++14 and (AFAIK) supported by all major compilers, but not CLion’s parser which triggers errors like “missing )”, “missing ;” or even “can’t resolve …” on following lines. This could be a real deal breaker as my code is large and full of them, and so far this is enough for me not to switch to CLion at the end of the trial period… Is there any plan to support this in a near future?
Thanks a lot!
Anastasia Kazakova says:
July 13, 2016Thanks for the feedback. Indeed this is not supported yet – https://youtrack.jetbrains.com/issue/CPP-2394. Feel free to upvote and share your comments in the ticket. We’ll consider this in the upcoming plans.