Configuration Settings
The following settings are available in VS Code settings (File > Preferences > Settings):
| Setting | Type | Default | Description |
|---|---|---|---|
zephyr-ide.globalDirectory | string | null | null | Root directory for west workspace setup, Python venvs, and SDK installations. Replaces the deprecated zephyr-ide.tools_directory. |
zephyr-ide.tools_directory | string | null | null | Deprecated. Use zephyr-ide.globalDirectory instead. Migrated automatically on startup. |
zephyr-ide.toolchainDirectory | string | null | null | Directory containing Zephyr SDK installations (e.g. zephyr-sdk-0.17.0 subdirectories). Defaults to toolchains/ inside the global directory. |
zephyr-ide.useGuiConfig | boolean | false | Use the graphical Kconfig editor instead of terminal-based menuconfig. |
zephyr-ide.westNarrowUpdate | boolean | false | Pass --narrow to west update to fetch only required Git history, reducing disk usage and download time. |
zephyr-ide.suppressWorkspaceWarning | boolean | false | Suppress the notification about missing ZEPHYR_BASE / ZEPHYR_SDK_INSTALL_DIR environment variables. |
zephyr-ide.venvFolder | string | null | null | Custom Python virtual environment path. Defaults to .venv in the workspace setup path. |
zephyr-ide.useClangd | boolean | false | Use clangd for IntelliSense instead of the C/C++ extension. When enabled, sets C_Cpp.intelliSenseEngine to disabled and configures clangd.arguments with the Zephyr SDK query-driver. Requires the clangd VS Code extension. |
clangd Configuration
When zephyr-ide.useClangd is enabled, the workspace .vscode/settings.json is automatically configured with the appropriate settings — no manual command is needed.
The extension manages up to five clangd.arguments entries (the --query-driver entry is only written when a valid toolchain directory is configured):
{ "C_Cpp.intelliSenseEngine": "disabled", "clangd.arguments": [ "--compile-commands-dir=${workspaceFolder}/.vscode", "--background-index", "--completion-style=detailed", "--header-insertion=never", "--query-driver=/path/to/toolchains/**/*" ]}The --query-driver glob is derived from your configured toolchain directory (see zephyr-ide.toolchainDirectory), which points to the Zephyr SDK containing the cross-compilers.
User-defined arguments are preserved on enable. If clangd.arguments already contains an argument whose key matches one of the extension’s entries (e.g., a user-customized --completion-style=bundled), the extension leaves that value as-is and does not append its own. You can freely add extra flags (for example --clang-tidy, --pretty, --log=error) — they are kept alongside the extension’s args.
--query-driver is always extension-managed. The extension overwrites any existing --query-driver value to keep it in sync with zephyr-ide.toolchainDirectory. If you want to use a custom toolchain query driver, point zephyr-ide.toolchainDirectory at it instead of editing clangd.arguments directly.
To switch back to the C/C++ extension, disable zephyr-ide.useClangd. If clangd.arguments is exactly the value the extension would write, it is removed entirely; otherwise (you added or modified anything) the array is left alone — assumed to be user-managed. The C_Cpp.intelliSenseEngine workspace override is also cleared.