Skip to content

Commit

Permalink
New ESP-IDF project Wizard (VSC-478) (#171)
Browse files Browse the repository at this point in the history
* add new project window

* add template page to new project

* add create project improve UI

* update schema

* add compiler path to ccpp props file

* improve layout

* add espressif icon

* add esp config boards

* add command to readme

* use iconify codicon

* update schema file

* Rename SerialPort.i18n.json to serialPort.i18n.json

* mv open project outsite progress

* update create project cmd

* refactor fix templates html description

Co-authored-by: Brian Ignacio <brian.ignacio@espressif.com>
  • Loading branch information
brianignacio5 and brianignacio5 authored Mar 9, 2021
1 parent 6c90fd4 commit 8036f14
Show file tree
Hide file tree
Showing 33 changed files with 1,700 additions and 137 deletions.
55 changes: 31 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ All the other dependencies like ESP-IDF and ESP-IDF Tools can be installed using
- Check you have installed the [Prerequisites](#Prerequisites)
- Press <kbd>F1</kbd> and type **ESP-IDF: Configure ESP-IDF extension** to open the extension configuration wizard. This will install ESP-IDF and tools and configure the extension.

- Please take a look at [SETUP](./docs/SETUP.md) for details about extension configuration.
- Please take a look at [SETUP](./docs/SETUP.md) for details about extension configuration.

- Press <kbd>F1</kbd> and type **ESP-IDF: Create ESP-IDF project** to generate a template ESP-IDF project.

Expand All @@ -76,47 +76,50 @@ Click <kbd>F1</kbd> to show Visual studio code actions, then type **ESP-IDF** to

| Command Description | Keyboard Shortcuts (Mac) | Keyboard Shortcuts (Windows/ Linux) |
| ------------------------------------------------------- | -------------------------------------- | ----------------------------------------- |
| Configure ESP-IDF extension | | |
| Create ESP-IDF project | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>C</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>C</kbd> |
| Add vscode configuration folder | | |
| Add Arduino ESP32 as ESP-IDF Component | | |
| Add Editor coverage | | |
| Add vscode configuration folder | | |
| Build, Flash and start a monitor on your device | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>D</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>D</kbd> |
| Build your project | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>B</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>B</kbd> |
| Configure ESP-IDF extension | | |
| Configure Paths | | |
| Set Espressif device target | | |
| Create project from extension template | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>C</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>C</kbd> |
| Create new ESP-IDF Component | | |
| Device configuration | | |
| SDK Configuration editor | | |
| Set default sdkconfig file in project | | |
| Select port to use | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>P</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>P</kbd> |
| Full clean project | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>F</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>F</kbd> |
| Build your project | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>B</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>B</kbd> |
| Dispose current SDK Configuration editor server process | | |
| Doctor command | | |
| Flash your project | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>F</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>F</kbd> |
| Monitor your device | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>M</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>M</kbd> |
| Build, Flash and start a monitor on your device | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>D</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>D</kbd> |
| Open ESP-IDF Terminal | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>T</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>T</kbd> |
| Pick a workspace folder | | |
| Size analysis of the binaries | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>S</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>S</kbd> |
| Show Examples Projects | | |
| Add Editor coverage | | |
| Remove Editor coverage | | |
| Full clean project | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>X</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>X</kbd> |
| Get HTML Coverage Report for project | | |
| Search in documentation... | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>D</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>D</kbd> |
| Install ESP-ADF | | |
| Install ESP-MDF | | |
| Install ESP-IDF Python Packages | | |
| Install ESP-MDF | | |
| Monitor your device | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>M</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>M</kbd> |
| New Project | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>N</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>N</kbd> |
| Open ESP-IDF Terminal | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>T</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>T</kbd> |
| Open NVS Partition Editor | | |
| Pick a workspace folder | | |
| SDK Configuration editor | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>G</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>G</kbd> |
| Search in documentation... | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>Q</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>Q</kbd> |
| Select port to use | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>P</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>P</kbd> |
| Select OpenOCD Board Configuration | | |
| Doctor command | | |
| Create new ESP-IDF Component | | |
| Set default sdkconfig file in project | | |
| Set Espressif device target | | |
| Show Examples Projects | | |
| Show ninja build summary | | |
| Dispose current SDK Configuration editor server process | | |
| Size analysis of the binaries | <kbd>⌘</kbd> <kbd>E</kbd> <kbd>S</kbd> | <kbd>Ctrl</kbd> <kbd>E</kbd> <kbd>S</kbd> |
| Remove Editor coverage | | |

The **Add Arduino-ESP32 as ESP-IDF Component** command will add [Arduino-ESP32](https://github.com/espressif/arduino-esp32) as a ESP-IDF component in your current directory (`${CURRENT_DIRECTORY}/components/arduino`). You can also use the **Create ESP-IDF project** command with `arduino-as-component` template to create a new project directory that includes Arduino-esp32 as an ESP-IDF component.

> **NOTE** Not all versions of ESP-IDF are supported. Make sure to check [Arduino-ESP32](https://github.com/espressif/arduino-esp32) to see if your ESP-IDF version is compatible.
The **Show Examples Projects** command allows you create a new project using one of the examples in ESP-IDF, ESP-ADF or ESP-MDF directory if related configuration settings are set.
The **Install ESP-ADF** will clone ESP-ADF to a selected directory and set `idf.espAdfPath` (`idf.espAdfPathWin` in Windows) configuration setting.

The **Install ESP-MDF** will clone ESP-MDF to a selected directory and set `idf.espMdfPath` (`idf.espMdfPathWin` in Windows) configuration setting.

The **Show Examples Projects** command allows you create a new project using one of the examples in ESP-IDF, ESP-ADF or ESP-MDF directory if related configuration settings are set.

### Commands for tasks.json and launch.json

We have implemented some utilities commands that can be used in tasks.json and launch.json like
Expand All @@ -127,6 +130,10 @@ We have implemented some utilities commands that can be used in tasks.json and l

as shown in the [debugging documentation](./DEBUGGING.md).

- `espIdf.getExtensionPath`: Get the installed location absolute path.
- `espIdf.getOpenOcdScriptValue`: Return the value of OPENOCD_SCRIPTS from `idf.customExtraVars` or from system OPENOCD_SCRIPTS environment variable.
- `espIdf.getOpenOcdConfig`: Return the openOCD configuration files as string. Example `"-f interface/ftdi/esp32_devkitj_v1.cfg" -f board/esp32-wrover.cfg`.
- `espIdf.getProjectName`: Return the project name from current workspace folder `build/project_description.json`.
- `espIdf.getXtensaGcc`: Return the absolute path of the xtensa toolchain gcc for the ESP-IDF target given by `idf.adapterTargetName` configuration setting and `idf.customExtraPaths`.
- `espIdf.getXtensaGdb`: Return the absolute path of the xtensa toolchain gdb for the ESP-IDF target given by `idf.adapterTargetName` configuration setting and `idf.customExtraPaths`.

Expand Down
2 changes: 1 addition & 1 deletion docs/LANG_CONTRIBUTE.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Each file has a key value structure such as:

```json
{
"espIdf.createFiles.title": "ESP-IDF: Create ESP-IDF project",
"espIdf.createFiles.title": "ESP-IDF: Create ESP-IDF project from extension template",
"textID": "value"
}
```
Expand Down
9 changes: 5 additions & 4 deletions i18n/en/package.i18n.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
{
"espIdf.createFiles.title": "ESP-IDF: Create project",
"espIdf.createFiles.title": "ESP-IDF: Create project from extension template",
"espIdf.addArduinoAsComponentToCurFolder.title": "ESP-IDF: Add Arduino ESP32 as ESP-IDF Component",
"espIdf.createIdfTerminal.title": "ESP-IDF: Open ESP-IDF Terminal",
"espIdf.createVsCodeFolder.title": "ESP-IDF: Add vscode configuration folder",
"espIdf.setPath.title": "ESP-IDF: Configure Paths",
"espIdf.setTarget.title": "ESP-IDF: Set Espressif device target",
"espIdf.selectConfTarget.title": "ESP-IDF: Select where to save configuration settings",
"espIdf.configDevice.title": "ESP-IDF:Device configuration",
"menuconfig.start.title": "ESP-IDF: SDK Configuration editor",
"cmakeListsEditor.start.title": "ESP-IDF: CMakeLists.txt Editor",
"espIdf.configDevice.title": "ESP-IDF: Device configuration",
"espIdf.menuconfig.start.title": "ESP-IDF: SDK Configuration editor",
"espIdf.cmakeListsEditor.start.title": "ESP-IDF: CMakeLists.txt Editor",
"espIdf.newProject.start.title": "ESP-IDF: New Project",
"espIdf.setDefaultConfig.title": "ESP-IDF: Set default sdkconfig file in project",
"espIdf.selectPort.title": "ESP-IDF: Select port to use",
"espIdf.buildDevice.title": "ESP-IDF: Build your project",
Expand Down
7 changes: 4 additions & 3 deletions i18n/es/package.i18n.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
{
"espIdf.createFiles.title": "ESP-IDF: Crear proyecto",
"espIdf.createFiles.title": "ESP-IDF: Crear proyecto a partir de plantilla de la extensión",
"espIdf.addArduinoAsComponentToCurFolder.title": "ESP-IDF: Agregar Arduino ESP32 como componente ESP-IDF",
"espIdf.createIdfTerminal.title": "ESP-IDF: Abrir terminal ESP-IDF",
"espIdf.createVsCodeFolder.title": "ESP-IDF: Agregar carpeta de configuración vscode",
"espIdf.setPath.title": "ESP-IDF: Configurar rutas ESP-IDF",
"espIdf.selectConfTarget.title": "ESP-IDF: Selecciona donde almacenar tu configuración",
"espIdf.setTarget.title": "ESP-IDF: Selecciona el dispositivo Espressif a utilizar",
"espIdf.configDevice.title": "ESP-IDF: Configuración del dispositivo",
"menuconfig.start.title": "ESP-IDF: Editor de Configuración SDK",
"cmakeListsEditor.start.title": "ESP-IDF: Editor de CMakeLists.txt",
"espIdf.menuconfig.start.title": "ESP-IDF: Editor de Configuración SDK",
"espIdf.cmakeListsEditor.start.title": "ESP-IDF: Editor de CMakeLists.txt",
"espIdf.newProject.start.title": "ESP-IDF: Nuevo Proyecto",
"espIdf.setDefaultConfig.title": "ESP-IDF: Establecer archivo sdkconfig por defecto",
"espIdf.selectPort.title": "ESP-IDF: Seleccionar puerto a utilizar",
"espIdf.buildDevice.title": "ESP-IDF: Construir el proyecto",
Expand Down
7 changes: 4 additions & 3 deletions i18n/ru/package.i18n.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
{
"espIdf.createFiles.title": "ESP-IDF: Создать проект",
"espIdf.createFiles.title": "Создать проект из шаблона расширения",
"espIdf.addArduinoAsComponentToCurFolder.title": "ESP-IDF: Добавить Arduino ESP32 как компонент ESP-IDF",
"espIdf.createIdfTerminal.title": "ESP-IDF: Открыть терминал ESP-IDF",
"espIdf.createVsCodeFolder.title": "ESP-IDF: Добавить папку конфигурации vscode",
"espIdf.setPath.title": "ESP-IDF: Настроить пути",
"espIdf.setTarget.title": "ESP-IDF: Установить целевое устройство Espressif",
"espIdf.selectConfTarget.title": "ESP-IDF: Выбрать место для сохранения настроек конфигурации",
"espIdf.configDevice.title": "ESP-IDF: Конфигурация устройства",
"menuconfig.start.title": "ESP-IDF: Редактор конфигурации SDK",
"cmakeListsEditor.start.title": "ESP-IDF: CMakeLists.txt Редактор",
"espIdf.menuconfig.start.title": "ESP-IDF: Редактор конфигурации SDK",
"espIdf.cmakeListsEditor.start.title": "ESP-IDF: CMakeLists.txt Редактор",
"espIdf.newProject.start.title": "ESP-IDF: Новый проект",
"espIdf.setDefaultConfig.title": "ESP-IDF: Установить файл sdkconfig по умолчанию в проекте",
"espIdf.selectPort.title": "ESP-IDF: Выбрать последовательный порт",
"espIdf.buildDevice.title": "ESP-IDF: Собрать проект",
Expand Down
7 changes: 4 additions & 3 deletions i18n/zh-CN/package.i18n.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
{
"espIdf.createFiles.title": "ESP-IDF: 新建项目",
"espIdf.createFiles.title": "ESP-IDF: 从扩展模板创建项目",
"espIdf.addArduinoAsComponentToCurFolder.title": "ESP-IDF: 添加ArduinoESP32作为ESP-IDF组件",
"espIdf.createIdfTerminal.title": "ESP-IDF: 打开ESP-IDF终端",
"espIdf.createVsCodeFolder.title": "ESP-IDF: 添加 vscode 配置文件夹",
"espIdf.setPath.title": "ESP-IDF:配置路径",
"espIdf.selectConfTarget.title": "ESP-IDF:选择保存配置设置的位置",
"espIdf.setTarget.title": "ESP-IDF: 设置espressif设备目标",
"espIdf.configDevice.title": "ESP-IDF:配置设备",
"menuconfig.start.title": "ESP-IDF:SDK配置编辑器",
"cmakeListsEditor.start.title": "ESP-IDF:CMakeLists.txt文件编辑",
"espIdf.menuconfig.start.title": "ESP-IDF:SDK配置编辑器",
"espIdf.cmakeListsEditor.start.title": "ESP-IDF:CMakeLists.txt文件编辑",
"espIdf.newProject.start.title": "ESP-IDF: 新建项目",
"espIdf.setDefaultConfig.title": "ESP-IDF:设置项目默认的 sdkconfig 文件",
"espIdf.selectPort.title": "ESP-IDF:选择要使用的烧录端口",
"espIdf.buildDevice.title": "ESP-IDF:构建项目",
Expand Down
Loading

0 comments on commit 8036f14

Please sign in to comment.