MaskRay / ccls

C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting
Apache License 2.0
3.73k stars 254 forks source link

Triggering autocompletion in a `.h` header file that is considered as c++-header doesn't work (cross compiling for arm Infinitime project) #882

Open FederAndInk opened 2 years ago

FederAndInk commented 2 years ago

Here are some things you should try before filing a bug report:

If none of those help, remove this section and fill out the four sections in the template below.


Observed behavior

triggering autocompletion in a .h header file that is considered as c++-header doesn't work, running ccls in vscode crosscompiling with arm, in Infinitime project, here is a gitpod setup: https://gitpod.io/#https://github.com/FederAndInk/InfiniTime/tree/feature/ccls

%compile_commands.json
--target=arm-none-eabi
--gcc-toolchain=/opt/gcc-arm-none-eabi-9-2020-q2-update
%h -x
%h c++-header
%c -std=c99
%cpp -std=c++14
%h %hpp
-isystem/opt/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/include/c++/9.3.1
-isystem/opt/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/include/c++/9.3.1/arm-none-eabi
-isystem/opt/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/include/c++/9.3.1/backward
-isystem/opt/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/include
-isystem/opt/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/include-fixed
-isystem/opt/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/include

open the src/displayapp/TouchEvents.h file and try ctrl+space to trigger autocompletion

ccls logs:

22:22:38 stdin            pipeline.cc:571 V(2) receive RequestMessage: 2 $ccls/info
22:22:38 ccls             pipeline.cc:878 V(2) respond to RequestMessage: 2
22:22:40 stdin            pipeline.cc:571 V(2) receive RequestMessage: 3 $ccls/info
22:22:40 ccls             pipeline.cc:878 V(2) respond to RequestMessage: 3
22:22:42 stdin            pipeline.cc:573 V(2) receive NotificationMessage textDocument/didOpen
22:22:42 ccls             pipeline.cc:849 V(2) NotificationMessage: $ccls/publishSkippedRanges
22:22:42 ccls             pipeline.cc:849 V(2) NotificationMessage: $ccls/publishSemanticHighlight
22:22:42 preamble     sema_manager.cc:779 I create session for /workspace/InfiniTime/src/displayapp/TouchEvents.h
  /opt/gcc-arm-none-eabi-9-2020-q2-update/bin/arm-none-eabi-gcc --sysroot=/opt/gcc-arm-none-eabi-9-2020-q2-update/bin -DBOARD_PCA10040 -DCONFIG_GPIO_AS_PINRESET -DFREERTOS -DNIMBLE_CFG_CONTROLLER -DNRF52 -DNRF52832 -DNRF52832_XXAA -DNRF52_PAN_12 -DNRF52_PAN_15 -DNRF52_PAN_20 -DNRF52_PAN_31 -DNRF52_PAN_36 -DNRF52_PAN_51 -DNRF52_PAN_54 -DNRF52_PAN_55 -DNRF52_PAN_58 -DNRF52_PAN_64 -DNRF52_PAN_74 -DOS_CPUTIME_FREQ -DQCBOR_DISABLE_EXP_AND_MANTISSA -DQCBOR_DISABLE_FLOAT_HW_USE -DQCBOR_DISABLE_INDEFINITE_LENGTH_STRINGS -DQCBOR_DISABLE_PREFERRED_FLOAT -DQCBOR_DISABLE_UNCOMMON_TAGS -DUSEFULBUF_CONFIG_LITTLE_ENDIAN -D__HEAP_SIZE=4096 -D__STACK_SIZE=1024 -I/workspace/InfiniTime/build/src -I/workspace/InfiniTime/src/libs -I/workspace/InfiniTime/src/FreeRTOS -I/workspace/InfiniTime/src/libs/date/includes -I/workspace/InfiniTime/src/libs/mynewt-nimble/porting/npl/freertos/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/porting/nimble/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/host/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/controller/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/transport/ram/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/drivers/nrf52/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/ext/tinycrypt/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/host/services/gap/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/host/services/gatt/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/host/util/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/host/store/ram/include -I/opt/nRF5_SDK_15.3.0_59ac345/components/drivers_nrf/nrf_soc_nosd -I/opt/nRF5_SDK_15.3.0_59ac345/components -I/opt/nRF5_SDK_15.3.0_59ac345/components/boards -I/opt/nRF5_SDK_15.3.0_59ac345/components/softdevice/common -I/opt/nRF5_SDK_15.3.0_59ac345/integration/nrfx -I/opt/nRF5_SDK_15.3.0_59ac345/integration/nrfx/legacy -I/opt/nRF5_SDK_15.3.0_59ac345/modules/nrfx -I/opt/nRF5_SDK_15.3.0_59ac345/modules/nrfx/drivers/include -I/opt/nRF5_SDK_15.3.0_59ac345/modules/nrfx/hal -I/opt/nRF5_SDK_15.3.0_59ac345/modules/nrfx/mdk -I/opt/nRF5_SDK_15.3.0_59ac345/external/freertos/source/include -I/opt/nRF5_SDK_15.3.0_59ac345/components/toolchain/cmsis/include -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/atomic -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/atomic_fifo -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/atomic_flags -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/balloc -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/bootloader/ble_dfu -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/cli -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/crc16 -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/crc32 -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/crypto -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/csense -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/csense_drv -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/delay -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/ecc -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/experimental_section_vars -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/experimental_task_manager -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/fds -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/fstorage -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/gfx -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/gpiote -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/hardfault -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/hci -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/led_softblink -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/log -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/log/src -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/low_power_pwm -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/mem_manager -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/memobj -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/mpu -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/mutex -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/pwm -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/pwr_mgmt -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/queue -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/ringbuf -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/scheduler -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/sdcard -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/slip -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/sortlist -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/spi_mngr -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/stack_guard -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/strerror -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/svc -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/timer -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/audio -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/cdc -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/cdc/acm -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/hid -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/hid/generic -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/hid/kbd -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/hid/mouse -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/msc -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/util -I/opt/nRF5_SDK_15.3.0_59ac345/external/segger_rtt -I/opt/nRF5_SDK_15.3.0_59ac345/external/fprintf -I/opt/nRF5_SDK_15.3.0_59ac345/external/thedotfactory_fonts -isystem /workspace/InfiniTime/src/. -isystem /workspace/InfiniTime/src/.. -isystem /workspace/InfiniTime/src/libs/QCBOR/inc -g -mthumb -mabi=aapcs -Wall -Wextra -Warray-bounds=2 -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-nonliteral -ftree-vrp -Wno-unused-parameter -Wno-missing-field-initializers -Wno-unknown-pragmas -Wno-expansion-to-defined -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin --short-enums -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wreturn-type -Werror=return-type -fstack-usage -fno-exceptions -fno-non-call-exceptions -Wformat -Og -std=c99 -o CMakeFiles/pinetime-app.dir/displayapp/lv_pinetime_theme.c.o -c /workspace/InfiniTime/src/displayapp/lv_pinetime_theme.c --target=arm-none-eabi --gcc-toolchain=/opt/gcc-arm-none-eabi-9-2020-q2-update -x c++-header -std=c99 %hpp -Wall -Wextra -working-directory=/workspace/InfiniTime/build/src
