Use static analyzers to find code issues while editing or to inspect a wider project. Language servers also help Embedder navigate definitions, references, symbols, and call relationships.
Enable an analyzer
Run /static-analyzer in chat. /lsp and /analyzers open the same manager.
- Open Browse and select an analyzer.
- Check whether its executable is ready or requires installation.
- Enable it for this project or as a global default.
- Set the required project inputs.
- Run a small check before starting a full scan.
Selecting an entry does not prove its tools are installed. Use the setup status shown in the manager.
Language servers include clangd and ccls for C/C++, rust-analyzer, neocmakelsp, devicetree-language-server, and kconfig-lsp.
Command-line analyzers include cppcheck, clang-tidy, ShellCheck, Perforce QAC, Parasoft C/C++test, and Coverity. Commercial analyzers require your installed product and appropriate license.
For C and C++, supply a current compile_commands.json for the intended target and build variant. A database from another board can produce misleading errors or omit real issues.
For a CMake project, enable its compilation-database export using the project’s normal configuration options:
Preserve any toolchain, board, or preset options your project requires.
For other languages and analyzers, follow the manager’s setup checks. Rust needs its Cargo project; commercial tools may need a controlled project or build capture.
Inspect findings after edits
Enabled analyzers can report findings with the affected file, line, severity, and rule. Ask Embedder to explain or fix a finding, then rerun the relevant check.
If a compliance check shows INCOMPLETE or NOT RUN, resolve setup before treating the edit as checked. PASS means the configured automated check passed, not that every requirement was assessed.
Run project diagnostics
State the scope when you want only a module. For a whole-project result, require confirmation of what was actually analyzed rather than accepting a partial scan as complete.
End-to-end MISRA and CERT workflows
For the open-source MISRA path, install cppcheck with a working MISRA addon, enable it in /static-analyzer, and set Compile database to the current file.
For CERT, install clang-tidy, enable it, and set Compile database directory to the directory containing compile_commands.json.
Reports are normally written under .embedder/reports/. See Static analysis integrations for commercial analyzer workflows.
Keep settings reusable
Project overrides live in .embedder/lsp.json; global defaults live in ~/.embedder/lsp.json. Prefer the manager for edits and use project scope for target-specific inputs. Switch out of Plan mode before installing or changing analyzer configuration. Last modified on September 12, 2026