.. _vscode_ide:

Visual Studio Code
##################

`Visual Studio Code`_ (VS Code for short) is a popular cross-platform IDE that supports C projects
and has a rich set of extensions.

This guide describes the process of setting up VS Code for Zephyr's
:zephyr:code-sample:`blinky` sample in VS Code.

The instructions have been tested on Linux, but the steps should be the same for macOS and
Windows, just make sure to adjust the paths if needed.

Get VS Code
***********

`Download VS Code`_ and install it.

Install the required extensions through the :guilabel:`Extensions` marketplace in the left panel.
Search for the `C/C++ Extension Pack`_ and install it.

Initialize a new workspace
**************************

This guide gives details on how to configure the :zephyr:code-sample:`blinky`
sample application, but the instructions would be similar for any Zephyr project and :ref:`workspace
layout <west-workspaces>`.

Before you start, make sure you have a working Zephyr development environment, as per the
instructions in the :ref:`getting_started`.

Open the project in VS Code
***************************

#. In VS Code, select :menuselection:`File --> Open Folder` from the main menu.

#. Navigate to your Zephyr workspace and select it (i.e. the :file:`zephyrproject` folder in your
   HOME directory if you have followed the Getting Started instructions).

#. If prompted, enable workspace trust.

Generate compile commands
*************************

In order to support code navigation and linting capabilities, you must compile your project once to
generate the :file:`compile_commands.json` file that will provide the C/C++ extension with the
required information (ex. include paths):

   .. zephyr-app-commands::
      :zephyr-app: samples/basic/blinky
      :board: native_sim/native/64
      :goals: build
      :compact:

Configure the C/C++ extension
*****************************

You'll now need to point to the generated :file:`compile_commands.json` file to enable linting and
code navigation in VS Code.

#. Go to the :menuselection:`File --> Preferences --> Settings` in the VS Code top menu.

#. Search for the parameter :guilabel:`C_Cpp > Default: Compile Commands` and set its value to:
   ``zephyr/build/compile_commands.json``.

   Linting errors in the code should now be resolved, and you should be able to navigate through the
   code.

Additional resources
********************

There are many other extensions that can be useful when working with Zephyr and VS Code. While this
guide does not cover them yet, you may refer to their documentation to set them up:

Contribution tooling
====================

- `Checkpatch Extension`_
- `EditorConfig Extension`_

Documentation languages extensions
==================================

- `reStructuredText Extension Pack`_

IDE extensions
==============

- `CMake Extension documentation`_
- `nRF Kconfig Extension`_
- `nRF DeviceTree Extension`_
- `GNU Linker Map files Extension`_

Additional guides
=================

- `How to Develop Zephyr Apps with a Modern, Visual IDE`_

.. note::

   Please be aware that these extensions might not all have the same level of quality and maintenance.

.. _Visual Studio Code: https://code.visualstudio.com/
.. _Download VS Code: https://code.visualstudio.com/Download
.. _VS Code documentation: https://code.visualstudio.com/docs
.. _C/C++ Extension Pack: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools-extension-pack
.. _C/C++ Extension documentation: https://code.visualstudio.com/docs/languages/cpp
.. _CMake Extension documentation: https://code.visualstudio.com/docs/cpp/cmake-linux

.. _Checkpatch Extension: https://marketplace.visualstudio.com/items?itemName=idanp.checkpatch
.. _EditorConfig Extension: https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig

.. _reStructuredText Extension Pack: https://marketplace.visualstudio.com/items?itemName=lextudio.restructuredtext-pack

.. _nRF Kconfig Extension: https://marketplace.visualstudio.com/items?itemName=nordic-semiconductor.nrf-kconfig
.. _nRF DeviceTree Extension: https://marketplace.visualstudio.com/items?itemName=nordic-semiconductor.nrf-devicetree
.. _GNU Linker Map files Extension: https://marketplace.visualstudio.com/items?itemName=trond-snekvik.gnu-mapfiles

.. _How to Develop Zephyr Apps with a Modern, Visual IDE: https://github.com/beriberikix/zephyr-vscode-example
