{ // clangd is the language server; the cpptools engine would parse every file // a second time and disagree, since nothing tells it about a cross // compiler. "C_Cpp.intelliSenseEngine": "disabled", // --query-driver lets clangd ask the cross compiler for its own system // includes and target. The database is named here rather than in .clangd // because that file travels with the driver into a consumer's submodule, // where a build tree of this repo's own need not exist. "clangd.arguments": [ "--compile-commands-dir=${workspaceFolder}/build/atmega328p-generated", "--query-driver=**avr-g++*", "--header-insertion=never" ], // The presets are the build interface, and the toolchain file inside the // libavr submodule is the one place the compiler is chosen. **No prefix is // named here**: a committed file may not name a path that is true of one // machine (libavr guidance rule 50), so the gitignored local/machine.cmake // at this repository's root is where a checkout says where its toolchain // is - one file, and it answers for both hosts. "cmake.useCMakePresets": "always", "cmake.configureOnOpen": true, "cmake.options.statusBarVisibility": "compact", "files.watcherExclude": { "**/build/**": true, "**/libavr/**": true }, "files.associations": { ".clangd": "yaml", ".clang-format": "yaml" } }