22:22:42 stdin            pipeline.cc:571 V(2) receive RequestMessage: 4 textDocument/codeAction
22:22:42 ccls             pipeline.cc:878 V(2) respond to RequestMessage: 4
22:22:42 stdin            pipeline.cc:571 V(2) receive RequestMessage: 5 textDocument/documentSymbol
22:22:42 ccls             pipeline.cc:878 V(2) respond to RequestMessage: 5
22:22:42 indexer10        pipeline.cc:386 I parse /workspace/InfiniTime/src/displayapp/TouchEvents.h
  /opt/gcc-arm-none-eabi-9-2020-q2-update/bin/arm-none-eabi-gcc --sysroot=/opt/gcc-arm-none-eabi-9-2020-q2-update/bin -DBOARD_PCA10040 -DCONFIG_GPIO_AS_PINRESET -DFREERTOS -DNIMBLE_CFG_CONTROLLER -DNRF52 -DNRF52832 -DNRF52832_XXAA -DNRF52_PAN_12 -DNRF52_PAN_15 -DNRF52_PAN_20 -DNRF52_PAN_31 -DNRF52_PAN_36 -DNRF52_PAN_51 -DNRF52_PAN_54 -DNRF52_PAN_55 -DNRF52_PAN_58 -DNRF52_PAN_64 -DNRF52_PAN_74 -DOS_CPUTIME_FREQ -DQCBOR_DISABLE_EXP_AND_MANTISSA -DQCBOR_DISABLE_FLOAT_HW_USE -DQCBOR_DISABLE_INDEFINITE_LENGTH_STRINGS -DQCBOR_DISABLE_PREFERRED_FLOAT -DQCBOR_DISABLE_UNCOMMON_TAGS -DUSEFULBUF_CONFIG_LITTLE_ENDIAN -D__HEAP_SIZE=4096 -D__STACK_SIZE=1024 -I/workspace/InfiniTime/build/src -I/workspace/InfiniTime/src/libs -I/workspace/InfiniTime/src/FreeRTOS -I/workspace/InfiniTime/src/libs/date/includes -I/workspace/InfiniTime/src/libs/mynewt-nimble/porting/npl/freertos/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/porting/nimble/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/host/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/controller/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/transport/ram/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/drivers/nrf52/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/ext/tinycrypt/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/host/services/gap/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/host/services/gatt/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/host/util/include -I/workspace/InfiniTime/src/libs/mynewt-nimble/nimble/host/store/ram/include -I/opt/nRF5_SDK_15.3.0_59ac345/components/drivers_nrf/nrf_soc_nosd -I/opt/nRF5_SDK_15.3.0_59ac345/components -I/opt/nRF5_SDK_15.3.0_59ac345/components/boards -I/opt/nRF5_SDK_15.3.0_59ac345/components/softdevice/common -I/opt/nRF5_SDK_15.3.0_59ac345/integration/nrfx -I/opt/nRF5_SDK_15.3.0_59ac345/integration/nrfx/legacy -I/opt/nRF5_SDK_15.3.0_59ac345/modules/nrfx -I/opt/nRF5_SDK_15.3.0_59ac345/modules/nrfx/drivers/include -I/opt/nRF5_SDK_15.3.0_59ac345/modules/nrfx/hal -I/opt/nRF5_SDK_15.3.0_59ac345/modules/nrfx/mdk -I/opt/nRF5_SDK_15.3.0_59ac345/external/freertos/source/include -I/opt/nRF5_SDK_15.3.0_59ac345/components/toolchain/cmsis/include -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/atomic -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/atomic_fifo -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/atomic_flags -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/balloc -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/bootloader/ble_dfu -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/cli -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/crc16 -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/crc32 -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/crypto -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/csense -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/csense_drv -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/delay -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/ecc -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/experimental_section_vars -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/experimental_task_manager -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/fds -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/fstorage -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/gfx -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/gpiote -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/hardfault -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/hci -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/led_softblink -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/log -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/log/src -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/low_power_pwm -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/mem_manager -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/memobj -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/mpu -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/mutex -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/pwm -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/pwr_mgmt -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/queue -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/ringbuf -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/scheduler -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/sdcard -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/slip -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/sortlist -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/spi_mngr -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/stack_guard -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/strerror -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/svc -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/timer -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/audio -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/cdc -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/cdc/acm -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/hid -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/hid/generic -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/hid/kbd -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/hid/mouse -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/usbd/class/msc -I/opt/nRF5_SDK_15.3.0_59ac345/components/libraries/util -I/opt/nRF5_SDK_15.3.0_59ac345/external/segger_rtt -I/opt/nRF5_SDK_15.3.0_59ac345/external/fprintf -I/opt/nRF5_SDK_15.3.0_59ac345/external/thedotfactory_fonts -isystem /workspace/InfiniTime/src/. -isystem /workspace/InfiniTime/src/.. -isystem /workspace/InfiniTime/src/libs/QCBOR/inc -g -mthumb -mabi=aapcs -Wall -Wextra -Warray-bounds=2 -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-nonliteral -ftree-vrp -Wno-unused-parameter -Wno-missing-field-initializers -Wno-unknown-pragmas -Wno-expansion-to-defined -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin --short-enums -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wreturn-type -Werror=return-type -fstack-usage -fno-exceptions -fno-non-call-exceptions -Wformat -Og -std=c99 -o CMakeFiles/pinetime-app.dir/displayapp/lv_pinetime_theme.c.o -c /workspace/InfiniTime/src/displayapp/lv_pinetime_theme.c --target=arm-none-eabi --gcc-toolchain=/opt/gcc-arm-none-eabi-9-2020-q2-update -x c++-header -std=c99 %hpp -Wall -Wextra -working-directory=/workspace/InfiniTime/build/src

