this post was submitted on 15 Aug 2023
10 points (100.0% liked)

C++

1778 readers
1 users here now

The center for all discussion and news regarding C++.

Rules

founded 1 year ago
MODERATORS
 

I use Helix Editor and by default it uses clangd as LSP server.

But when I use "newer" C++20 features I get warning messages in the editor that they are only available in "later" C++ versions or I get straight up error messages.

So how do I tell clangd that I am writing C++20 code? I am guessing passing an argument (-std=c++20) or creating a "project properties" file...

This is the Helix Editor configuration file, languages.toml:

[[language]]
name = "cpp"
language-server = { command = "clangd", args = [] }
auto-format = true

Please let me know the right way to do it.

top 2 comments
sorted by: hot top controversial new old
[โ€“] [email protected] 4 points 1 year ago (1 children)

If you use meson or cmake, you can generate a compile_commands.json which you can link from the build dir into your source dir. If not you cam create a local config file for clangd https://stackoverflow.com/questions/73758291/is-there-a-way-to-specify-the-c-standard-of-clangd-without-recompiling-it

[โ€“] jim_stark 3 points 1 year ago

This, .clangd, file in the root of the project directory worked:

CompileFlags:
  Add: [-std=c++20]

Thank you!