nRF Kconfig 2026.9.356: "Kconfig Language Server cannot start" on Windows, .bat wrapper regex no longer matches ninja -t commands output

Environment

  • Windows 11 Home (build 26200), VS Code 1.139.0
  • nRF Kconfig 2026.9.356 (regression; 2026.6.334 works), nRF Connect 2026.9.2797, nRF DeviceTree 2026.9.977
  • nRF Connect SDK v3.3.1, toolchain 936afb6332 (CMake 4.2.1, ninja 1.13.2)
  • Board: nrf52840dk/nrf52840, sysbuild build

Symptom

After a successful pristine build, the Problems panel shows:

Kconfig Language Server cannot start for build 'build_app'. Try rebuilding or do the pristine build to fix this issue.

The Kconfig status bar item shows "no context", and the Kconfig output only logs No context for .../src/main.c. Because of this, C files get false warnings, e.g. The GPIO drivers must be enabled by CONFIG_GPIO to be included in the build on #include <zephyr/drivers/gpio.h>, although CONFIG_GPIO=y is in the generated .config. Rebuilding, pristine rebuilding and reloading the window do not help. Building and flashing work normally.

Root cause

In dist/extension.js, the ninja runner's runTarget() (used by addBuild()) changed how it queries the menuconfig target:

  • 2026.6.334: ninja -v -n sysbuild_menuconfig
  • 2026.9.356: ninja -t commands sysbuild_menuconfig

On Windows, CMake wraps the long menuconfig command in a .bat file, so the output contains no menuconfig.py env and the code falls back to this regex, which is the same in both versions:

/\[(\d+\/\d+)\]\s(?<batchFn>.+\.bat)(?<rest>.*)/

ninja -v -n prints a progress prefix, but ninja -t commands never does:

> ninja -v -n sysbuild_menuconfig
[0/1] _sysbuild\CMakeFiles\sysbuild_menuconfig-1e014e8.bat da8f7097bdf2b385

> ninja -t commands sysbuild_menuconfig
_sysbuild\CMakeFiles\sysbuild_menuconfig-1e014e8.bat da8f7097bdf2b385

The regex therefore never matches, _regenerateNeeded stays true, addBuild() records the build as requiring regeneration, and setMainBuild() fires kconfig/regenerationNeeded, which produces the warning above.

The non-sysbuild target shows the same output format (ninja -C <build>/<image> -t commands menuconfig gives CMakeFiles\menuconfig-5f29641.bat 673f077d20e1e163). So this probably affects any Windows build where CMake wraps the command in a .bat, not only sysbuild.

Verification

Running the extension's regex on the real ninja -t commands output fails. With the prefix made optional, it matches _sysbuild\CMakeFiles\sysbuild_menuconfig-1e014e8.bat. That file exists and contains \cmake.exe -E env , so the rest of the existing Windows fallback path would proceed normally.

Suggested fix

Make the progress prefix optional, e.g.:

/(?:\[\d+\/\d+\]\s)?(?<batchFn>\S+\.bat)(?<rest>.*)/

Workaround

Installing nRF Kconfig 2026.6.334 via "Install Specific Version".

Parents Reply Children
No Data
Related