Current IDEs struggle with C++ support due to the complexity of
Current IDEs struggle with C++ support due to the complexity of
@ -11,25 +11,24 @@ towards libclang with speed, stability, and ease of use in mind.
* Platform independent
* Platform independent
* Fast, responsive and stable (written extensively using C++11/14 features)
* Fast, responsive and stable (written extensively using C++11/14 features)
* Syntax highlighting for more than 100 different file types
* Syntax highlighting for more than 100 different file types
* C++ warnings and errors on the fly
* Warnings and errors on the fly
* C++ Fix-its
* Fix-its, as well as C/C++ standard header include suggestions
* Integrated Clang-Tidy checks can be enabled in preferences
* Integrated Clang-Tidy checks can be enabled in preferences
* Debug integration, both local and remote, through lldb
* Debug integration, both local and remote, through lldb
* Supports the following build systems:
* Supports the following C/C++ build systems directly (other build systems need manually generated compilation databases):
* CMake
* CMake
* Meson
* Meson
* Git support through libgit2
* Fast autocompletion
* Fast C++ autocompletion
* Tooltips showing type information and documentation
* Tooltips showing type information and doxygen documentation (C++)
* Rename refactoring across files
* Rename refactoring across files (C++)
* Highlighting of similar types
* Highlighting of similar types (C++)
* Automated documentation search for C/C++ identifiers
* Automated documentation search (C++)
* Go to declaration, implementation, methods and usages
* Go to declaration, implementation, methods and usages (C++)
* OpenCL and CUDA files are supported and parsed as C++
* OpenCL and CUDA files are supported and parsed as C++
* Other file types:
* Non-C/C++ files are supported through the Language Server Protocol, which is enabled if an `[language identifier]-language-server` executable is found. This executable can be a symbolic link to one of your installed language server binaries.
* Language server protocol support is enabled if `[language identifier]-language-server` executable is found. This executable can be a symbolic link to one of your installed language server binaries.
* For additional instructions, see: [setup of tested language servers](docs/language_servers.md)
* For additional instructions, see: [setup of tested language servers](docs/language_servers.md)
* Non-C/C++ projects are also supported, such as Python, JavaScript, and Rust projects
* otherwise, only keyword and buffer completion supported
* Git support through libgit2
* Find symbol through Ctags ([Universal Ctags](https://github.com/universal-ctags/ctags) is recommended)
* Find symbol through Ctags ([Universal Ctags](https://github.com/universal-ctags/ctags) is recommended)