cppit / jucipp

A lightweight & cross-platform IDE supporting the most recent C++ standards. This project has moved to https://gitlab.com/cppit/jucipp.
https://gitlab.com/cppit/jucipp
MIT License
882 stars 98 forks source link

Supporting C/C++ language server: cquery #367

Open artisdom opened 6 years ago

artisdom commented 6 years ago

There's a new C/C++ language server: cquery, which works quite well with VSCode. Just wondering the compatibility status between jucipp and cquery, or other language servers.

eidheim commented 6 years ago

We do support language servers through a general language protocol client implementation. See features in README.md for instructions. But keep in mind that the language server protocol is relatively new, and the protocol itself has specification that needs improvements. Additionally, the language servers can be buggy, one reason being a too broad and overly complex specification in the language server protocol.

With regards to cquery, and language servers in general, they are more resource hungry than our implementation that uses libclang directly for minimal overhead. Also, we only parse the files that are needed to reduce the resource use. Then there are also the many workarounds and stability issues that we have worked hard to fix. But I saw that initially cquery was based on our libclangmm library, and surely they have made use of some of our experience and implementations related to libclang. Which is a good thing, although I would like to see them creating separate libraries for some of their work so it also can be reused more easily.