CppCon 2018 has ended
Back To Schedule
Friday, September 28 • 13:30 - 14:30
Clangd: architecture of a scalable C++ language server

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Clangd is an open-source implementation of the Language Server Protocol (LSP) server for C++. It is based on Clang and developed as part of LLVM project. Thanks to LSP, Clangd is available for plenty of popular text editors. Join this session if you want to learn more about implementation of C++ editor tools and how we build project-wide features in Clangd that scale to the huge Google codebase.

Clangd provides the features you would expect from semantically aware editor tools: semantic code completion, go-to-definition, rename, signature help and code formatting. Moreover, we aim to build global features into Clangd, like cross references and, the new feature that we have been working on recently, global code completion. “Global” means that completion will suggest results beyond what a compiler sees in the current file, providing results from other files in the project and inserting missing #includes.

In this talk, we will give an introduction to Clangd and show some of the features it supports. Then we will cover the architecture of Clangd and focus on our implementation of the global completion to give a perspective of how our team builds project-global features into Clangd that can scale to huge codebases, i.e. to all of C++ source code at Google.

avatar for Ilya Biryukov

Ilya Biryukov

Software Engineer, Google
A software engineer at Google Munich. Mostly working on clangd (https://clang.llvm.org/extra/clangd.html).Previously at JetBrains, worked on ReSharper C++ and ReSharper.

Friday September 28, 2018 13:30 - 14:30 PDT
Steamboat (403)