CLion 2018.3 EAP: remote development on Windows, high-contrast theme and other platform improvements

Hi,

The new CLion 2018.3 EAP (build 183.3795.17) is now available!

If you have the previous EAP build installed, simply get a patch-update right in the IDE. Or use Toolbox App or snap packages (in the case of Ubuntu) to get this update. 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

Remote toolchain support on Windows

CLion 2018.3 EAP introduced initial remote development support. Now it’s possible to use Windows as a local machine, in addition to Linux and macOS.
remote_host_windows

A few things are worth mentioning:

  • Because of the IntelliJ platform issue with case sensitivity, you need to add property (Help | “Edit Custom Properties…”) idea.case.sensitive.fs=true, restart CLion and rebuild the project index (File | “Invalidate Caches and Restart”) after that.
  • On Linux and macOS CLion uses rsync to synchronize sources. On Windows CLion relies on tar and CLion’s own Remote Host Access utilities, and it seems to be slower than native rsync on macOS and Linux (CPP-14440).

High Contrast Theme

The new high-contrast theme implemented in IntelliJ Platform has finally landed in CLion EAP. You can access it via Settings/Preferences | Appearance & Behavior | Appearance | UI Options (to switch the whole IDE) or via the Ctrl+` shortcut (to switch the editor only).
high_contrast
The work is still in progress and we would appreciate your feedback very much!

IntelliJ Platform improvements

There are more enhancements in CLion 2018.3 EAP coming from IntelliJ Platform. They include:

  • Git submodules support: repository with submodules are cloned recursively, Diff, History, and Conflict resolution now work for submodule folders, and updating the project correctly updates the submodules (IDEA-64024).
  • A new GitHub Pull Requests tool window was added to view all pull requests from your GitHub repository as a list inside the IDE.
  • A new experimental Activity Monitor (Help | Activity Monitor) was added to show how much CPU the subsystems and plugins (both built-in and additionally installed) are consuming.
  • Plugins UI: Preferences/Settings | Plugins page got a fresh look, making it easier to manage, install, uninstall, and update the plugins:
    plugins_ui_settings

Full release notes are available by the link.

To catch up on all the new features in v2018.3, check out the previous EAP blog posts:

CLion 2018.2.5

Besides, CLion 2018.2.5 bug-fix update (build 182.4892.24) is now available! It addresses an issue with Replace in Path / Find in path dialogs losing focus (IDEA-198588), a problem with GitHub token creation (IDEA-198120) and deleting with Backspace issue (CPP-13177). Full release notes are available here.

Your CLion Team
JetBrains
The Drive to Develop

This entry was posted in Announcement, Early Access Preview and tagged , , , . Bookmark the permalink.

52 Responses to CLion 2018.3 EAP: remote development on Windows, high-contrast theme and other platform improvements

  1. haha says:

    In Windows 10, can’t download C++ standard library header files,
    file content is empty, shows:

    File includes inline header (csdio, iostream, map, vector…and so on) with length (-1 characters) that execeeds configured limit for C/C++ (500000 characters). Header is not parsed.

    But not the C++ standard library header file can be downloaded.

    • Anastasia Kazakova says:

      You mean when you set the remote toolchain?

    • Vasily Romanikhin says:

      It seems you have met this problem: https://youtrack.jetbrains.com/issue/CPP-14464.

      The reason of the issue is a bug in our tar utility which works incorrectly with symlinks.
      As workaround you can try: go to Find Action (Shift+Ctrl+A) > Registry and disable clion.remote.compress.tar option, then reload CMake.

      Also could you please leave a description of you remote environment (OS version, compilers) in the ticket. Thanks in advance.

      • haha says:

        My environment:
        local machine: Windows 10 1803
        remote host: vmware virtual machine, Ubuntu 18.04 in docker
        gcc version: 7.3

        I will try this workaround, thank you!

  2. okman says:

    When will the stable 2018.3 version be released?

  3. Rathkan says:

    There appears to be a problem with this EAP build; on patching I got this error on CentOS 7.4:

    “java.lang.UnsatisfiedLinkError: /clion-183.3283.6/bin/libdbm64.so: libdbusmenu-glib.so.4: cannot open shared object file: No such file or directory”

    I fixed the problem by installing “libdbusmenu” using the command:

    “sudo yum install libdbusmenu”.

  4. Signer says:

    According to new Activity Monitor cidr.lang.preprocessor consistently takes 50-70% of CPU time when parsing UE4 source files – is there some workaround for this, or will it be fixed soon?

  5. Luca Spinazzola says:

    Any code insight updates for kotlin using the multiplatform plugin?

    • Anastasia Kazakova says:

      The team was recently busy with KotlinConf, so didn’t have enough time to prepare an update, but should be ready quite soon.

  6. Gabriel S says:

    Hi
    I would like to use the remote compilation server feature (from Windows 10 to Ubuntu Server 16.04 LTS) but the CMake project loading seems frozen at the end of project loading because background task “Loading CMake project…” never ends. The IDE is usable, I can write code but no way to compile or run anything because the step is not completed.

    I tried with a small example project from https://cmake.org/cmake-tutorial and the same step is quite long but at the end it prints “[Finished]” and i can compile and execute ! So I think my config is ok

    My Toolchains config is:
    Remote Linux Host
    Credentials: Key pair OpenSSH or PuTTY
    Debugger: Remote Host GDB

    But with my project, which is really big (several MB of code) this step never ends. My deduction is that CLion wants to load all symbols before consider the loading finished (and si print the “[Finished]” tag).

    I noted that it is downloading several files paths****.tar.gz files but they look empty (0 kB)

    Can you have a look ?
    I think the symbols loading should not block the project loading, maybe a few adjustments do do 😉

    Thank you
    Gabriel

    **Cmake log**
    — Configuring done
    — Generating done
    — Build files have been written to: /tmp/tmp.kYWky6A19U/cmake-build-relwithdebinfo

    **File Transfer log**
    [22.10.2018 07:05] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8)
    [22.10.2018 07:05] Download file ‘/tmp/tmp.kYWky6A19U/cmake-build-relwithdebinfo/CMakeCache.txt’ to ‘C:\Users\user\Documents\server\cmake-build-relwithdebinfo\CMakeCache.txt’
    [22.10.2018 07:05] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8) completed in less than a minute: 1 file transferred (315.6 kbit/s)
    [22.10.2018 07:06] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8)
    [22.10.2018 07:06] Download file ‘/tmp/clion.dir.archive.tar.gz’ to ‘C:\Users\user\AppData\Local\Temp\paths8.tar.gz’
    [22.10.2018 07:06] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8) completed in less than a minute: 1 file transferred (5.2 Mbit/s)
    [22.10.2018 07:06] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8)
    [22.10.2018 07:06] Download file ‘/tmp/clion.dir.archive.tar.gz’ to ‘C:\Users\user\AppData\Local\Temp\paths10.tar.gz’
    [22.10.2018 07:06] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8) completed in less than a minute: 1 file transferred (9.8 Mbit/s)
    [22.10.2018 07:07] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8)
    [22.10.2018 07:07] Download file ‘/tmp/clion.dir.archive.tar.gz’ to ‘C:\Users\user\AppData\Local\Temp\paths8.tar.gz’
    [22.10.2018 07:07] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8) completed in less than a minute: 1 file transferred (132.5 kbit/s)
    [22.10.2018 07:07] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8)
    [22.10.2018 07:07] Download file ‘/tmp/clion.dir.archive.tar.gz’ to ‘C:\Users\user\AppData\Local\Temp\paths5.tar.gz’
    [22.10.2018 07:07] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8) completed in less than a minute: 1 file transferred (74.3 kbit/s)
    [22.10.2018 07:07] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8)
    [22.10.2018 07:07] Download file ‘/tmp/clion.dir.archive.tar.gz’ to ‘C:\Users\user\AppData\Local\Temp\paths3.tar.gz’
    [22.10.2018 07:07] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8) completed in less than a minute: 1 file transferred (9.9 Mbit/s)
    [22.10.2018 07:07] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8)
    [22.10.2018 07:07] Download file ‘/tmp/clion.dir.archive.tar.gz’ to ‘C:\Users\user\AppData\Local\Temp\paths8.tar.gz’
    [22.10.2018 07:07] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8) completed in less than a minute: 1 file transferred (1.1 Mbit/s)
    [22.10.2018 07:07] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8)
    [22.10.2018 07:07] Download file ‘/tmp/clion.dir.archive.tar.gz’ to ‘C:\Users\user\AppData\Local\Temp\paths4.tar.gz’
    [22.10.2018 07:07] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8) completed in less than a minute: 1 file transferred (2 Mbit/s)
    [22.10.2018 07:09] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8)
    [22.10.2018 07:09] Download file ‘/tmp/clion.dir.archive.tar.gz’ to ‘C:\Users\user\AppData\Local\Temp\paths5.tar.gz’
    [22.10.2018 07:09] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8) completed in less than a minute: 1 file transferred (95 kbit/s)
    [22.10.2018 07:10] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8)
    [22.10.2018 07:10] Download file ‘/tmp/clion.dir.archive.tar.gz’ to ‘C:\Users\user\AppData\Local\Temp\paths10.tar.gz’
    [22.10.2018 07:10] Download from ssh://user@server:22 (a54e68e7-ae26-45e0-841f-a77cb3292eb8) completed in less than a minute: 1 file transferred (531.9 kbit/s)

  7. Steffen J says:

    When using forward declaration (OOP like coding in C => information hiding, struct is defined in the c file only, forward declaration in header), CLion is stating “File is too complex to perfom context-sensitive data-flow analysis …”. Is this a bug?

    /* forward declaration */
    typedef struct Test Test;

    Beside of that, when CLion finds duplicate entries or for example typedefs, it doesn’t show me where they are, just that they exist. Any idea what I’m doing wrong or is this a missing feature?

    • Anastasia Kazakova says:

      DFA indeed might be too complex and to keep the performance acceptable we have some limitations in it. So you can just turn it off in the inspection settings (Preferences/Settings | Editor | Inspections | C/C++ | Data Flow Analysis).

      Regarding the duplicate entries, could you please show the screenshot of what you mean here?

  8. Steffen J says:

    I have to admit, I don’t like the default themes. In the end, I cloned the VS dark theme. The Visual Studio Code theme would also be enough. Are there some limitations, licence restrictions why you don’t have them?

    • Anastasia Kazakova says:

      We can’t simply copy and use the theme from other IDE, not only because licensing questions (which happen sometimes), but mostly because we have to reimplmenet it on our side and it requires some resources: https://youtrack.jetbrains.com/issue/IDEA-143149. In the comments for this ticket you can find some custom themes from the internet that maybe suite you better. Please check.

  9. Erlandas B says:

    Hello, will there be update for remote valgrind support?

  10. Krzysiek says:

    A few remarks about the current state of remote development in CLion:
    1. It would be nice to have a possibility to open project directly from remote server (I would like to open cmake project created on Linux from CLion on Windows). NetBeans has similar functionality.
    2. CLion should copy also GIT files to the remote server. On server side I have to run extra tasks on repo before I push changes to GitHub repository, without git files it is impossible. I prefer console over GUI for GIT.
    3. Missing access from Terminal to remote server (project files), there is only access to Local terminal.

  11. Vladislav says:

    Maybe that’s going to be a stupid question, but here’s the preface:
    I’m using CLion 2018.3.3 on Win10 for C/C++ development, and I use remote Linux host as toolchain. It seems to be fetching all the remote header files correctly, so that code highlighting/completion works just fine except one little thing: it doesn’t recognize functions from various boost libraries. I have all the necessary #include directives in place, and the boost headers reside on the remote host at the default location (/usr/include/boost), but the IDE doesn’t seem to download it.
    Finally, the question is: what do I have to do in order to make CLion download boost headers as well?

    • Anastasia Kazakova says:

      CLion doesn’t download libraries on its own, until you are using smth like Conan: https://conan.io. Then it can work.
      Regarding the particular problem, if you run CMake on your project on a remote host outside CLion, will it find boost libraries?

      • Vladislav says:

        Well, Conan is not an option for me, actually, because I need specific version of boost (1.54.0) which is absent in Conan repositories.

        Let’s look at this from other perspective.
        When I add a remote toolchain (let it be Linux host), IDE automatically downloads [almost] all the required headers from the remote host, and then places them under, for example, C:\Users\noname\.CLion2018.3\system\.remote\hostname directory.
        I have no idea how it actually determines which headers should be downloaded and which should not be, but in my case it downloads tons of headers from /usr/include, except, apparently, /usr/include/boost. Again, I have all the required #include directives, and, to answer your question, if I run CMake on my project on the same remote host (outside CLion), it’s able to find boost libs and headers and build the project.
        Maybe, there’s a way to explicitly tell CLion which headers it should download?
        Meanwile, I’ve found a workaround: I’ve just copied /usr/include/boost from the remote host to the local CLion cache located at C:\Users\noname\.CLion2018.3\system\.remote\hostname.

        • Anastasia Kazakova says:

          And how boost is included into your project?

          • Vladislav says:

            That’s a little bit trickier. The project itself uses Makefiles, and since Makefile projects are not supported by CLion out of the box, I’ve written a simple custom target in CMakeLists.txt to build the project using ‘make’. And inclusion of various libraries (boost, for example) is maintained from the Makefile.
            Have I answered your question? Do you want me to provide more details?

          • Anastasia Kazakova says:

            Then it depends on the exact CMake, CLion might have issues with such a configuration even in a local dev mode. Is it possible for you to share the CMakeLists.txt file sample with us?

          • Vladislav says:

            This is a proprietary project, so I’m afraid I’m not supposed to make any of its code public, so I can only share a ‘changed’ snippet of CMakeLists.txt, but that should be sufficient.
            Here it goes:
            cmake_minimum_required(VERSION 3.5)
            project(projectname)

            set(CMAKE_CXX_STANDARD 14)

            ***multiple include_directories() go there***

            add_custom_target(tgtname
            COMMAND make rpm CC=’ccache gcc’ CXX=’ccache g++’
            WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})

            add_executable(execname EXCLUDE_FROM_ALL ***full list of project files***)

            I have a corporate license for CLion, so would it be more appropriate to open a ticket in YouTrack or somewhere else against this issue?

        • Vasily Romanikhin says:

          Hello @Vladislav.

          Could please check the log files (Help -> Show Log in Explorer) and try to find timeout exception, see the follow ticket: https://youtrack.jetbrains.com/issue/CPP-14447.

          I’m afraid it could be the reason of your problems with Boost.

          • Vladislav says:

            Hello Vasily,

            Yes, multiple occurrences of the following entries:
            2019-01-24 20:55:39,573 [15002683] ERROR – #com.jetbrains.cidr.remote – /usr/include: timeout
            com.intellij.execution.ExecutionException: /usr/include: timeout
            can be found in the log.

            Do you want me to try the workaround mentioned in the ticket?

          • Vasily Romanikhin says:

            Yes, please set clion.remote.tar.timeout to 0 and try run “Reload CMake project”.

          • Vladislav says:

            Well, I did the following:
            1) changed clion.remote.tar.timeout to 0
            2) ran Invalidate Caches/Restart

            Now IDE seems to be infinitely updating indices and loading CMake project… It keeps updating/loading for more than 2 hours already, while it usually has taken about 5-6 minutes to complete.

            Was I wrong when chose Invalidate Caches/Restart instead of just Reload CMake project?
            Should I consider CLion hanging and just restart it?

          • Vasily Romanikhin says:

            > Was I wrong when chose Invalidate Caches/Restart
            In my comment I ask you just to run “Reload CMake project” (Tools -> CMake -> “Reload CMake project”)

            > Should I consider CLion hanging and just restart it?
            I don’t know the details (e.g. amount of files, dependencies) of your project, but it seems like CLion hangs up.

            @Vladislav Could you please add the #com.jetbrains.cidr.remote and #com.jetbrains.ssh.nio to Debug Log Settings (Help -> Debug Log Settings), then make sure that clion.remote.tar.timeout is 0 and run “Reload CMake Project”. After that please attach logs to https://youtrack.jetbrains.com/issue/CPP-14447 (Help -> Compress Logs & Show in Finder). Please note logs may contain sensitive information, so feel free to attach logs with CLion team visibility.

            Thanks in advance.

Leave a Reply

Your email address will not be published. Required fields are marked *