22:22:49 stdin            pipeline.cc:571 V(2) receive RequestMessage: 18 textDocument/hover
22:22:49 ccls             pipeline.cc:878 V(2) respond to RequestMessage: 18
22:22:50 stdin            pipeline.cc:571 V(2) receive RequestMessage: 19 $ccls/info
22:22:50 ccls             pipeline.cc:878 V(2) respond to RequestMessage: 19
22:22:50 stdin            pipeline.cc:571 V(2) receive RequestMessage: 20 textDocument/completion
22:22:52 stdin            pipeline.cc:571 V(2) receive RequestMessage: 21 $ccls/info
22:22:52 ccls             pipeline.cc:878 V(2) respond to RequestMessage: 21
22:22:54 stdin            pipeline.cc:571 V(2) receive RequestMessage: 22 $ccls/info
22:22:54 ccls             pipeline.cc:878 V(2) respond to RequestMessage: 22
22:22:56 stdin            pipeline.cc:571 V(2) receive RequestMessage: 23 $ccls/info
22:22:56 ccls             pipeline.cc:878 V(2) respond to RequestMessage: 23
22:22:58 stdin            pipeline.cc:571 V(2) receive RequestMessage: 24 $ccls/info
22:22:58 ccls             pipeline.cc:878 V(2) respond to RequestMessage: 24
22:23:00 stdin            pipeline.cc:571 V(2) receive RequestMessage: 25 $ccls/info
22:23:00 ccls             pipeline.cc:878 V(2) respond to RequestMessage: 25
22:23:02 stdin            pipeline.cc:571 V(2) receive RequestMessage: 26 $ccls/info

we can see the receive RequestMessage: 20 textDocument/completion but no response.

Expected behavior

Autocompletion working

Steps to reproduce

  1. open the gitpod: https://gitpod.io/#https://github.com/FederAndInk/InfiniTime/tree/feature/ccls
  2. install ccls and CMake Tools extensions
  3. open .vscode/cmake-variants.json file and hit ctrl+S to update the cmake extension (bug with the cmake extension)
  4. hit F1 and CMake: configure (select gcc and Debug OpenOCD No DFU)
  5. open the src/displayapp/TouchEvents.h file and try ctrl+space to trigger autocompletion

System information