# C++ keywords completion

CLion uses Clangd code snippets in C++ keywords [completion](auto-completing-code.html). The snippets work similarly to [live templates](using-live-templates.html):  when you start typing a keyword, you can select the snippet from the completion list and use `Tab` (Windows), `⇥` (macOS), `⇥` (IntelliJ IDEA Classic (macOS)), `⇥` (macOS System Shortcuts), `Tab` (XWin), `Tab` (GNOME), `Tab` (KDE), `Tab` (Emacs), `Tab` (Sublime Text), `⇥` (Sublime Text (macOS)), `⇥` (Xcode), `Tab` (Visual Studio), `⇥` (Visual Studio (macOS)), `Tab` (ReSharper), `⇥` (ReSharper (macOS)), `Tab` (QtCreator), `⇥` (QtCreator (macOS)), `Tab` (NetBeans), `Tab` (Eclipse), `⇥` (Eclipse (macOS)) to move between stubs.

Find the full list of the currently available snippets [here](https://youtrack.jetbrains.com/articles/CPP-A-191430737/Clang-completion-snippets-in-CLion). A few examples are given below:

* For the `typedef` keyword, completion suggests not only the keyword itself but also stubs for the type and the new name. ![Typedef completion](https://resources.jetbrains.com/help/img/idea/2026.2/cl_typedef_snippets.animated.gif)

* For `namespace`, CLion suggests several snippets that you can select from depending on the use case. ![Namespace completion](https://resources.jetbrains.com/help/img/idea/2026.2/cl_namespace_snippets.animated.gif)

* Also, there are sets of snippets for templates and [C++ concepts](c-20-concepts.html). For example, here is how you can quickly define a new concept in your code: ![Completion for C++ Concepts](https://resources.jetbrains.com/help/img/idea/2026.2/cl_concept_snippets.animated.gif)

## See also

### Procedures

[Clangd settings](settings-languages-cpp-clangd.html) [Support for C++ Concepts](c-20-concepts.html)

