Name Mode Size
lib 040000
.editorconfig 100644 0 kb
.gitattributes 100644 0 kb
.gitignore 100644 1 kb
.prettierignore 100644 0 kb
.prettierrc.json 100644 0 kb
CODE_OF_CONDUCT.md 100644 5 kb
LICENSE 100644 34 kb
README.md 100644 2 kb
commitlint.config.js 100644 0 kb
package-lock.json 100644 291 kb
package.json 100644 2 kb
README.md
# ide-clangd Provides C and C++ language support for [Atom] using [Clangd language server][Clangd] ## About This plugin only provides some of the functionality designated by the language server protocol. This plugin currently enables many of the features supported by Clangd: + Diagnostics (errors, warnings, info) + Code Formatting + Completion + Fix-its + Function signature help + Document highlights + ~~Go To Definition~~ (it will go to the declaration, but not the definition) + ~~Rename~~ (not yet supported by Atom) All contributions and feedback are appreciated. ## Requirements + [Atom] 1.21 or later + [atom-ide-ui] atom plugin + [Clangd] executable installed in your path ([prebuilt binaries]) ## Compilation Database In order to make this plugin work effectively, clangd requires information about how your code should be compiled. There are two options: compile_commands.json, or compile_flags.txt. ### compile_commands.json [CMake] is currently your best bet for generating a compile_commands.json file. The command to generate compile_commands.json along with your project looks something like this: `cmake (SOURCE_DIR) -DCMAKE_EXPORT_COMPILE_COMMANDS=ON` CMake doesn't include header information in the compile_commands.json file. To rectify this, I use a tool called [compdb]. Clangd won't see your compile_commands.json file if it's placed in your build directory, so you should either symlink it to your project directory, or have compdb generate its output there. ### compile_flags.txt [Another supported solution][compile-flags] is to make a compile_flags.txt file and place it in your project directory. Clangd will treat all project files with the same options. A simple compile_flags.txt might look something like this: ``` -std=c++11 -Iinclude -DMY_DEBUG_FLAG ``` ## Areas of interest + Automatic installation of Clangd [Atom]: http://atom.io/ [Clangd]: https://clang.llvm.org/extra/clangd.html [CMake]: https://cmake.org [compdb]: https://github.com/Sarcasm/compdb [compile-flags]: https://clang.llvm.org/docs/JSONCompilationDatabase.html#alternatives [langserver]: http://langserver.org [prebuilt binaries]: http://releases.llvm.org/download.html [atom-ide-ui]: https://atom.io/packages/atom-ide-ui