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.
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.
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).
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:
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:
- Remote development support, unit testing performance improvements, and much more.
- New Build/Rebuild actions.
- CPU profiler.
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
haha says:
October 18, 2018In 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:
October 18, 2018You mean when you set the remote toolchain?
Vasily Romanikhin says:
October 19, 2018It 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:
October 19, 2018My 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!
okman says:
October 19, 2018When will the stable 2018.3 version be released?
Anastasia Kazakova says:
October 19, 2018We plan for end of Nov – beginning of Dec.
okman says:
October 20, 2018Clion is the best C++ IDE on MacOs. Thank you for the Clion Dev team:)
Anastasia Kazakova says:
October 20, 2018Thank you!
Rathkan says:
October 19, 2018There 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”.
Anastasia Kazakova says:
October 19, 2018Do you install the patch via an IDE’s update?
Rathkan says:
October 21, 2018Yes, I patched using the IDE update.
Anastasia Kazakova says:
October 21, 2018Ok, thanks, we’ll check.
Am I right it works fine for you now?
Rathkan says:
October 21, 2018Yes, after installing “libdbusmenu” it works now; previously it wasn’t able to load projects.
Anastasia Kazakova says:
October 24, 2018This build should contain a fix: https://blog.jetbrains.com/clion/2018/10/clion-2018-3-eap-fixes-for-remote-dev-cpu-profiler-and-markdown-plugin/
Peter says:
October 22, 2018It breaks under RHEL 7.3
I don’t have libdbusmenu on my system.
I have to go back to the previous version.
Anastasia Kazakova says:
October 22, 2018Can you install it separately and then install CLion?
Peter says:
October 23, 2018I meant that “sudo yum list libdbusmenu” returned nothing.
There is nothing to install.
I have tried different combinations of “*dbus*”.
The closes I got is dbusmenu-qt which did not work obviously.
Anastasia Kazakova says:
October 23, 2018Some users report libdbusmenu-gtk help: https://youtrack.jetbrains.com/issue/IDEA-200724
Anastasia Kazakova says:
October 24, 2018This build should contain a fix: https://blog.jetbrains.com/clion/2018/10/clion-2018-3-eap-fixes-for-remote-dev-cpu-profiler-and-markdown-plugin/
Signer says:
October 19, 2018According 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?
Anastasia Kazakova says:
October 19, 2018We’ll check. However, UE4 code is really full of macros, which uses __LINE__ macros inside, so are affected by any single change in the file happening before the macro. Bu the way, does it happen before you build the UE4 project or after?
Signer says:
October 19, 2018After. For example, when Engine/Source/Runtime/Engine/Private/Components/CharacterMovementComponent.cpp is opened in active editor tab.
Anastasia Kazakova says:
October 19, 2018Another question: does it happen while the symbols are built (then this is kinda expected), or after it?
Signer says:
October 19, 2018After. And for file not included in project.
Anastasia Kazakova says:
October 19, 2018Can you please collect a CPU snapshot when the issue occurs and send to us (or share in the issue tracker). The instruction on how to get it: https://intellij-support.jetbrains.com/hc/en-us/articles/207241235-Reporting-performance-problems
Luca Spinazzola says:
October 19, 2018Any code insight updates for kotlin using the multiplatform plugin?
Anastasia Kazakova says:
October 20, 2018The team was recently busy with KotlinConf, so didn’t have enough time to prepare an update, but should be ready quite soon.
Gabriel S says:
October 22, 2018Hi
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)
Gabriel S says:
October 22, 2018Oh, this time it finished loading, not it passed to “Updating symbols”…
CMake finished with this message:
Problems were encountered while collecting compiler information:
Unexpected compiler output. This compiler might be unsupported.
If you are using GCC/Clang, please report the bug in https://youtrack.jetbrains.com/issues/CPP.
[Finished]
Anastasia Kazakova says:
October 22, 2018And which compiler do you use? Could you please create an issue in https://youtrack.jetbrains.com/issues/CPP and attach IDE logs (Help | Show Log)?
Anastasia Kazakova says:
October 23, 2018Seems we managed to reproduce smth similar: https://youtrack.jetbrains.com/issue/CPP-14505. pls follow the issue
Steffen J says:
October 22, 2018When 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:
October 22, 2018DFA 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?
Steffen J says:
October 22, 2018I 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:
October 22, 2018We 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.
Erlandas B says:
October 23, 2018Hello, will there be update for remote valgrind support?
Anastasia Kazakova says:
October 23, 2018It’s https://youtrack.jetbrains.com/issue/CPP-14178. Not sure it will join the v2018.3. If not, then will be ready in 19.1
Erlandas B says:
October 23, 2018Thank you for fast reply!
Krzysiek says:
October 30, 2018A 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.
Vasily Romanikhin says:
November 1, 2018Hello, thanks.
Of course we thought about “opening remote project”, it seems quite natural for remote-mode but it requires tons of internal work from us, in particular “remote VCS support” which should be implemented in platform (not only in CLion).
Here are the tickets:
– “Open remote CMake project” (https://youtrack.jetbrains.com/issue/CPP-14584)
– “Remote VCS support” (https://youtrack.jetbrains.com/issue/CPP-14482)
– “Remote Terminal Support” (https://youtrack.jetbrains.com/issue/CPP-14588)
Vladislav says:
January 23, 2019Maybe 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:
January 23, 2019CLion 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:
January 24, 2019Well, 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:
January 24, 2019And how boost is included into your project?
Vladislav says:
January 25, 2019That’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:
January 25, 2019Then 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:
January 25, 2019This 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:
January 28, 2019Hello @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:
January 28, 2019Hello 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:
January 28, 2019Yes, please set `clion.remote.tar.timeout` to `0` and try run “Reload CMake project”.
Vladislav says:
January 29, 2019Well, 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:
January 30, 2019> 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.