platformio / platformio-core

Your Gateway to Embedded Software Development Excellence :alien:
https://platformio.org
Apache License 2.0
7.73k stars 785 forks source link

code compiles, but lang server(s) complain about missing traits #4180

Closed gdanov closed 2 years ago

gdanov commented 2 years ago

Configuration

OSX 12.1

PlatformIO Version (platformio --version):

PlatformIO Core, version 5.2.5

Description of problem

My code compiles, but I get different errors reported by the language servers about missing traits (is_same, is_void, etc.) when I use collections. Few examples:

Screenshot 2022-02-12 at 21 00 36 Screenshot 2022-02-12 at 21 01 11

When I try to construct collections with structs it gets even worse. Provided I see in the xtensa source fair deal of std:: collections, I suspect the language server is missing some headers. But I'm C++ newb so...

I use .ccls file generated with pio init --ide emacs --board lolin_d32_pro

both ccls and clangd complain in similar manner, but clangd (just tested for change) spits out many more problems. I'm interested only in ccls or whatever you officially support.

Steps to Reproduce

  1. generate .ccls file
  2. use std::vector (for example)
  3. check language server (in emacs flycheck) output

Actual Results

missing traits

Expected Results

no errors

If problems with PlatformIO Build System:

The content of platformio.ini:

clang

%c -mlongcalls -Wno-frame-address -std=gnu99 -Wno-old-style-declaration -mfix-esp32-psram-cache-issue -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -MMD -Og -g2 -ggdb2
%cpp -mlongcalls -Wno-frame-address -std=gnu++11 -fexceptions -fno-rtti -mfix-esp32-psram-cache-issue -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -MMD -Og -g2 -ggdb2

-I/Users/gdanov/work/playground/gaarduino/include
-I/Users/gdanov/work/playground/gaarduino/src
-I/Users/gdanov/work/playground/gaarduino/lib/input_metric
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/Update/src
-I/Users/gdanov/work/playground/gaarduino/.pio/libdeps/lolin_d32_pro/MAX6675 library
-I/Users/gdanov/work/playground/gaarduino/.pio/libdeps/lolin_d32_pro/PID
-I/Users/gdanov/work/playground/gaarduino/.pio/libdeps/lolin_d32_pro/ESP32 ESP32S2 AnalogWrite
-I/Users/gdanov/work/playground/gaarduino/.pio/libdeps/lolin_d32_pro/RBDdimmer/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/config
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions/freertos
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/port/xtensa/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc/esp32
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/heap/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/log/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps/sntp
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/lwip/src/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include/arch
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/esp32/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/platform_port/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include/esp32
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/esp32
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_common/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/soc
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/public_compat
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/esp32/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/esp32/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_pm/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ringbuf/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/esp32/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/vfs/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_wifi/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_event/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_netif/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_eth/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcpip_adapter/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/esp32/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ipc/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_trace/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_timer/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/port/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/mbedtls/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/esp_crt_bundle/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_update/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spi_flash/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bootloader_support/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nvs_flash/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/pthread/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/xtensa
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/esp32
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include/port/xtensa
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/port/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/esp_supplicant/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ieee802154/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/console
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/asio/asio/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/port/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/osi/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/include/esp32/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/api/include/api
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cbor/port/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/unity/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cmock/CMock/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/port/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/libcoap/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/port/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/nghttp2/lib/includes
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls/esp-tls-crypto
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_adc_cal/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hid/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcp_transport/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_client/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_server/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_ota/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/interface
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protobuf-c/protobuf-c
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/common
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/security
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/transports
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mdns/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_local_ctrl/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/sdmmc/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_serial_slave_link/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_websocket_client/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/expat/expat/lib
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/port/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wear_levelling/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/diskio
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/vfs
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freemodbus/common/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include/esp32
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/jsmn/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json/cJSON
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/libsodium/src/libsodium/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/port_include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mqtt/esp-mqtt/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/openssl/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/perfmon/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spiffs/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ulp/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wifi_provisioning/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/button/button/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/jsmn/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_generator
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_schedule/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rainmaker/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/qrcode/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ws2812_led
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_littlefs/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_littlefs/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/dotprod/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/support/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/hann/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/blackman/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/blackman_harris/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/blackman_nuttall/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/nuttall/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/flat_top/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/iir/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/fir/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/add/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/sub/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/mul/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/addc/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/mulc/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/sqrt/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/matrix/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/fft/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/dct/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/conv/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/common/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/kalman/ekf/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/kalman/ekf_imu13states/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-face/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-face/include/tool
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-face/include/typedef
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-face/include/image
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-face/include/math
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-face/include/nn
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-face/include/layer
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-face/include/detect
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-face/include/model_zoo
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/driver/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/conversions/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fb_gfx/include
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/cores/esp32
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/variants/d32_pro
-I/Users/gdanov/work/playground/gaarduino/lib/stat/src
-I/Users/gdanov/work/playground/gaarduino/.pio/libdeps/lolin_d32_pro/LiquidCrystal
-I/Users/gdanov/.platformio/lib/DallasTemperature
-I/Users/gdanov/.platformio/lib/OneWire
-I/Users/gdanov/.platformio/lib/U8g2/src
-I/Users/gdanov/.platformio/lib/U8glib_ID7/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/FS/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/SD/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/USB/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src
-I/Users/gdanov/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src
-I/Users/gdanov/.platformio/packages/toolchain-xtensa-esp32/xtensa-esp32-elf/include/c++/8.4.0
-I/Users/gdanov/.platformio/packages/toolchain-xtensa-esp32/xtensa-esp32-elf/include/c++/8.4.0/xtensa-esp32-elf
-I/Users/gdanov/.platformio/packages/toolchain-xtensa-esp32/lib/gcc/xtensa-esp32-elf/8.4.0/include
-I/Users/gdanov/.platformio/packages/toolchain-xtensa-esp32/lib/gcc/xtensa-esp32-elf/8.4.0/include-fixed
-I/Users/gdanov/.platformio/packages/toolchain-xtensa-esp32/xtensa-esp32-elf/include

-DPLATFORMIO=50205
-DARDUINO_LOLIN_D32_PRO
-DBOARD_HAS_PSRAM
-DBOARD_HAS_PSRAM
-DHAVE_CONFIG_H
-DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h"
-DUNITY_INCLUDE_CONFIG_H
-DWITH_POSIX
-D_GNU_SOURCE
-DIDF_VER="v4.4-beta1-189-ga79dc75f0a"
-DESP_PLATFORM
-D_POSIX_READER_WRITER_LOCKS
-DARDUINO_ARCH_ESP32
-DESP32
-DF_CPU=240000000L
-DARDUINO=10812
-DARDUINO_VARIANT="d32_pro"
-DARDUINO_BOARD="WEMOS LOLIN D32 PRO"
-DARDUINO_PARTITION_default
-D__PLATFORMIO_BUILD_DEBUG__

Source file to reproduce issue:

#include <Arduino.h>
#include <vector>

int main()
{
    // Create a vector containing integers
    std::vector<int> v ;

    // Add two more integers to vector
    v.push_back(1);
    v.push_back(2);
}

Additional info

gdanov commented 2 years ago

same project works perfectly fine it vscode + platformio. what's the lang server used there? can I steal it's config?

gdanov commented 2 years ago

what seems to fix the problem is:

  1. #include <bits/stdc++.h> at the top of the include list, before Arduino.h
  2. clang-format rule to prevent lsp's auto formatting from reordering ^^^
    
    IncludeCategories:
    - Regex:           '^<bits.*>'
    Priority:        1
    SortPriority:    1
    CaseSensitive:   false