ArrayRef has a constructor that accepts std::nullopt. This
constructor dates back to the days when we still had llvm::Optional.
Since the use of std::nullopt outside the context of std::optional is
kind of abuse and not intuitive to new comers, I would like to move
away from the constructor and eventually remove it.
This patch replaces std::nullopt with {}.
clangd
clangd is a language server, and provides C++ IDE features to editors. This is not its documentation.
- the website is https://clangd.llvm.org/.
- the bug tracker is https://github.com/clangd/clangd/issues
- the source code is hosted at https://github.com/llvm/llvm-project/tree/main/clang-tools-extra/clangd.
- the website source code is at https://github.com/llvm/clangd-www/
Communication channels
If you have any questions or feedback, you can reach community and developers through one of these channels:
- chat: #clangd room hosted on LLVM's Discord channel.
- user questions and feature requests can be asked in the clangd topic on LLVM Discussion Forums
Building and testing clangd
For a minimal setup on building clangd:
-
Clone the LLVM repo to
$LLVM_ROOT. -
Create a build directory, for example at
$LLVM_ROOT/build. -
Inside the build directory run:
cmake $LLVM_ROOT/llvm/ -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra".- We suggest building in
Releasemode as building DEBUG binaries requires considerably more resources. You can check Building LLVM with CMake documentation for more details about cmake flags. - In addition to that using
Ninjaas a generator rather than defaultmakeis preferred. To do that consider passing-G Ninjato cmake invocation. - Finally, you can turn on assertions via
-DLLVM_ENABLE_ASSERTS=On.
- We suggest building in
-
Afterwards you can build clangd with
cmake --build $LLVM_ROOT/build --target clangd, similarly run tests by changing target tocheck-clangd.