CLion 1.5 EAP: quick documentation improvements

Anastasia Kazakova

Hello everyone,

After all the big changes we’ve introduced previously (variadic templates support, new code generation actions, STL symbols auto-import improvements) we spent these weeks cleaning the code. We also went through many issues in our issue tracker that are now resolved and updated them. However, we kindly ask you – if the problem you reported is fixed in one of the EAP builds, please, let us know in the comments.

This week we deliver a new EAP build 145.184 with a lot of changes in Quick Documentation (Ctrl+Q on Linux/Windows, F1 on OS X). You can download it from the confluence page, or get it via a patch-update.

Quick Documentation pop-up now includes links to the referenced types (works now for classes, structures, enums and unions). That means you can now follow hyperlinks to view related documentation. Back(<-) and Forward(->) keys are available for easier navigation. And you can also change the font size for better readability:

Quick Documentation pop-up now became more useful showing declaration modifiers, that were omitted before. You can find there:

  • function specifier (inline, virtual, explicit, final)
  • constexpr specifier (constexpr)
  • storage class specifier (register, static, thread_local, extern, mutable)
  • cv qualifier (const, volatile, mutable)
  • typedef
  • typename


There are also a list of bug fixes for Quick Documentation pop-up:

  • Incorrect representation of anonymous enum (CPP-5712).
  • Incorrect representation of template union (CPP-5833).
  • Quick documentation didn't show class for an implemented class method (CPP-5846).

Besides, a very annoying bug with Move, Pull Members Up, Push Members Down refactorings was fixed. These refactorings were previously not available in case class was not declared in the header file. Now this unnecessary limitation is removed.

Full release notes are available by the link, just as usual. And if you'd like to check all the new features coming to the next release, please, visit Preview Next Version page on our site.

The CLion Team
The Drive to Develop

Comments below can no longer be edited.

25 Responses to CLion 1.5 EAP: quick documentation improvements

  1. Anton says:

    March 2, 2016

    Starting from previous EAP the “implement functions” action (Ctrl+I) doesn’t work.

    • Anastasia Kazakova says:

      March 2, 2016

      Could you please share the code sample? Some code generation functionality was changed (generate definitions option appeared and ability to generate in-place), so probably some cases went broken.

      • Anton says:

        March 2, 2016

        Maybe I’m using it wrong, but for me, it doesn’t work at all. The minimal sample source code is present on the attached video:

        • Dmitry Kozhevnikov says:

          March 2, 2016

          There is a “Generate Definitions” action, which was separated from the “Implement” action in the previous EAP (located right next to it). Before that, “Implement functions” was responsible for two not so related actions – generate definitions for existing function declarations and also override missing pure virtual functions.

          While currently “Implement function” action is more logical and consistent with other JetBrains IDEs, we understand that it might be a bit confusing for existing users, so we’re currently evaluating user feedback about the change. Feel free to share if you like it or not.

          • Anton says:

            March 2, 2016

            If I understood its behaviour correctly, the “Generate Definitions” action just generates function definition in place. For me, that functionality is almost useless. If I have already written a function declaration, then it’s very easy to add curly braces and an implementation inside. Usually, I write member function declaration and then use “Implement functions” action to generate its definition (out of the class body, in the cpp file). Right now it’s impossible, or I just didn’t find how to do what I want.

            • Anastasia Kazakova says:

              March 3, 2016

              No, generate definitions works in-place when the cursor is located inside the class. So it does exactly what you want – go to cpp file and call it there – definition will be generated in cpp file.

  2. Christian says:

    March 3, 2016

    I’m really looking forward to this release.

    Is there a chance for some (smaller?) UI related issues being fixed?
    For example #CPP-3495 or #CPP-996 which was created in 2014.

    • Anastasia Kazakova says:

      March 3, 2016

      We’ll check if we have some time before the release for this. Thanks. If we are not able to make it now, we’ll consider it for the future updates.

      • Christian says:

        March 5, 2016

        Thank you very much

  3. wl.nicholas says:

    March 3, 2016

    Is macro replacement formatted & highlighted in this EAP?

    • Anastasia Kazakova says:

      March 3, 2016

      If you mean the quick documentation popup – yes, you can still see the macro replacement there.

      • wl.nicholas says:

        March 4, 2016

        Yes, I can still view macro definitions and replacements in the quick doc panel. However, the replacements are still not highlighted or formatted properly.

  4. Alexander Logger says:

    March 4, 2016

    Please, set the documentation font from the editor’s font (which is mono-space).

    • Anastasia Kazakova says:

      March 4, 2016

      Hopefully it will be fixed within this issue. Follow the updates pls

  5. Olof says:

    March 4, 2016

    This build seems to have improved C++ parsing. I doesn’t seem to have everything gmock/gtest squigglied anymore. I have no idea which one of your CPP issues fixed it but it seems one or a few of them hit the spot lately.

    The vi plugin crashed on me. That may not be related to this upgrade, but it has previously been stable for me. I’ll know more in a few days.

    It seems that one new problem is that in the Messages window it doesn’t always print out everything. It is as if there is a buffer that goes unflushed because it doesn’t always print out all our unit test results. I can’t reproduce it right now, but if I recall correctly, it can cut off the last line mid-line.

    Did you guys make a change to the bundled Java? I used to have the glibc version dependency problem and had to install and use my own external Java 8, but unless there is something I don’t understand (which isn’t unlikely) on how it gets resolved it no longer uses my external Java because I stopped setting JAVA_HOME and it still works.

    It still takes a really long time to update symbols after a reload of cmake files. But it now seems to take about one minute rather than 4-5. I’m wondering if it could be because of this release or maybe because I’m now using your bundled Java?

    Overall things seem zippier and with better and more intelligent code parsing.

    I’m using X-Windows btw. There seems to be some idiosyncrasies with that. They are cosmetic so I haven’t bothered reporting. For instance, sometimes moving a window doesn’t “take”. It pops back to where it was and I have to move it again. I never have to do that more than twice. Another thing which may or may not be related to X is that if I’m in the debugger and step through code quickly it is as if I catch the GUI in a short period in time where my F10 command (Visual Studio mapping) gets sent to the main window instead of the debugger and it opens a menu instead.

    • Anastasia Kazakova says:

      March 4, 2016

      > Did you guys make a change to the bundled Java?
      Yes, we’ve fixed this problem.

      Thanks for the feedback. We’ve introduced major changes in the parser/resolve that could affect the performance in a good way, so this could be it.

      Feel free to log all the issues to our tracker. Not sure what’s happening with VIM plugin and Messages, some details will be appreciated.

  6. Roman says:

    March 8, 2016

    Debugging remains problematic in Clion, it is slow, shows wrong variable values (when gdb-python pretty printers are used). Do you plan to improve debugger for 1.5 release?

  7. Nick says:

    March 16, 2016

    Is there any plan to implement automated documentation for c++ functions?
    With that I mean automatic text generation of

    * @param

    blocks on the top of functions.

  8. jay says:

    March 21, 2016

    There is documenation configuration for Python but can Quick Documentation be configured for C++? I have installed documentation as manpages but failed to convince CLion to display them.


Subscribe for updates