-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
Environment
- OS and version: Ubuntu 20.04.4 LTS
- VS Code: 1.68.0
- C/C++ extension: 1.10.5
- OS and version of remote machine (if applicable): -/-
- GDB / LLDB version: not applicable.
Bug Summary and Steps to Reproduce
Bug Summary:
When using PlatformIO with a Raspberry Pi Pico + Arduino project on Unix-like operating systems (Linux + Mac), Intellisense fails to find all include paths. Reverting the C/C++ by Microsoft extension to 1.9.8 solves the problem. The current version 1.10.5 that you have released 3 days ago breaks it.
Steps to reproduce:
- Install the PlatformIO extension
- Create a new project, choose "Raspberry Pi Pico" as board and "Arduino" framework
- Let the default
src/main.cppcode be. - Use the project task "Build", should be successfull
- Observe intellisense error on
#include <Arduino.h>line
Debugger Configurations
Not relevant for Intellisense. Only launch.json is auto-generated by PlatformIO with
// AUTOMATICALLY GENERATED FILE. PLEASE DO NOT MODIFY IT MANUALLY
//
// PIO Unified Debugger
//
// Documentation: https://docs.platformio.org/page/plus/debugging.html
// Configuration: https://docs.platformio.org/page/projectconf/section_env_debug.html
{
"version": "0.2.0",
"configurations": [
{
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug",
"executable": "/home/max/p_test/.pio/build/pico/firmware.elf",
"projectEnvName": "pico",
"toolchainBinDir": "/home/max/.platformio/packages/toolchain-gccarmnoneeabi/bin",
"internalConsoleOptions": "openOnSessionStart",
"svdPath": "/home/max/.platformio/platforms/raspberrypi/misc/svd/rp2040.svd",
"preLaunchTask": {
"type": "PlatformIO",
"task": "Pre-Debug"
}
},
{
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug (skip Pre-Debug)",
"executable": "/home/max/p_test/.pio/build/pico/firmware.elf",
"projectEnvName": "pico",
"toolchainBinDir": "/home/max/.platformio/packages/toolchain-gccarmnoneeabi/bin",
"internalConsoleOptions": "openOnSessionStart",
"svdPath": "/home/max/.platformio/platforms/raspberrypi/misc/svd/rp2040.svd"
},
{
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug (without uploading)",
"executable": "/home/max/p_test/.pio/build/pico/firmware.elf",
"projectEnvName": "pico",
"toolchainBinDir": "/home/max/.platformio/packages/toolchain-gccarmnoneeabi/bin",
"internalConsoleOptions": "openOnSessionStart",
"svdPath": "/home/max/.platformio/platforms/raspberrypi/misc/svd/rp2040.svd",
"loadMode": "manual"
}
]
}Debugger Logs
None relevant.Other Extensions
PlatformIO: 2.4.3
Additional Information
Project with C/C++ version 1.10.5:
EXACT SAME project with C/C++ version 1.9.8:
Reference .vscode/c_cpp_properties.json
//
// !!! WARNING !!! AUTO-GENERATED FILE!
// PLEASE DO NOT MODIFY IT AND USE "platformio.ini":
// https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags
//
{
"configurations": [
{
"name": "PlatformIO",
"includePath": [
"/home/max/p_test/include",
"/home/max/p_test/src",
"/home/max/.platformio/packages/framework-arduino-mbed/cores/arduino",
"/home/max/.platformio/packages/framework-arduino-mbed/cores/arduino/api/deprecated",
"/home/max/.platformio/packages/framework-arduino-mbed/cores/arduino/api/deprecated-avr-comp",
"/home/max/.platformio/packages/framework-arduino-mbed/variants/RASPBERRY_PI_PICO",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Camera/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Ethernet/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/GC2145",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/GPS/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/GSM/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Himax_HM01B0",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/KernelDebug/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/MCUboot/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/MLC/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/MRI/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Nano33BLE_System/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Nicla_System/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/PDM/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Portenta_Audio/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Portenta_SDCARD/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Portenta_SDRAM/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Portenta_Video/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Portenta_lvgl/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/RPC/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/SE05X/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/SFU/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/SPI",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/STM32H747_System/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Scheduler/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/SocketWrapper/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/ThreadDebug/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/USBAudio",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/USBHID/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/USBHOST/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/USBMSD/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/WiFi/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Wire",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/doom/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/ea_malloc",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/mbed-memory-status",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/openamp_arduino/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/rpclib/src",
""
],
"browse": {
"limitSymbolsToIncludedHeaders": true,
"path": [
"/home/max/p_test/include",
"/home/max/p_test/src",
"/home/max/.platformio/packages/framework-arduino-mbed/cores/arduino",
"/home/max/.platformio/packages/framework-arduino-mbed/cores/arduino/api/deprecated",
"/home/max/.platformio/packages/framework-arduino-mbed/cores/arduino/api/deprecated-avr-comp",
"/home/max/.platformio/packages/framework-arduino-mbed/variants/RASPBERRY_PI_PICO",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Camera/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Ethernet/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/GC2145",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/GPS/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/GSM/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Himax_HM01B0",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/KernelDebug/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/MCUboot/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/MLC/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/MRI/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Nano33BLE_System/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Nicla_System/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/PDM/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Portenta_Audio/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Portenta_SDCARD/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Portenta_SDRAM/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Portenta_Video/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Portenta_lvgl/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/RPC/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/SE05X/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/SFU/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/SPI",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/STM32H747_System/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Scheduler/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/SocketWrapper/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/ThreadDebug/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/USBAudio",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/USBHID/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/USBHOST/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/USBMSD/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/WiFi/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/Wire",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/doom/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/ea_malloc",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/mbed-memory-status",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/openamp_arduino/src",
"/home/max/.platformio/packages/framework-arduino-mbed/libraries/rpclib/src",
""
]
},
"defines": [
"PLATFORMIO=60003",
"ARDUINO_RASPBERRY_PI_PICO",
"ARDUINO_ARCH_RP2040",
"ARM_MATH_CM0PLUS",
"__CMSIS_RTOS",
"COMPONENT_FLASHIAP=1",
"__CORTEX_M0PLUS",
"DEVICE_ANALOGIN=1",
"DEVICE_FLASH=1",
"DEVICE_I2C=1",
"DEVICE_I2CSLAVE=1",
"DEVICE_INTERRUPTIN=1",
"DEVICE_PORT_IN=1",
"DEVICE_PORT_OUT=1",
"DEVICE_PWMOUT=1",
"DEVICE_RESET_REASON=1",
"DEVICE_RTC=1",
"DEVICE_SERIAL=1",
"DEVICE_SERIAL_FC=1",
"DEVICE_SPI=1",
"DEVICE_USBDEVICE=1",
"DEVICE_USTICKER=1",
"DEVICE_WATCHDOG=1",
"__MBED__=1",
"MBED_BUILD_TIMESTAMP=1652255920.4792204",
"__MBED_CMSIS_RTOS_CM",
"MBED_MPU_CUSTOM",
"MBEDTLS_ENTROPY_NV_SEED",
"PICO_NO_BINARY_INFO=1",
"PICO_ON_DEVICE=1",
"PICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1",
"PICO_TIME_DEFAULT_ALARM_POOL_DISABLED",
"PICO_UART_ENABLE_CRLF_SUPPORT=0",
"TARGET_CORTEX",
"TARGET_CORTEX_M",
"TARGET_LIKE_CORTEX_M0",
"TARGET_LIKE_MBED",
"TARGET_M0P",
"TARGET_memmap_default",
"TARGET_NAME=RASPBERRY_PI_PICO",
"TARGET_RASPBERRYPI",
"TARGET_RASPBERRY_PI_PICO",
"TARGET_RELEASE",
"TARGET_RP2040",
"TOOLCHAIN_GCC",
"TOOLCHAIN_GCC_ARM",
"MBED_NO_GLOBAL_USING_DIRECTIVE=1",
"CORE_MAJOR=3",
"CORE_MINOR=1",
"CORE_PATCH=1",
"USE_ARDUINO_PINOUT",
"ARDUINO=10810",
"ARDUINO_ARCH_MBED",
""
],
"cStandard": "c11",
"cppStandard": "c++14",
"compilerPath": "/home/max/.platformio/packages/toolchain-gccarmnoneeabi/bin/arm-none-eabi-gcc",
"compilerArgs": [
"-mcpu=cortex-m0plus",
"-mthumb",
"-iprefix/home/max/.platformio/packages/framework-arduino-mbed/cores/arduino",
"@/home/max/.platformio/packages/framework-arduino-mbed/variants/RASPBERRY_PI_PICO/includes.txt",
""
]
}
],
"version": 4
}Also discussed in platformio/builder-framework-arduino-core-mbed#4
Intellisense can be made to work with the latest extension when transforming the
"-iprefix/home/max/.platformio/packages/framework-arduino-mbed/cores/arduino",
"@/home/max/.platformio/packages/framework-arduino-mbed/variants/RASPBERRY_PI_PICO/includes.txt",
part into seperate entries in the path array.
My guess: Recent versions don't parse -iprefix <path> @<include file> correctly.
Include files come from https://github.com/arduino/ArduinoCore-mbed, includes.txt from https://github.com/arduino/ArduinoCore-mbed/blob/master/variants/RASPBERRY_PI_PICO/includes.txt.