Skip to content

Kconfig features and GUI

The nRF Connect for VS Code extension features the nRF Kconfig GUI and adds contextual information for the configuration files of boards and shields.

nRF KConfig GUI features

The nRF Kconfig GUI is a graphical representation of the Kconfig options tree structure. The GUI lists these options and lets you control them directly from VS Code.

Treeview

The nRF Kconfig GUI displays a treeview of the Kconfig options listed both in the project configuration files (prj.conf and Kconfig fragments) used for the current build configuration and in the build configuration's .config file.

Kconfig GUI treeview

History navigation

The treeview keeps track of your navigation and provides back and forward arrow buttons to let you revisit previous symbols, searches, and other views.

Kconfig GUI history navigation

Alternatively to these buttons, you can also navigate usage history with the side buttons available on some mouses.

Changes list

The Changes tab lists Kconfig options that you have modified. Read more about this tab in How to review and revert changes.

Kconfig GUI Changes tab with a list of random changes

Save options

There are several ways to save your Kconfig option changes: Apply, Save to file, and Save (minimal). See the button tooltips for more information.

Hidden nodes

Some nodes may not be displayed in the tree. This is usually because their dependency condition is not met, such as a child node that is hidden because the parent node has not been enabled. To toggle the visibility of these nodes, click the Show Hidden Items button, located on the far right of the nRF Kconfig search bar.

Show Hidden Items button

After toggling the hidden nodes on, the icon changes to Don't Show Hidden Items. Click on it to stop showing hidden nodes.

Note

Nodes that are hidden cannot be edited.

Node description

You can check the description of a selected Kconfig option by toggling information about it on or off using the View Information button, visible at the end of the menu option line when you highlight it.

Kconfig node description

Tip

Use the Split panels button next to the Show Hidden Items button to move the information window vertically or horizontally.
Split panels button

Other features

The nRF Kconfig GUI also comes with the following features:

  • Show the parent item of a searched item.
  • Display dependency names for Kconfig options, which include links in the description box that display available information about that dependency.

Configuration file features

VS Code comes with syntax highlighting for configuration files. The nRF Kconfig extension adds the following contextual information for the configuration files of boards and shields:

  • Autocompletion based on Kconfig files
  • Hover information
  • Go to definition
  • Syntax checking
  • Linting
    • Typechecking configuration values
    • Range checking
    • Checking for redundant entries
    • Checking for invalid combinations
    • Dependency checking
    • Warning about entries without prompts
  • Code Actions
    • Add missing dependencies
    • Remove redundant entries
    • Use selector entry when trying to set entries without prompts

Status Bar message for project files

Additionally, the nRF Kconfig extension features a Status Bar notification if project configuration files are not in context (such as a prj.conf file or similar).

If a project configuration file is in the active Editor window that does not belong to the active build configuration, a Status Bar message in orange will warn you that the open configuration file is not part of the active build.

Hover your mouse over the warning message to see the following message:

Kconfig: no context warning

C file features

The extension adds symbol information for CONFIG_ defined in C files. Relevant information and the go-to definition are provided for all defines starting with CONFIG_ when hovering over them. This feature can be turned off with the kconfig.cfiles configuration entry.

Kconfig interface selection

Kconfig is the default and recommended interface setting for editing Kconfig options in the nRF Connect for VS Code extension pack.

You can change the default interface setting at any time. Click the More actions... menu icon next to the Kconfig button in the Actions View to select one of the following options:

  • Temporarily change the interface to either Menuconfig or Guiconfig. This selection will be valid only for the current session.
  • Change the default selection by clicking the Configure... button. This opens the nrf-connect.kconfig.interface configuration setting where you can select Menuconfig or Guiconfig from the drop-down menu. The name of the action in the Actions View will change accordingly.

Note

If you are using a Windows machine and your Kconfig actions crash in the Panel, edit the nrf-connect.kconfig.executeInDefaultShell extension setting to change the default shell used to execute Kconfig actions.