-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integration with IDE #18
Comments
The latest version of CLion (2020.2) introduces proper support for makefile-based projects and removes the necessity to use CMake to unlock the power features of the IDE. CLion seems to process the current repo out of the box (albeit I have the toolchain config already set up), code navigation and insights work very well. When the development hardware becomes available, setting up remote debugging with OpenOCD should either be automatic or pretty easy to set up. Having said that, switching to CMake at this point when the repo is malleable is also an option. |
Can CLion call external script (like |
Yes, it can call external scripts, but there is no real integration yet for docker with clion (real integration is on the roadmap). |
It will be great to add CLion/Idea integration if it don't require massive changing project structure and build system. |
How about creating a Language Server Protocol (LSP) so users can connect to it from any editor/IDE they want? |
Interesting idea, I never use it before. We must start LSP server inside docker and IDE can connect to it? |
LSP is a protocol, which means that if a client implements the protocol, it can work with any LSP server it wants to bring the IDE like experience into an editor/IDE, like autocomplete, navigation, errors, etc. The client usually is implemented as a plugin. I believe that the server can't be inside of a docker container, because it needs to have access to the file system to read a project's files. It can be just a process and a client can start/stop/restart an LSP server. Needless to say that each language should implement its own LSP server. So we will need to implement one, and any editor with an LSP plugin can work with it. All the popular text editors/IDEs should already have a plugin that implements a client for LSP in their plugin repositories. I used it with emacs + Rust LSP and vscode + Scala 3 LSP. No special plugins for a client were necessary, it was just a generic LSP client. The LSP servers fail sometimes and all the IDE-like features stopped working, I had to restart the server to get them back to work (which was annoying). |
But we have project dir mounted into container for build. I prefer to run server in docker because user shouldn't run something on its machine and shouldn't install something. Is there a ready for use LSP servers exist? |
But IDE will not see libraries, compilers and so on if I understand correctly. If we want to use SSH, maybe sshfs will be helpful: https://github.com/libfuse/sshfs Or maybe we just can mount directory to host?
Also, Remote Development feature looks really promising: https://blog.jetbrains.com/clion/2018/09/initial-remote-dev-support-clion/#remote_development_what_can_i_do |
Mounting a project's directory into a docker container should work. The start command for the container becomes more complicated and that's it.
There are plenty of LSP implementations, most of them are open source, we can fork one so we don't need to build everything from ground up. You might be interested in rust, for sublime you can use this plugin |
why? You can start docker by Did I understand correctly that LSP is the alternative to SSH-into-container and remote developement?
What about debugging features integration? |
@neshkeev are you ready to integrate LSP into our image? |
Look at VSCode + docker integration: https://github.com/MuratovAS/VScode_Docker_Stm32 |
Everyone feel good with current environment? What IDE are you using? If this issue makes no sense, I will close it after 2 oct 14:00 UTC. |
Fix Changelog typo
😢 |
Now we're using docker for build. It have some pros:
I use sublime editor for programming, but I understand that many people used to use IDE like CLion/Eclipse/etc. How do we make integration?
The text was updated successfully, but these errors were encountered: