{"id":13995994,"url":"https://github.com/espressif/vscode-esp-idf-extension","last_synced_at":"2025-05-14T12:12:00.605Z","repository":{"id":38359128,"uuid":"158485478","full_name":"espressif/vscode-esp-idf-extension","owner":"espressif","description":"Visual Studio Code extension for ESP-IDF projects","archived":false,"fork":false,"pushed_at":"2025-05-13T10:19:53.000Z","size":44549,"stargazers_count":1215,"open_issues_count":45,"forks_count":323,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-05-13T11:28:57.712Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/espressif.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-11-21T03:27:08.000Z","updated_at":"2025-05-13T09:16:26.000Z","dependencies_parsed_at":"2024-12-12T08:24:30.129Z","dependency_job_id":"9cc5ee4e-83d4-4036-ad9d-c4112a5f696a","html_url":"https://github.com/espressif/vscode-esp-idf-extension","commit_stats":{"total_commits":652,"total_committers":42,"mean_commits":"15.523809523809524","dds":"0.41564417177914115","last_synced_commit":"48f89e16cf1a47ae9ea58a0ea26e2fa8646b8d1d"},"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/espressif%2Fvscode-esp-idf-extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/espressif%2Fvscode-esp-idf-extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/espressif%2Fvscode-esp-idf-extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/espressif%2Fvscode-esp-idf-extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/espressif","download_url":"https://codeload.github.com/espressif/vscode-esp-idf-extension/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254140768,"owners_count":22021220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-09T14:03:43.282Z","updated_at":"2025-05-14T12:11:55.593Z","avatar_url":"https://github.com/espressif.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003ca href=\"https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension\"\u003e\n  \u003cimg src=\"./media/espressif_icon.png\" alt=\"espressif logo\" title=\"Espressif\" align=\"right\" height=\"60\" /\u003e\n\u003c/a\u003e\n\n# ESP-IDF Extension for VS Code\n\n[中文](./README_CN.md)\n\n[![Espressif Documentation](https://img.shields.io/badge/Documentation-red)](https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/)\n[![Troubleshooting](https://img.shields.io/badge/Troubleshooting-red)](./README.md#Troubleshooting)\n![Version](https://img.shields.io/github/package-json/v/espressif/vscode-esp-idf-extension)\n[![Releases](https://img.shields.io/badge/Github-Releases-blue)](https://github.com/espressif/vscode-esp-idf-extension/releases)\n[![Forum](https://img.shields.io/badge/Forum-esp32.com-blue)](https://esp32.com/viewforum.php?f=40)\n\nDevelop, build, flash, monitor, debug and [more](https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/index.html) with Espressif chips using Espressif IoT Development Framework [(ESP-IDF)](https://github.com/espressif/esp-idf).\n\n\u003ca href=\"https://nightly.link/espressif/vscode-esp-idf-extension/workflows/ci/master/esp-idf-extension.vsix.zip\"\u003e**Latest master installer**\u003c/a\u003e for Visual Studio Code. You can use this VSIX to test the current github master of the extension by pressing \u003ckbd\u003eF1\u003c/kbd\u003e or click menu `View` -\u003e `Command Palette...`, type `Install from VSIX` and then select the previously downloaded `.vsix` file to install the extension.\n\nMake sure to review our [Espressif documentation](https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/index.html) first to properly use the extension.\n\n# How to use\n\n## Install\n\n1. Download and install [Visual Studio Code](https://code.visualstudio.com/).\n\n2. Install ESP-IDF system prerequisites for your operating system:\n\n- Prerequisites for [MacOS and Linux](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-macos-setup.html).\n- For Windows there is no additional prerequisites.\n\n3. In Visual Studio Code, Open the **Extensions** view by clicking on the Extension icon in the Activity Bar on the side of Visual Studio Code or the **View: Show Extensions** command (shortcut: \u003ckbd\u003e⇧\u003c/kbd\u003e \u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eX\u003c/kbd\u003e or \u003ckbd\u003eCtrl+Shift+X\u003c/kbd\u003e).\n\n4. Search for [ESP-IDF Extension](https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension).\n\n5. Install the extension. After you install the extension, the ![Espressif icon](./media/readme/espressifIcon.png) should appear in the VS Code Activity bar (left side set of icons). When you click the Espressif icon, you can see a list of basic commands provided by this extension.\n\n\u003cp\u003e\n  \u003cimg src=\"./media/readme/commandsList.png\" alt=\"Commands list\"\u003e\n\u003c/p\u003e\n\n6. From the command list, select **Configure ESP-IDF Extension** or press \u003ckbd\u003eF1\u003c/kbd\u003e and type `Configure ESP-IDF Extension`. After, choose the **ESP-IDF: Configure ESP-IDF Extension** option.\n   \u003e **NOTE:** For versions of ESP-IDF \u003c 5.0, spaces are not supported inside configured paths.\n\n\u003cp\u003e\n  \u003cimg src=\"./media/readme/setup.png\" alt=\"Select ESP-IDF\" width=\"950\"\u003e\n\u003c/p\u003e\n\n7. Choose **Express** and select the download server:\n\n- Espressif: Faster speed in China using Espressif download servers links.\n- Github: Using github releases links.\n\n8. Pick an ESP-IDF version to download or the `Find ESP-IDF in your system` option to search for existing ESP-IDF directory.\n\n9. Choose the location for ESP-IDF Tools (also known as `IDF_TOOLS_PATH`) which is `$HOME\\.espressif` on MacOS/Linux and `%USERPROFILE%\\.espressif` on Windows by default.\n\n10. If your operating system is MacOS/Linux, choose the system Python executable to create ESP-IDF virtual environment inside ESP-IDF Tools and install ESP-IDF Python package there.\n\n    \u003e **NOTE:** Windows users don't need to select a Python executable since it is going to be installed by this setup.\n\n11. Make sure that `IDF_TOOLS_PATH` doesn't have any spaces to avoid any build issues. Also make sure that `IDF_TOOLS_PATH` is not the same directory as `IDF_PATH`.\n\n12. You will see a page showing the setup progress status, including ESP-IDF download progress, ESP-IDF Tools download and install progress as well as the creation of a Python virtual environment.\n\n13. If everything is installed correctly, you will see a message that all settings have been configured. You can start using the extension.\n\nCheck the [Troubleshooting](#Troubleshooting) section if you have any issues.\n\n## Using the ESP-IDF Extension for VS Code\n\nThis extension provides a list of icons in the status bar (blue bar in the bottom of VS Code window) for ESP-IDF commands. You can see the command to be executed when you hover the icon.\n\n\u003cp\u003e\n  \u003cimg src=\"./media/readme/statusBar.png\" alt=\"Status bar\"\u003e\n\u003c/p\u003e\n\nThese icons will be used in the steps below showing common ESP-IDF use cases:\n\n1. Press \u003ckbd\u003eF1\u003c/kbd\u003e and type **ESP-IDF: Show Example Projects** to create a new project from ESP-IDF examples. Select ESP-IDF and choose an example to create a new project from.\n\n2. Once the project is created and opened in VS Code, set the serial port of your device by clicking status bar icon ![serial port](./media/readme/serialport.png). Alternatively, press \u003ckbd\u003eF1\u003c/kbd\u003e, type **ESP-IDF: Select Port to Use**, and choose the serial port to which your device is connected.\n\n3. Select an Espressif target (esp32, esp32s2, etc.) by clicking status bar icon ![IDF Target](./media/readme/target.png). Alternatively, press \u003ckbd\u003eF1\u003c/kbd\u003e and type **ESP-IDF: Set Espressif Device Target** command.\n\n4. Next, configure your ESP-IDF project by clicking status bar icon ![sdkconfig editor](./media/readme/sdkconfig.png) or press \u003ckbd\u003eF1\u003c/kbd\u003e and typing **ESP-IDF: SDK Configuration Editor** command (\u003ckbd\u003eCTRL\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eG\u003c/kbd\u003e keyboard shortcut) where you can modify the ESP-IDF project settings. After all changes are made, click `Save` and close this window. You can see the output in the menu `View` -\u003e `Output` and choose `ESP-IDF` from the dropdown list.\n\n5. (OPTIONAL) Run **ESP-IDF: Run idf.py reconfigure Task** to generate the ``compile_commands.json`` file so language support works. Additionally you can configure the `.vscode/c_cpp_properties.json` as explained in [C/C++ Configuration](https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/configureproject.html#c-and-c-code-navigation-and-syntax-highlight) documentation.\n\n6. At this point, you can modify the code. When the project is completed, build your project by clicking status bar icon ![build](./media/readme/build.png) or pressing \u003ckbd\u003eF1\u003c/kbd\u003e and typing **ESP-IDF: Build your Project**.\n\n7. Flash to your device by clicking status bar icon ![flash](./media/readme/flash.png), or pressing \u003ckbd\u003eF1\u003c/kbd\u003e and typing **ESP-IDF: Flash Your Project**. From there, select `UART`, `DFU` or `JTAG` depending on your serial connection, and start flashing the application to your device.\n\n8. Change the flash method by clicking status bar icon ![flash method](./media/readme/flashmethod.png), or pressing \u003ckbd\u003eF1\u003c/kbd\u003e and typing **ESP-IDF: Select Flash Method** to select from `UART`, `DFU` or `JTAG`. You can alternatively use one of the commands **ESP-IDF: Flash (UART) Your Project**, **ESP-IDF: Flash (with JTAG)** or **ESP-IDF: Flash (DFU) Your Project**.\n\n9. Start a monitor by clicking status bar icon ![monitor](./media/readme/monitor.png), or pressing \u003ckbd\u003eF1\u003c/kbd\u003e and typing **ESP-IDF: Monitor Device**, which will log the device activity in a Visual Studio Code terminal.\n\n10. Make sure to configure your drivers as mentioned in ESP-IDF [Configure JTAG Interface](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/jtag-debugging/configure-ft2232h-jtag.html) documentation.\n\n11. Before debugging your device, select the device OpenOCD board configuration files by pressing \u003ckbd\u003eF1\u003c/kbd\u003e and typing **ESP-IDF: Select OpenOCD Board Configuration**. You can test the connection by clicking status bar icon ![openocd](./media/readme/openocd.png) or pressing \u003ckbd\u003eF1\u003c/kbd\u003e and typing **ESP-IDF: OpenOCD Manager**. The output is shown in the menu `View` -\u003e `Output` and choose `ESP-IDF` from the dropdown list.\n\n    \u003e **NOTE:** You can start or stop the OpenOCD in Visual Studio Code using the **ESP-IDF: OpenOCD Manager** command or by clicking the `OpenOCD Server (Running | Stopped)` button in the status bar.\n\n12. If you want to start a debug session, just press \u003ckbd\u003eF5\u003c/kbd\u003e (ensure the project is built, flashed, and OpenOCD is properly connected for the debugger to function correctly). The debug session output can be seen in the menu `View` -\u003e `Debug Console`.\n\nCheck the [Troubleshooting](#Troubleshooting) section if you have any issues.\n\n# Further reading\n\nCheck the [ESP-IDF Extension for VS Code Documentation](https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/) for tutorials, commands and features provided.\n\n## All Available Commands\n\nPress \u003ckbd\u003eF1\u003c/kbd\u003e or click menu `View` -\u003e `Command Palette...` to show Visual Studio code commands, then type **ESP-IDF** to see all available extension commands.\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eCategory\u003c/th\u003e\n            \u003cth\u003eCommand\u003c/th\u003e\n            \u003cth\u003eDescription\u003c/th\u003e\n            \u003cth\u003eKeyboard Shortcuts (Mac)\u003c/th\u003e\n            \u003cth\u003eKeyboard Shortcuts (Windows/Linux)\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=6 align=\"center\"\u003eSettings\u003c/td\u003e\n            \u003ctd\u003eAdd Docker Container Configuration\u003c/td\u003e\n            \u003ctd\u003eAdd the \u003cstrong\u003e.devcontainer\u003c/strong\u003e files to the currently opened project directory, necessary to use a ESP-IDF project in a Docker container with Visual Studio Code\n            \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers\"\u003eDev Containers\u003c/a\u003e extension.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eAdd VS Code Configuration Folder\u003c/td\u003e\n            \u003ctd\u003eAdd \u003cstrong\u003e.vscode\u003c/strong\u003e files to the currently opened project directory. This includes launch.json (for debugging), settings.json and c_cpp_properties.json (for syntax highlight).\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eConfigure ESP-IDF Extension\u003c/td\u003e\n            \u003ctd\u003eOpen a window with a setup wizard to install ESP-IDF, IDF Tools and Python virtual environment.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSelect Output and Notification Mode\u003c/td\u003e\n            \u003ctd\u003eThis extension shows many notifications and output in the Output window \u003cstrong\u003eESP-IDF\u003c/strong\u003e. This command allows you to set if to show notifications only, output only, both notifications and output, or neither.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSelect Where to Save Configuration Settings\u003c/td\u003e\n            \u003ctd\u003eIn Visual Studio Code, settings can be saved in 3 places: User Settings (global settings), workspace ( .code-workspace file) or workspace folder (.vscode/settings.json).\n            More information in \u003ca href=\"https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/additionalfeatures/multiple-projects.html\"\u003eworking with multiple projects\u003c/a\u003e.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003ePick a Workspace Folder\u003c/td\u003e\n            \u003ctd\u003eWhen using a Visual Studio Code workspace with multiple folders, this command allows you to choose which workspace folder to apply this extension’s commands to.\n            More information in \u003ca href=\"https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/additionalfeatures/multiple-projects.html\"\u003eworking with multiple projects\u003c/a\u003e.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=11 align=\"center\"\u003eBasic\u003c/td\u003e\n            \u003ctd\u003eShow Example Projects\u003c/td\u003e\n            \u003ctd\u003eLaunch UI to show examples from selected framework and allow you to create a project from them. This command will show frameworks already configured in the extension, so to view ESP-Rainmaker examples, you need to run the \u003cstrong\u003eInstall ESP-Rainmaker\u003c/strong\u003e first (or set the equivalent setting idf.espRainmakerPath), and then execute this command to see the examples.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSet Espressif Device Target\u003c/td\u003e\n            \u003ctd\u003eThis will set the target for the current project (IDF_TARGET). Similar to \u003cstrong\u003eidf.py set-target\u003c/strong\u003e. For example, if you want to use ESP32 or ESP32-C3, you need to execute this command.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSDK Configuration Editor\u003c/td\u003e\n            \u003ctd\u003eLaunch a UI to configure your ESP-IDF project settings. This is equivalent to \u003cstrong\u003eidf.py menuconfig\u003c/strong\u003e.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eG\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eG\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eBuild Your Project\u003c/td\u003e\n            \u003ctd\u003eBuild your project using `CMake` and `Ninja-build` as explained in \u003ca href=\"https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/build-system.html#using-cmake-directly\"\u003eESP-IDF Build System Using Cmake Directly\u003c/a\u003e. You could modify the behavior of the build task with \u003cstrong\u003eidf.cmakeCompilerArgs\u003c/strong\u003e for Cmake configure step and \u003cstrong\u003eidf.ninjaArgs\u003c/strong\u003e for Ninja step. For example, using \u003cstrong\u003e[-j N]\u003c/strong\u003e where N is the number of jobs run in parallel.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eB\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eB\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSize Analysis of the Binaries\u003c/td\u003e\n            \u003ctd\u003eLaunch UI with the ESP-IDF project binaries size information.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eS\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eS\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSelect Port to Use\u003c/td\u003e\n            \u003ctd\u003eSelect which serial port to use for ESP-IDF tasks, such as flashing or monitoring your device.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eP\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eP\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eFlash Your Project\u003c/td\u003e\n            \u003ctd\u003eWrite binary data to the ESP’s flash chip from your current ESP-IDF project. This command will use either UART, DFU or JTAG based on \u003cstrong\u003eidf.flashType\u003c/strong\u003e.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eF\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eF\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eMonitor Device\u003c/td\u003e\n            \u003ctd\u003eThis command will execute \u003cstrong\u003eidf.py monitor\u003c/strong\u003e to start serial communication with Espressif device.\n            Please take a look at the \u003ca href=\"https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-monitor.html?highlight=monitor\"\u003eIDF Monitor\u003c/a\u003e.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eM\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eM\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eOpen ESP-IDF Terminal\u003c/td\u003e\n            \u003ctd\u003eLaunch a terminal window configured with extension ESP-IDF settings. Similar to export.sh script from ESP-IDF CLI.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eT\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eT\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSelect OpenOCD Board Configuration\u003c/td\u003e\n            \u003ctd\u003eSelect the OpenOCD configuration files that match your Espressif device target, such as DevKitC or ESP-Wrover-Kit. This is necessary for flashing with JTAG or debugging your device.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eBuild, Flash and Start a Monitor on Your Device\u003c/td\u003e\n            \u003ctd\u003eBuild the project, write binaries program to device and start a monitor terminal with a single command. Similar to \u003cstrong\u003eidf.py build flash monitor\u003c/strong\u003e.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eD\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eD\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=5 align=\"center\"\u003eProject creation\u003c/td\u003e\n            \u003ctd\u003eShow Example Projects\u003c/td\u003e\n            \u003ctd\u003eLaunch UI to show examples from selected framework and allow you to create a project from them. This command will show frameworks already configured in the extension, so to view ESP-Rainmaker examples, you need to run the \u003cstrong\u003eInstall ESP-Rainmaker\u003c/strong\u003e first (or set the equivalent setting idf.espRainmakerPath), and then execute this command to see the examples.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eCreate Project from Extension Template\u003c/td\u003e\n            \u003ctd\u003eCreate an ESP-IDF project using one of the extension template projects.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eC\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eC\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eCreate New ESP-IDF Component\u003c/td\u003e\n            \u003ctd\u003eCreate a new component in the current directory based on ESP-IDF component template.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eImport ESP-IDF Project\u003c/td\u003e\n            \u003ctd\u003eImport an existing ESP-IDF project, add .vscode and .devcontainer files to a new location, and optionally rename the project.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eNew Project\u003c/td\u003e\n            \u003ctd\u003eLaunch UI with a ESP-IDF project creation wizard using example templates from ESP-IDF and additional frameworks configured in the extension.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eN\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eN\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=7 align=\"center\"\u003eFlashing\u003c/td\u003e\n            \u003ctd\u003eSelect Flash Method\u003c/td\u003e\n            \u003ctd\u003eSelect which flash method to use for \u003cstrong\u003eFlash Your Project\u003c/strong\u003e command. It can be DFU, JTAG or UART.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eFlash Your Project\u003c/td\u003e\n            \u003ctd\u003eWrite binary data to the ESP’s flash chip from your current ESP-IDF project. This command will use either UART, DFU or JTAG based on \u003cstrong\u003eidf.flashType\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eF\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eF\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eFlash (DFU) Your Project\u003c/td\u003e\n            \u003ctd\u003eWrite binary data to the ESP’s flash chip from your current ESP-IDF project using DFU. Only for ESP32-S2 and ESP32-S3. \u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eFlash (UART) Your Project\u003c/td\u003e\n            \u003ctd\u003eWrite binary data to the ESP’s flash chip from your current ESP-IDF project using esptool.py.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eFlash (with JTAG)\u003c/td\u003e\n            \u003ctd\u003eWrite binary data to the ESP’s flash chip from your current ESP-IDF project using OpenOCD JTAG.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eEncrypt and Flash Your Project\u003c/td\u003e\n            \u003ctd\u003eExecute flashing the project program to device while adding \u003cstrong\u003e--encrypt\u003c/strong\u003e for partitions to be encrypted.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eErase Flash Memory from Device\u003c/td\u003e\n            \u003ctd\u003eExecute \u003cstrong\u003eesptool.py erase_flash\u003c/strong\u003e command to erase flash chip (set to 0xFF bytes).\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eR\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eR\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=4 align=\"center\"\u003eCode coverage\u003c/td\u003e\n            \u003ctd\u003eAdd Editor Coverage\u003c/td\u003e\n            \u003ctd\u003eParse your project \u003ca href=\"https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/app_trace.html#gcov-source-code-coverage)\"\u003eGCOV code coverage\u003c/a\u003e files to add color lines\n            representing code coverage on currently opened source code file.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eConfigure Project SDKConfig for Coverage\u003c/td\u003e\n            \u003ctd\u003eSet required values in your project SDKConfig to enable code coverage analysis.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eGet HTML Coverage Report for Project\u003c/td\u003e\n            \u003ctd\u003eParse your project \u003ca href=\"https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/app_trace.html#gcov-source-code-coverage)\"\u003eGCOV code coverage\u003c/a\u003e files to generate a HTML coverage report.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eRemove Editor Coverage\u003c/td\u003e\n            \u003ctd\u003eRemove editor colored lines from \u003cstrong\u003eAdd Editor Coverage\u003c/strong\u003e command \u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=8 align=\"center\"\u003eAdditional frameworks\u003c/td\u003e\n            \u003ctd\u003eInstall ESP-ADF\u003c/td\u003e\n            \u003ctd\u003eClone ESP-ADF inside the selected directory and set \u003cstrong\u003eidf.espAdfPath\u003c/strong\u003e (\u003cstrong\u003eidf.espAdfPathWin\u003c/strong\u003e in Windows) configuration setting.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eAdd Arduino ESP32 as ESP-IDF Component\u003c/td\u003e\n            \u003ctd\u003eAdd \u003ca href=\"https://github.com/espressif/arduino-esp32\"\u003eArduino-ESP32\u003c/a\u003e as a ESP-IDF component\n            in your current directory (\u003cstrong\u003e${CURRENT_DIRECTORY}/components/arduino\u003c/strong\u003e).\u003c/a\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eInstall ESP-IDF Python Packages (DEPRECATION NOTICE)\u003c/td\u003e\n            \u003ctd\u003eInstall extension Python packages. This command is deprecated and will be removed soon. \u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eInstall ESP-MDF\u003c/td\u003e\n            \u003ctd\u003eClone ESP-MDF inside the selected directory and set \u003cstrong\u003eidf.espMdfPath\u003c/strong\u003e (\u003cstrong\u003eidf.espMdfPathWin\u003c/strong\u003e in Windows) configuration setting.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eInstall ESP-Matter\u003c/td\u003e\n            \u003ctd\u003eClone ESP-Matter and set \u003cstrong\u003eidf.espMatterPath\u003c/strong\u003e. ESP-Matter is not supported in Windows. Make sure to install \u003ca href=\"https://github.com/espressif/connectedhomeip/blob/v1.1-branch/docs/guides/BUILDING.md#prerequisites\"\u003eMatter system prerequisites\u003c/a\u003e first.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSet ESP-MATTER Device Path (ESP_MATTER_DEVICE_PATH)\u003c/td\u003e\n            \u003ctd\u003eThe \u003cstrong\u003eESP-IDF: Set ESP-MATTER Device Path (ESP_MATTER_DEVICE_PATH)\u003c/strong\u003e is used to define the device path for ESP-Matter. ESP-Matter is not supported in Windows.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eInstall ESP-Rainmaker\u003c/td\u003e\n            \u003ctd\u003eClone ESP-Rainmaker and set \u003cstrong\u003eidf.espRainmakerPath\u003c/strong\u003e (\u003cstrong\u003eidf.espRainmakerPathWin\u003c/strong\u003e in Windows) configuration setting.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eInstall ESP-HomeKit-SDK\u003c/td\u003e\n            \u003ctd\u003eClone ESP-HomeKit-SDK inside the selected directory and set \u003cstrong\u003eidf.espHomeKitSdkPath\u003c/strong\u003e (\u003cstrong\u003eidf.espHomeKitSdkPathWin\u003c/strong\u003e in Windows) configuration setting.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=2 align=\"center\"\u003eeFuse\u003c/td\u003e\n            \u003ctd\u003eGet eFuse Summary\u003c/td\u003e\n            \u003ctd\u003eRetrieve a list of eFuses and their corresponding values from the chip currently connected to the serial port.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eClear eFuse Summary\u003c/td\u003e\n            \u003ctd\u003eClear the eFuse Summary tree from ESP Explorer EFUSEEXPLORER.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=3 align=\"center\"\u003eQEMU\u003c/td\u003e\n            \u003ctd\u003eLaunch QEMU Server\u003c/td\u003e\n            \u003ctd\u003eAs described in \u003ca href=\"https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/additionalfeatures/qemu.html\"\u003eQEMU documentation\u003c/a\u003e, this command will execute ESP32 QEMU from the project Dockerfile with the current project binaries.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eLaunch QEMU Debug Session\u003c/td\u003e\n            \u003ctd\u003eAs described in \u003ca href=\"https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/additionalfeatures/qemu.html\"\u003eQEMU documentation\u003c/a\u003e, this command will start a debug session to ESP32 QEMU from the project Dockerfile with the current project binaries.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eMonitor QEMU Device\u003c/td\u003e\n            \u003ctd\u003eAs described in \u003ca href=\"https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/additionalfeatures/qemu.html\"\u003eQEMU documentation\u003c/a\u003e, this command will start a terminal to monitor the ESP32 QEMU from the project Dockerfile with the current project binaries.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=3 align=\"center\"\u003eMonitoring\u003c/td\u003e\n            \u003ctd\u003eMonitor Device\u003c/td\u003e\n            \u003ctd\u003eThis command will execute \u003cstrong\u003eidf.py monitor\u003c/strong\u003e to start serial communication with Espressif device.\n            Please take a look at the \u003ca href=\"https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-monitor.html?highlight=monitor\"\u003eIDF Monitor Documentation\u003c/a\u003e.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eM\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eM\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eLaunch IDF Monitor for Core Dump Mode/GDB Stub Mode\u003c/td\u003e\n            \u003ctd\u003eLaunch ESP-IDF Monitor with WebSocket capabilities. If you has configured the panic handler to gdbstub or core dump, the monitor will launch a post-mortem debug session of the chip.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eMonitor QEMU Device\u003c/td\u003e\n            \u003ctd\u003eAs described in \u003ca href=\"https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/additionalfeatures/qemu.html\"\u003eQEMU documentation\u003c/a\u003e, this command will start a terminal to monitor the ESP32 QEMU from the project Dockerfile with the current project binaries.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=3 align=\"center\"\u003eEditors\u003c/td\u003e\n            \u003ctd\u003eNVS Partition Editor\u003c/td\u003e\n            \u003ctd\u003eLaunch UI to create a CSV file for \u003ca href=\"https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/storage/nvs_flash.html\"\u003eESP-IDF Non-Volatile Storage Library\u003c/a\u003e.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003ePartition Table Editor\u003c/td\u003e\n            \u003ctd\u003eLaunch UI to manage custom partition table as described in \u003ca href=\"https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/partition-tables.html\"\u003eESP-IDF Partition Tables\u003c/a\u003e.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSDK Configuration Editor\u003c/td\u003e\n            \u003ctd\u003eLaunch a UI to configure your ESP-IDF project settings. This is equivalent to \u003cstrong\u003eidf.py menuconfig\u003c/strong\u003e.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eG\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eG\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=2 align=\"center\"\u003eUnit Testing\u003c/td\u003e\n            \u003ctd\u003eUnit Test: Build and Flash Unit Test App for Testing\u003c/td\u003e\n            \u003ctd\u003eCopy the unit test app in the current project, build the current project and flash the unit test application to the connected device. More information in \u003ca href=\"https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/additionalfeatures/unit-testing.html\"\u003eUnit testing documentation\u003c/a\u003e.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eUnit Test: Install ESP-IDF PyTest Requirements\u003c/td\u003e\n            \u003ctd\u003eInstall the ESP-IDF Pytest requirement packages to be able to execute ESP-IDF unit tests. More information in \u003ca href=\"https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/additionalfeatures/unit-testing.html\"\u003eUnit Testing documentation\u003c/a\u003e.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=10 align=\"center\"\u003eScripts and Tools\u003c/td\u003e\n            \u003ctd\u003eRun idf.py reconfigure Task\u003c/td\u003e\n            \u003ctd\u003eThis command will execute \u003cstrong\u003eidf.py reconfigure\u003c/strong\u003e (CMake configure task), which is useful for generating compile_commands.json for the C/C++ language support.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eErase Flash Memory from Device\u003c/td\u003e\n            \u003ctd\u003eExecute \u003cstrong\u003eesptool.py erase_flash\u003c/strong\u003e command to erase flash chip (set to 0xFF bytes).\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eR\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eR\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eDispose of Current SDK Configuration Editor Server Process\u003c/td\u003e\n            \u003ctd\u003eIf you already executed the SDK Configuration Editor, a cache process will remain in the background for faster reopening. This command will dispose of such cache process.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eDoctor Command\u003c/td\u003e\n            \u003ctd\u003eRun a diagnostic of the extension setup settings and extension logs to provide a troubleshooting report.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eTroubleshoot Form\u003c/td\u003e\n            \u003ctd\u003eLaunch UI for user to send a troubleshoot report with steps to reproduce. Run a diagnostic of the extension setup settings and extension logs to send to telemetry backend.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eRun ESP-IDF-SBOM Vulnerability Check\u003c/td\u003e\n            \u003ctd\u003eCreates Software bill of materials (SBOM) files in the Software Package Data Exchange (SPDX) format for applications generated by the Espressif IoT Development Framework (ESP-IDF).\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSave Default SDKCONFIG File (save-defconfig)\u003c/td\u003e\n            \u003ctd\u003eGenerate sdkconfig.defaults files using the project current sdkconfig file.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eShow Ninja Build Summary\u003c/td\u003e\n            \u003ctd\u003eExecute the Chromium ninja-build-summary.py.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSearch in documentation...\u003c/td\u003e\n            \u003ctd\u003eSelect some text from your source code file and search in ESP-IDF documentation with results right in the VS Code ESP-IDF Explorer tab.\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003e⌘\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e \u003ckbd\u003eQ\u003c/kbd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eE\u003c/kbd\u003e \u003ckbd\u003eQ\u003c/kbd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eSearch Error Hint\u003c/td\u003e\n            \u003ctd\u003eType some text to find a matching error from ESP-IDF hints dictionary.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=2 align=\"center\"\u003eCleanup\u003c/td\u003e\n            \u003ctd\u003eClear ESP-IDF Search Results\u003c/td\u003e\n            \u003ctd\u003eClear results from ESP Explorer Documentation Search Results.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eClear Saved ESP-IDF Setups\u003c/td\u003e\n            \u003ctd\u003eClear existing ESP-IDF setups saved by the extension.\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n## Commands for `tasks.json` and `launch.json`\n\nWe have implemented some utilities commands that can be used in `tasks.json` and `launch.json` like:\n\n```json\n\"miDebuggerPath\": \"${command:espIdf.getToolchainGdb}\"\n```\n\n- `espIdf.getExtensionPath`: Get the installed location absolute path.\n- `espIdf.getOpenOcdScriptValue`: Return the value of OPENOCD_SCRIPTS computed from ESP-IDF Tools path, `idf.customExtraVars`, or the system's OPENOCD_SCRIPTS environment variable.\n- `espIdf.getOpenOcdConfig`: Return the openOCD configuration files as string. Example `-f interface/ftdi/esp32_devkitj_v1.cfg -f board/esp32-wrover.cfg`.\n- `espIdf.getProjectName`: Return the project name from current workspace folder `build/project_description.json`.\n- `espIdf.getToolchainGcc`: Return the absolute path of the toolchain GCC for the ESP-IDF target given by current IDF_TARGET in sdkconfig or `idf.customExtraVars`[\"IDF_TARGET\"] configuration setting.\n- `espIdf.getToolchainGdb`: Return the absolute path of the toolchain gdb for the ESP-IDF target given by current IDF_TARGET in sdkconfig or `idf.customExtraVars`[\"IDF_TARGET\"] configuration setting.\n- `espIdf.getIDFTarget`: Return the current IDF_TARGET from sdkconfig or `idf.customExtraVars`[\"IDF_TARGET\"] configuration setting.\n\nSee an example in the [debugging](https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/debugproject.html) documentation.\n\n## Available Tasks in `tasks.json`\n\nA template `tasks.json` is included when creating a project using **ESP-IDF: Create Project from Extension Template**. These tasks can be executed by pressing \u003ckbd\u003eF1\u003c/kbd\u003e, writing `Tasks: Run task` and selecting one of the following:\n\n1. `Build` - Build Project\n2. `Set Target to esp32`\n3. `Set Target to esp32s2`\n4. `Clean` - Clean the project\n5. `Flash` - Flash the device\n6. `Monitor` - Start a monitor terminal\n7. `OpenOCD` - Start the OpenOCD server\n8. `BuildFlash` - Execute a build followed by a flash command\n\nNote that for OpenOCD tasks, you need to define `OpenOCD_SCRIPTS` in your system environment variables with OpenOCD scripts folder path.\n\n# Troubleshooting\n\nIf something is not working, please check for any error on one of these:\n\n\u003e **NOTE:** Use `idf.OpenOCDDebugLevel` configuration setting to 3 or more to show debug logging in OpenOCD server output.\n\n\u003e **NOTE:** Use `logLevel` in your \u003cproject-directory\u003e/.vscode/launch.json to 3 or more to show more debug adapter output.\n\n1. In Visual Studio Code select menu **View** \u003e **Output** \u003e **ESP-IDF**. This output information is useful to know what is happening in the extension.\n2. In Visual Studio Code select menu **View** \u003e **Command Palette...** and type `ESP-IDF: Doctor Command` to generate a report of your environment configuration and it will be copied in your clipboard to paste anywhere.\n3. Check log file which can be obtained from:\n\n- Windows: `%USERPROFILE%\\.vscode\\extensions\\espressif.esp-idf-extension-VERSION\\esp_idf_vsc_ext.log`\n- Linux \u0026 MacOSX: `$HOME/.vscode/extensions/espressif.esp-idf-extension-VERSION/esp_idf_vsc_ext.log`\n\n4. In Visual Studio Code, select menu **Help** \u003e **Toggle Developer Tools** and copy any error in the Console tab related to this extension.\n\n5. Visual Studio Code allows you to configure settings at different levels: **Global (User Settings)**, **Workspace** and **Workspace Folder**, so make sure your project has the right settings. The `ESP-IDF: Doctor command` result might give the values from user settings instead of the workspace folder settings.\n\n6. Refer to the [OpenOCD troubleshooting FAQ](https://github.com/espressif/OpenOCD-esp32/wiki/Troubleshooting-FAQ) for help with application tracing, debugging, or other OpenOCD-related issues that may appear in the OpenOCD output.\n\n7. In some cases, the default shell (Powershell, zsh, sh, .etc) configured in VS Code could affect the behavior of the extension. Make sure that MSYS/MinGW is not set in the environment and the variables don't conflict with terminal behavior. The `ESP-IDF: Doctor Command` shows which shell is detected by the extension when running tasks like building, flashing and monitoring. More information in [here](https://code.visualstudio.com/docs/terminal/profiles).\n\nIf there is any Python package error, please try to reinstall the required Python packages with the **ESP-IDF: Install ESP-IDF Python Packages** command or running the setup again with the **ESP-IDF: Configure ESP-IDF Extension** command.\n\n\u003e **NOTE:** When downloading ESP-IDF using git cloning in Windows, if you receive errors like \"unable to create symlink\", enabling `Developer Mode` while cloning ESP-IDF could help resolve the issue.\n\nIf you can't resolve the error, please search in the [github repository issues](http://github.com/espressif/vscode-esp-idf-extension/issues) for existing errors or open a new issue [here](https://github.com/espressif/vscode-esp-idf-extension/issues/new/choose).\n\n# Code of Conduct\n\nThis project and everyone participating in it is governed by the [Code of Conduct](./docs/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [vscode@espressif.com](mailto:vscode@espressif.com).\n\n# License\n\nThis extension is licensed under the Apache License 2.0. Please see the [LICENSE](./LICENSE) file for additional copyright notices and terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fespressif%2Fvscode-esp-idf-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fespressif%2Fvscode-esp-idf-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fespressif%2Fvscode-esp-idf-extension/lists"}