# clangd config for Donut (the `Donut` app project — src/**). mirrors the build # flags in premake5.lua so clangd resolves headers and macros with no # compile_commands.json. # # NOTE: the include paths are absolute for THIS checkout. clangd's no-database # fallback runs from each file's own directory, so relative includes don't # resolve — hence absolute. If you move the repo, re-point them (or generate a # compile_commands.json, e.g. `bear -- make config=debug`, which supersedes this). CompileFlags: Add: - -std=c++20 # our code (mirror premake5.lua includedirs) - -I/Users/hachem/Dev/Donut/src # vendored deps as system headers (-isystem), mirroring externalincludedirs: # keeps their warnings out of our -Wall/-Wextra/-pedantic. - -isystem/Users/hachem/Dev/Donut/ext/glm - -isystem/Users/hachem/Dev/Donut/ext/glfw/include - -isystem/Users/hachem/Dev/Donut/ext/glad/include - -isystem/Users/hachem/Dev/Donut/ext/imgui - -isystem/Users/hachem/Dev/Donut/ext/imgui/backends - -isystem/Users/hachem/Dev/Donut/ext/ImGuizmo - -isystem/Users/hachem/Dev/Donut/ext/toml11/include - -isystem/Users/hachem/Dev/Donut/ext/json/single_include - -isystem/Users/hachem/Dev/Donut/ext/stb - -isystem/opt/homebrew/include # Vulkan / MoltenVK headers (Homebrew, macOS) # defines (mirror premake5.lua; Debug is the dev default) - -DGLFW_INCLUDE_NONE - -DDONUT_MACOS - -DDONUT_DEBUG - -D_CRT_SECURE_NO_WARNINGS # same strict warnings as the build. -Werror is intentionally left out so the # editor shows these as warnings, not errors — the build is what enforces them. - -Wall - -Wextra - -pedantic Diagnostics: # this project pulls headers in transitively; clangd's include heuristics are # noisy here and often wrong, so hush them. UnusedIncludes: None MissingIncludes: None --- # Vulkan create-info structs zero-init pNext via aggregate init, so # -Wmissing-field-initializers is just noise there (matches the build override). If: PathMatch: .*/platform/vulkan/.* CompileFlags: Add: [-Wno-missing-field-initializers]