diff --git a/.vscode/tasks.json b/.vscode/tasks.json index a8a4237..714e045 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,35 +1,176 @@ { - "version": "0.1.0", - "command": "bash", - "args": ["-c"], - "isShellCommand": true, - "showOutput": "always", - "suppressTaskName": true, - "options": { - "cwd": "${workspaceRoot}" - }, + "version": "2.0.0", "tasks": [ { - "taskName": "build app", - "args": ["./BUILD all"], - "isBuildCommand": false, + "label": "Build - Build project", + "type": "shell", + "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py build", + "windows": { + "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py build" + }, + "options": { + "env": { + "PATH": "${config:idf.customExtraPaths}" + } + }, + "problemMatcher": [ + { + "owner": "cpp", + "fileLocation": ["relative", "${workspaceFolder}"], + "pattern": { + "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + }, + { + "owner": "cpp", + "fileLocation": "absolute", + "pattern": { + "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + } + ], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Set ESP-IDF Target", + "type": "shell", + "command": "${command:espIdf.setTarget}", "problemMatcher": { "owner": "cpp", "fileLocation": "absolute", "pattern": { - "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "regexp": "^(.*):(//d+):(//d+)://s+(warning|error)://s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } - } + }, + }, + { + "label": "Clean - Clean the project", + "type": "shell", + "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py fullclean", + "windows": { + "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py fullclean" + }, + "options": { + "env": { + "PATH": "${config:idf.customExtraPaths}" + } + }, + "problemMatcher": [ + { + "owner": "cpp", + "fileLocation": ["relative", "${workspaceFolder}"], + "pattern": { + "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + }, + { + "owner": "cpp", + "fileLocation": "absolute", + "pattern": { + "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + } + ], + }, + { + "label": "Flash - Flash the device", + "type": "shell", + "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py -p ${config:idf.port} -b ${config:idf.flashBaudRate} flash", + "windows": { + "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py flash -p ${config:idf.portWin} -b ${config:idf.flashBaudRate}" + }, + "options": { + "env": { + "PATH": "${config:idf.customExtraPaths}" + } + }, + "problemMatcher": [ + { + "owner": "cpp", + "fileLocation": ["relative", "${workspaceFolder}"], + "pattern": { + "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + }, + { + "owner": "cpp", + "fileLocation": "absolute", + "pattern": { + "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + } + ], + }, + { + "label": "Monitor: Start the monitor", + "type": "shell", + "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py -p ${config:idf.port} monitor", + "windows": { + "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py monitor -p ${config:idf.portWin}" + }, + "options": { + "env": { + "PATH": "${config:idf.customExtraPaths}", + } + }, + "dependsOn": "Flash - Flash the device", }, { - "taskName": "build app -j8", - "args": ["./BUILD -j8 all"], - "isBuildCommand": true, + "label":"OpenOCD: Start openOCD", + "type":"shell", + "presentation": { + "echo": true, + "reveal": "never", + "focus": false, + "panel":"new" + }, + "command":"openocd -s ${command:espIdf.getOpenOcdScriptValue} ${command:espIdf.getOpenOcdConfigs}", + "windows": { + "command": "openocd.exe -s ${command:espIdf.getOpenOcdScriptValue} ${command:espIdf.getOpenOcdConfigs}" + }, + "options": { + "env": { + "PATH": "${config:idf.customExtraPaths}" + } + }, "problemMatcher": { "owner": "cpp", "fileLocation": "absolute", @@ -41,29 +182,54 @@ "severity": 4, "message": 5 } - } - }, - { - "taskName": "clean app", - "args": ["./BUILD clean"] - }, - { - "taskName": "flash app", - "args": ["make app-flash"] - }, - { - "taskName": "monitor", - "command": "gnome-terminal", - "args": ["-e","make monitor"], - "isShellCommand": false, - "showOutput": "never" + }, }, { - "taskName": "menuconfig", - "command": "gnome-terminal", - "args": ["-e","make menuconfig"], - "isShellCommand": false, - "showOutput": "never" + "label": "adapter", + "type": "shell", + "command": "${config:idf.pythonBinPath}", + "isBackground": true, + "options": { + "env": { + "PATH": "${config:idf.customExtraPaths}", + "PYTHONPATH": "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter" + } + }, + "problemMatcher": { + "background": { + "beginsPattern": "\bDEBUG_ADAPTER_STARTED\b", + "endsPattern": "DEBUG_ADAPTER_READY2CONNECT", + "activeOnStart": true + }, + "pattern": { + "regexp": "(\\d+)-(\\d+)-(\\d+)\\s(\\d+):(\\d+):(\\d+),(\\d+)\\s-(.+)\\s(ERROR)", + "file": 8, + "line": 2, + "column": 3, + "severity": 4, + "message": 9 + } + }, + "args": [ + "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter_main.py", + "-e", "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf", + "-s", "${command:espIdf.getOpenOcdScriptValue}", + "-ip", "localhost", + "-dn", "${config:idf.adapterTargetName}", + "-om", + "connect_to_instance" + ], + "windows": { + "args": [ + "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter_main.py", + "-e", "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf", + "-s", "${command:espIdf.getOpenOcdScriptValue}", + "-ip", "localhost", + "-dn", "${config:idf.adapterTargetName}", + "-om", + "connect_to_instance" + ] + } } ] -} \ No newline at end of file +}