This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

IntelliSense

The IntelliSense section covers C++ and Lua together. It’s where to look when code insight seems wrong.

The IntelliSense section: Status rows for engine, clangd database, engine sources, C++ data, and Lua reflection, then Generate buttons for C++ and Lua.

Status

  • IntelliSense Engine: which C++ engine is running. C/C++ IntelliSense, clangd IntelliSense, Both running (conflict), or None running. Click to choose. Changes are workspace settings only, and switching back restores what the workspace had.
  • clangd Database: shown while clangd uses O3DE’s compile database. Up to date, Update pending, or Not configured. It refreshes itself after a configure, a config switch, a workspace folder change, and at startup.
  • Engine Sources: how far C++ navigation reaches into the engine. Indexed (source engine), Redirected to a source engine in your workspace, Headers only (SDK engine), or Not resolved.
  • C++ Data: reads Stale (reconfigure) when CMakeLists.txt, a *.cmake file, or project.json changed since the last configure.
  • Lua Reflection: reads Stale (gems rebuilt) or Stale (different engine) when Lua completions no longer match your code.

A prebuilt SDK engine ships headers only, so Go to Definition can’t reach engine .cpp files on its own. With a source engine in your workspace, the extension redirects there. In editors that use Open VSX, where Microsoft’s C/C++ extension isn’t published, clangd switches on automatically.

Generate C++ IntelliSense builds c_cpp_properties.json from the CMake File API and registers a live provider, with engine paths resolved to your source engine.

Generate Lua IntelliSense launches the Editor headless, dumps the reflected scripting API, and generates Lua language server stubs. The first run takes a few minutes. After that, .lua scripts get typed completion and hovers for O3DE’s classes, EBuses, and globals. Re-run it after adding gems or changing the reflected API.