Giter Club home page Giter Club logo

Comments (24)

Colengms avatar Colengms commented on May 27, 2024 1

Hi @CookiePLMonster .

No Intellisense at all or just not querying the compiler for defines

You're correct in that the IntelliSense engine would still provide results, but system headers are unlikely to be parsed correctly when predefined macros are not set appropriately. That usually results in IntelliSense being effectively broken.

I'm going to go ahead and correct the previously intended behavior of the compilerPath override, to continue to use the arguments provided in compile_commands.json. That should at least allow the original(?) approach, of specifying the same compiler in the compilePath field, to enable fallback for files not in compile_commands.json to use the (same) compiler in the base configuration. We expect to release 1.19.3 within days, and it should include this fix.

from vscode-cpptools.

bobbrow avatar bobbrow commented on May 27, 2024 1

We usually keep issues open while the changes are only available in pre-release.

from vscode-cpptools.

bobbrow avatar bobbrow commented on May 27, 2024

At the most basic level, that doc is oversimplified. We should update it. The strategy for resolving the system includes is documented here: https://code.visualstudio.com/docs/cpp/customize-default-settings-cpp#_system-include-pathdefines-resolution-strategies

For compile_commands.json we allow for users to specify compilerPath to pick a different compiler to query in the event that the compiler listed in compile_commands.json is not queryable.

However, if you are specifying a compiler in compilerPath and it's throwing away important options from the compiler command line that are listed in compile_commands.json, we treat that as a bug in the extension.

from vscode-cpptools.

CookiePLMonster avatar CookiePLMonster commented on May 27, 2024

However, if you are specifying a compiler in compilerPath and it's throwing away important options from the compiler command line that are listed in compile_commands.json, we treat that as a bug in the extension.

That matches my observations, yes. I included c_cpp_properties.json but I forgot to include my current compile_commands.json:

[
    {
        "command": "H:\\dev\\flipper-zero\\.ufbt\\toolchain\\x86_64-windows\\bin\\arm-none-eabi-gcc.EXE -o H:\\dev\\flipper-zero\\.ufbt\\build\\demodemo\\util\\pbm.o -c -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -Wextra -Werror -Wno-address-of-packed-member -Wredundant-decls -Wdouble-promotion -fdata-sections -ffunction-sections -fsingle-precision-constant -fno-math-errno -g -Os -mword-relocations -mlong-calls -fno-common -nostdlib -D_GNU_SOURCE -DFW_CFG_default -D\"M_MEMORY_FULL(x)=abort()\" -DSTM32WB -DSTM32WB55xx -DUSE_FULL_ASSERT -DUSE_FULL_LL_DRIVER -DMBEDTLS_CONFIG_FILE=\\\"mbedtls_cfg.h\\\" -DPB_ENABLE_MALLOC -DFW_ORIGIN_Official -DFURI_NDEBUG -DNDEBUG -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/furi -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/applications/services -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/furi_hal_include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/ble_glue -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/furi_hal -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/mlib -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/cmsis_core -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/stm32wb_cmsis/Include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/stm32wb_hal/Inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/drivers -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/mbedtls/include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/toolbox -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/libusb_stm32/inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/drivers -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/flipper_format -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/one_wire -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/ibutton -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/infrared/encoder_decoder -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/infrared/worker -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/subghz -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/nfc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/digital_signal -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/pulse_reader -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/signal_reader -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/lfrfid -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/flipper_application -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/music_worker -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/nanopb -DFAP_VERSION=\\\"0.1\\\" -IH:\\dev\\flipper-zero\\.ufbt\\build\\demodemo -IH:\\dev\\flipper-zero\\demodemo H:\\dev\\flipper-zero\\demodemo\\util\\pbm.c",
        "directory": "H:\\dev\\flipper-zero\\.ufbt\\current\\scripts\\ufbt",
        "file": "H:\\dev\\flipper-zero\\demodemo\\util\\pbm.c",
        "output": "H:\\dev\\flipper-zero\\.ufbt\\build\\demodemo\\util\\pbm.o"
    },
    {
        "command": "H:\\dev\\flipper-zero\\.ufbt\\toolchain\\x86_64-windows\\bin\\arm-none-eabi-g++.EXE -o H:\\dev\\flipper-zero\\.ufbt\\build\\demodemo\\demodemo.o -c -std=c++17 -fno-rtti -fno-use-cxa-atexit -fno-exceptions -fno-threadsafe-statics -ftemplate-depth=4096 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -Wextra -Werror -Wno-address-of-packed-member -Wredundant-decls -Wdouble-promotion -fdata-sections -ffunction-sections -fsingle-precision-constant -fno-math-errno -g -Os -mword-relocations -mlong-calls -fno-common -nostdlib -D_GNU_SOURCE -DFW_CFG_default -D\"M_MEMORY_FULL(x)=abort()\" -DSTM32WB -DSTM32WB55xx -DUSE_FULL_ASSERT -DUSE_FULL_LL_DRIVER -DMBEDTLS_CONFIG_FILE=\\\"mbedtls_cfg.h\\\" -DPB_ENABLE_MALLOC -DFW_ORIGIN_Official -DFURI_NDEBUG -DNDEBUG -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/furi -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/applications/services -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/furi_hal_include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/ble_glue -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/furi_hal -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/mlib -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/cmsis_core -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/stm32wb_cmsis/Include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/stm32wb_hal/Inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/drivers -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/mbedtls/include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/toolbox -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/libusb_stm32/inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/drivers -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/flipper_format -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/one_wire -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/ibutton -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/infrared/encoder_decoder -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/infrared/worker -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/subghz -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/nfc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/digital_signal -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/pulse_reader -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/signal_reader -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/lfrfid -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/flipper_application -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/music_worker -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/nanopb -DFAP_VERSION=\\\"0.1\\\" -IH:\\dev\\flipper-zero\\.ufbt\\build\\demodemo -IH:\\dev\\flipper-zero\\demodemo H:\\dev\\flipper-zero\\demodemo\\demodemo.cpp",
        "directory": "H:\\dev\\flipper-zero\\.ufbt\\current\\scripts\\ufbt",
        "file": "H:\\dev\\flipper-zero\\demodemo\\demodemo.cpp",
        "output": "H:\\dev\\flipper-zero\\.ufbt\\build\\demodemo\\demodemo.o"
    }
]

Based on this setup, I expect "compilerPath" to be used for files not present in compiler_commands.json, otherwise that JSON should take precedence. Instead, I am seeing that the JSON is completely ignored, as per the logs included above, and the result is that IntelliSense is lacking all the -mcpu=-inferred defines.

from vscode-cpptools.

sean-mcmanus avatar sean-mcmanus commented on May 27, 2024

It seems like we could add a setting to control the precedence...but the "pending" IntelliSense configuration changes would make this a non-issue.

from vscode-cpptools.

CookiePLMonster avatar CookiePLMonster commented on May 27, 2024

It seems like we could add a setting to control the precedence...

Is the current behaviour not a defect then? If I understand the docs correctly, compile_commands.json should have took precedence over "compilerPath" in this instance.

@sean-mcmanus If this is intended behaviour, how do you suggest to move forward? Update project's c_cpp_properties.json to have an empty compiler path and live with IntelliSense errors until the first compilation builds the commands JSON? I would consider this an acceptable tradeoff.

from vscode-cpptools.

bobbrow avatar bobbrow commented on May 27, 2024

The current behavior of the compilerPath overriding the compiler in compile_commands.json is expected and not a defect. We would need to add a setting to disable it (as @sean-mcmanus mentioned).

We also do not currently handle the -mcpu= option. Are you getting incorrect results without it? We don't do anything special for different cpu types. We're currently limited to x86/x64/arm/arm64 support. If cortex "mostly" aligns with one of those, you might be able to set the intelliSenseMode property in your configuration to force a specific architecture that gives you the best results.

from vscode-cpptools.

CookiePLMonster avatar CookiePLMonster commented on May 27, 2024

We also do not currently handle the -mcpu= option. Are you getting incorrect results without it? We don't do anything special for different cpu types. We're currently limited to x86/x64/arm/arm64 support. If cortex "mostly" aligns with one of those, you might be able to set the intelliSenseMode property in your configuration to force a specific architecture that gives you the best results.

I believe gcc handles it for you - with "compilerPath" set to "", vscode invokes gcc with the parameters given, including -mcpu - please see the bits of the language server logs I included in the initial post.

The current behavior of the compilerPath overriding the compiler in compile_commands.json is expected and not a defect. We would need to add a setting to disable it (as @sean-mcmanus mentioned).

Therefore, to sum my issue up:

  1. compile_commands.json is parsed as expected and I get the correct results for my specific ARM CPU.
  2. "compilerPath"' needs to be set to "" in c_cpp_properties.json for this feature to work correctly.

With those in mind, I would say it's 50/50 on the c_cpp_properties.json configuration not realizing "compilerPath" overrides compile_commands.json, but also in my defense the docs really don't make that clear:

If there is a matching entry in compile_commands.json for a file open in the editor, that command line will be used to configure IntelliSense for that file, instead of the other fields of c_cpp_properties.json.

By "the other fields", I understood that this includes 'compilerPath". Since it doesn't, in my opinion the docs should clarify this.


As for this issue - I agree that overriding the compiler can be considered not a defect, but it is also overriding compiler commands. I believe this part is wrong.

EDIT:
Just to make it entirely clear, let me visualise that -mcpu truly is used:

  1. "compilerPath" set explicitly - parameters from compile_commands.json are ignored, therefore IntelliSense doesn't know what CPU I am targetting:
    image
  2. "compilerPath" set to "" - compile_commands.json is parsed by IntelliSense that queries GCC for supported defines, therefore IntelliSense knows exactly what CPU I am targetting:
    image

from vscode-cpptools.

bobbrow avatar bobbrow commented on May 27, 2024

Setting compilerPath to "" disables the compiler querying when used with includePath and defines (i.e. for source files not existing in compile_commands.json). So it's often better to just delete compilerPath from your configuration if you are not using it to override the compiler in compile_commands.json.

I was just talking to @Colengms and he said that we shouldn't be filtering out the -mcpu option from the query because it's not in our list of options to remove (because they mess up the query). So I'm not sure yet why it's not showing up in your query.

from vscode-cpptools.

CookiePLMonster avatar CookiePLMonster commented on May 27, 2024

So it's often better to just delete compilerPath from your configuration if you are not using it to override the compiler in compile_commands.json.

This results in IntelliSense trying to use cl.exe:
[1/24/2024, 11:40:34 PM] For C source files, the cStandard was changed from "gnu17" to "c17" based on compiler args and querying compilerPath: "cl.exe"
even though intelliSenseMode is set to gcc-arm, as I have showed in the first post.

I was just talking to @Colengms and he said that we shouldn't be filtering out the -mcpu option from the query because it's not in our list of options to remove (because they mess up the query). So I'm not sure yet why it's not showing up in your query.

Do note that with compilerPath set to a non-empty path, my language server logs don't mention compile_commands.json at all - they do, however, mention it when that path is "".

from vscode-cpptools.

Colengms avatar Colengms commented on May 27, 2024

Hi @CookiePLMonster .

Could you enable "C_Cpp.loggingLevel": "Debug" and give us more of the output from the C/C++ output panel leading up to the issue? Could you try this with the latest (insiders) version of the extension? I believe what you provided shows compiler queries for the base/default compiler, but additional invocations of the compiler should be occurring for compile command lines in your compile_commands.json. Unless there is an issue matching the filename in compile_commands.json, one of those logged command lines should refer to your -mcpu= argument and should indicate a reason why that compiler query has failed. When a compiler query fails for a compile_commands.json entry, the base/default configuration is used as a fallback. A failed compiler query could explain why you're seeing the base configuration used instead of the compiler and argument from the compile_commands.json entry.

Based on this setup, I expect "compilerPath" to be used for files not present in compiler_commands.json, otherwise that JSON should take precedence

I believe the following documentation is missing one detail:

If there is a matching entry in compile_commands.json for a file open in the editor, that command line will be used to configure IntelliSense for that file, instead of the other fields of c_cpp_properties.json.

Currently, if there is a "compilerPath" explicitly specified in your configuration (in c_cpp_properties.json, or C_Cpp.default.compilerPath), it will be used instead of the compiler specified in compile_commands.json, when querying command lines from compile_commands.json. The args from compile_commands.json should still be used, so you should see still an attempted compiler query in your log that refers to -mcpu=. This 'feature' was intended as a work-around for users working with generated compile_commands.json files which leverage a script or unsupported compiler, allowing them to arbitrary redirect the compiler query. This behavior isn't ideal, as it breaks 'fallback' from compile_commands.json to the base configuration, if that fallback configuration should use a different compiler path. That appears to be the core of the issue you're reporting. I'd like to use this issue to track moving this 'special' value for overring compile_commands.json compiler paths, to a new setting instead the current behavior, which seems to break base configuration fallback.

from vscode-cpptools.

CookiePLMonster avatar CookiePLMonster commented on May 27, 2024

Currently, if there is a "compilerPath" explicitly specified in your configuration (in c_cpp_properties.json, or C_Cpp.default.compilerPath), it will be used instead of the compiler specified in compile_commands.json, when querying command lines from compile_commands.json. The args from compile_commands.json should still be used, so you should see still an attempted compiler query in your log that refers to -mcpu=.

Please do note that the compile_commands.json I attached contains only the "command" parameter, the toolchain does not output "arguments". Therefore, if "compilerPath" overrides the entire command and not just the first part of it, that'll be an issue. However, I have been told that other tools (incl. alternative C/C++ extensions) handle such cases fine, and it is also documented as supported by this extension.


@Colengms As requested, I ran the test on the latest pre-release version of the extension (v1.19.2) and with the Debug logging level, C/C++ output panel (not C/C++ Diagnostics):

Autogenerated compile_commands.json entry for the file I run this test with
    {
        "command": "H:\\dev\\flipper-zero\\.ufbt\\toolchain\\x86_64-windows\\bin\\arm-none-eabi-g++.EXE -o H:\\dev\\flipper-zero\\.ufbt\\build\\mode7_demo\\mode7_demo.o -c -std=c++17 -fno-rtti -fno-use-cxa-atexit -fno-exceptions -fno-threadsafe-statics -ftemplate-depth=4096 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -Wextra -Werror -Wno-address-of-packed-member -Wredundant-decls -Wdouble-promotion -fdata-sections -ffunction-sections -fsingle-precision-constant -fno-math-errno -g -Os -mword-relocations -mlong-calls -fno-common -nostdlib -D_GNU_SOURCE -DFW_CFG_default -D\"M_MEMORY_FULL(x)=abort()\" -DSTM32WB -DSTM32WB55xx -DUSE_FULL_ASSERT -DUSE_FULL_LL_DRIVER -DMBEDTLS_CONFIG_FILE=\\\"mbedtls_cfg.h\\\" -DPB_ENABLE_MALLOC -DFW_ORIGIN_Official -DFURI_NDEBUG -DNDEBUG -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/furi -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/applications/services -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/furi_hal_include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/ble_glue -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/furi_hal -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/mlib -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/cmsis_core -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/stm32wb_cmsis/Include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/stm32wb_hal/Inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/drivers -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/mbedtls/include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/toolbox -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/libusb_stm32/inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/drivers -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/flipper_format -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/one_wire -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/ibutton -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/infrared/encoder_decoder -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/infrared/worker -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/subghz -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/nfc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/digital_signal -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/pulse_reader -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/signal_reader -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/lfrfid -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/flipper_application -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/music_worker -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/nanopb -DFAP_VERSION=\\\"0.1\\\" -IH:\\dev\\flipper-zero\\.ufbt\\build\\mode7_demo -IH:\\dev\\flipper-zero\\mode7_demo H:\\dev\\flipper-zero\\mode7_demo\\mode7_demo.cpp",
        "directory": "H:\\dev\\flipper-zero\\.ufbt\\current\\scripts\\ufbt",
        "file": "H:\\dev\\flipper-zero\\mode7_demo\\mode7_demo.cpp",
        "output": "H:\\dev\\flipper-zero\\.ufbt\\build\\mode7_demo\\mode7_demo.o"
    }
"compilerPath" set to a non-empty path - notice no mention of -mcpu or even compile_commands.json
loggingLevel: Debug
LSP: (received) cpptools/initialize (id: 1)
LSP: (invoked) cpptools/initialize (id: 1)
cpptools version (TypeScript): 1.19.2
cpptools version (native): 1.19.2.0
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
LSP: Sending response (id: 1)
LSP: (received) cpptools/didChangeCppProperties (id: 2)
LSP: (invoked) cpptools/didChangeCppProperties (id: 2)
Code browsing service initialized
Querying compiler for default C++ language standard using command line: H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE -x c++ -E -dM nul
LSP: (received) cpptools/queryCompilerDefaults (id: 3)
LSP: (received) cpptools/didChangeCppProperties (id: 4)
LSP: Message ignored due to no registered handler: $/setTrace
Detected language standard version: gnu++14
Querying compiler's default target using command line: "H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE" -dumpmachine
Compiler returned default target value: arm-none-eabi
Compiler query command line: H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE -std=c++17 -Wp,-v -E -dM -x c++ nul
Attempting to get defaults from C++ compiler in "compilerPath" property: 'H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE'
Compiler query command line: H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE -std=gnu17 -Wp,-v -E -dM -x c nul
Attempting to get defaults from C compiler in "compilerPath" property: 'H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE'
  Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/ARM-NONE-EABI/INCLUDE/ will be indexed
  Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE/ will be indexed
  Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE-FIXED/ will be indexed
  Folder: H:/DEV/FLIPPER-ZERO/MODE7_DEMO/ will be indexed
  Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/ARM-NONE-EABI/INCLUDE/C++/10.3.1/ will be indexed
  Folder: H:/DEV/FLIPPER-ZERO/.UFBT/BUILD/MODE7_DEMO/ will be indexed
  Folder: H:/DEV/FLIPPER-ZERO/.UFBT/CURRENT/SDK_HEADERS/F7_SDK/ will be indexed
LSP: Sending response (id: 2)
LSP: (invoked) cpptools/queryCompilerDefaults (id: 3)
Discovering files...
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/ARM-NONE-EABI/INCLUDE/
LSP: Sending response (id: 3)
LSP: (invoked) cpptools/didChangeCppProperties (id: 4)
LSP: Sending response (id: 4)
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE/
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE-FIXED/
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/MODE7_DEMO/
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/ARM-NONE-EABI/INCLUDE/C++/10.3.1/
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/BUILD/MODE7_DEMO/
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/CURRENT/SDK_HEADERS/F7_SDK/
  Discovering files: 3068 file(s) processed
  1 file(s) removed from database
Done discovering files.
Populating include completion cache.
Parsing remaining files...
  Parsing: 0 files(s) processed
Done parsing remaining files.
LSP: (received) cpptools/didChangeCppProperties (id: 5)
LSP: (invoked) cpptools/didChangeCppProperties (id: 5)
LSP: Sending response (id: 5)
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) textDocument/didOpen: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (invoked) textDocument/didOpen: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
Intellisense update pending for: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 6)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 6)
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 7)
LSP: (received) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 8)
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 9)
LSP: (received) cpptools/clearCustomConfigurations
LSP: $/cancelRequest (cpptools/getCodeActions, id: 6)
LSP: $/cancelRequest (cpptools/getCodeActions, id: 7)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 7)
LSP: $/cancelRequest (cpptools/getFoldingRanges, id: 8)
LSP: (invoked) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 8)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 9)
LSP: Request canceled by server (<unknown/completed>, code: -32802, id: 8)
LSP: Sending response (id: 9)
LSP: (invoked) cpptools/clearCustomConfigurations
IntelliSense update scheduled and TU acquisition started for: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
sending compilation args for H:\dev\flipper-zero\mode7_demo\mode7_demo.cpp
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\FURI
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\APPLICATIONS\SERVICES
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\FURI_HAL_INCLUDE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\F7\BLE_GLUE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\F7\FURI_HAL
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\F7\INC
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\MLIB
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\CMSIS_CORE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\STM32WB_CMSIS\INCLUDE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\STM32WB_HAL\INC
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\MBEDTLS\INCLUDE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\TOOLBOX
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\LIBUSB_STM32\INC
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\DRIVERS
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\FLIPPER_FORMAT
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\ONE_WIRE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\IBUTTON
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\INFRARED\ENCODER_DECODER
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\INFRARED\WORKER
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\SUBGHZ
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\NFC
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\DIGITAL_SIGNAL
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\PULSE_READER
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\SIGNAL_READER
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\LFRFID
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\FLIPPER_APPLICATION
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\MUSIC_WORKER
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\NANOPB
  include: H:\DEV\FLIPPER-ZERO\.UFBT\BUILD\MODE7_DEMO
  include: H:\DEV\FLIPPER-ZERO\MODE7_DEMO
  include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE\C++\10.3.1
  include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE\C++\10.3.1\ARM-NONE-EABI
  include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE\C++\10.3.1\BACKWARD
  include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\LIB\GCC\ARM-NONE-EABI\10.3.1\INCLUDE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\LIB\GCC\ARM-NONE-EABI\10.3.1\INCLUDE-FIXED
  include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE
  define: __DBL_MIN_EXP__=(-1021)
  define: __HQ_FBIT__=15
  define: __UINT_LEAST16_MAX__=0xffff
  define: __ARM_SIZEOF_WCHAR_T=4
  define: __ATOMIC_ACQUIRE=2
  define: __SFRACT_IBIT__=0
  define: __FLT_MIN__=1.1754943508222875e-38F
  define: __GCC_IEC_559_COMPLEX=0
  define: __UFRACT_MAX__=0XFFFFP-16UR
  define: __UINT_LEAST8_TYPE__=unsigned char
  define: __DQ_FBIT__=63
  define: __INTMAX_C(c)=c ## LL
  define: __ULFRACT_FBIT__=32
  define: __CHAR_BIT__=8
  define: __USQ_IBIT__=0
  define: __UINT8_MAX__=0xff
  define: __ACCUM_FBIT__=15
  define: __WINT_MAX__=0xffffffffU
  define: __FLT32_MIN_EXP__=(-125)
  define: __USFRACT_FBIT__=8
  define: __ORDER_LITTLE_ENDIAN__=1234
  define: __SIZE_MAX__=0xffffffffU
  define: __ARM_ARCH_ISA_ARM=1
  define: __WCHAR_MAX__=0xffffffffU
  define: __LACCUM_IBIT__=32
  define: __DBL_DENORM_MIN__=double(4.9406564584124654e-324L)
  define: __GCC_ATOMIC_CHAR_LOCK_FREE=1
  define: __GCC_IEC_559=0
  define: __FLT32X_DECIMAL_DIG__=17
  define: __FLT_EVAL_METHOD__=0
  define: __TQ_IBIT__=0
  define: __LLACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LLK
  define: __FLT64_DECIMAL_DIG__=17
  define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=1
  define: __UINT_FAST64_MAX__=0xffffffffffffffffULL
  define: __SIG_ATOMIC_TYPE__=int
  define: __DBL_MIN_10_EXP__=(-307)
  define: __FINITE_MATH_ONLY__=0
  define: __ARMEL__=1
  define: __FLT32X_MAX_EXP__=1024
  define: __LFRACT_IBIT__=0
  define: __GNUC_PATCHLEVEL__=1
  define: __FLT32_HAS_DENORM__=1
  define: __LFRACT_MAX__=0X7FFFFFFFP-31LR
  define: __USA_FBIT__=16
  define: __UINT_FAST8_MAX__=0xffffffffU
  define: __ARM_ARCH_4T__=1
  define: __INT8_C(c)=c
  define: __INT_LEAST8_WIDTH__=8
  define: __UINT_LEAST64_MAX__=0xffffffffffffffffULL
  define: __SA_FBIT__=15
  define: __SHRT_MAX__=0x7fff
  define: __LDBL_MAX__=1.7976931348623157e+308L
  define: __FRACT_MAX__=0X7FFFP-15R
  define: __UFRACT_FBIT__=16
  define: __UFRACT_MIN__=0.0UR
  define: __UINT_LEAST8_MAX__=0xff
  define: __GCC_ATOMIC_BOOL_LOCK_FREE=1
  define: __UINTMAX_TYPE__=long long unsigned int
  define: __LLFRACT_EPSILON__=0x1P-63LLR
  define: __FLT_EVAL_METHOD_TS_18661_3__=0
  define: __CHAR_UNSIGNED__=1
  define: __UINT32_MAX__=0xffffffffUL
  define: __GXX_EXPERIMENTAL_CXX0X__=1
  define: __ULFRACT_MAX__=0XFFFFFFFFP-32ULR
  define: __TA_IBIT__=64
  define: __LDBL_MAX_EXP__=1024
  define: __WINT_MIN__=0U
  define: __INT_LEAST16_WIDTH__=16
  define: __ULLFRACT_MIN__=0.0ULLR
  define: __SCHAR_MAX__=0x7f
  define: __WCHAR_MIN__=0U
  define: __INT64_C(c)=c ## LL
  define: __GCC_ATOMIC_POINTER_LOCK_FREE=1
  define: __LLACCUM_MIN__=(-0X1P31LLK-0X1P31LLK)
  define: __SIZEOF_INT__=4
  define: __FLT32X_MANT_DIG__=53
  define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=1
  define: __USACCUM_IBIT__=8
  define: __USER_LABEL_PREFIX__=
  define: __FLT32_MAX_10_EXP__=38
  define: __STDC_HOSTED__=1
  define: __LFRACT_MIN__=(-0.5LR-0.5LR)
  define: __HA_IBIT__=8
  define: __DBL_DIG__=15
  define: __FLT32_DIG__=6
  define: __FLT_EPSILON__=1.1920928955078125e-7F
  define: __APCS_32__=1
  define: __GXX_WEAK__=1
  define: __SHRT_WIDTH__=16
  define: __USFRACT_IBIT__=0
  define: __LDBL_MIN__=2.2250738585072014e-308L
  define: __FRACT_MIN__=(-0.5R-0.5R)
  define: __DA_IBIT__=32
  define: __ARM_SIZEOF_MINIMAL_ENUM=1
  define: __FLT32X_HAS_INFINITY__=1
  define: __INT32_MAX__=0x7fffffffL
  define: __UQQ_FBIT__=8
  define: __INT_WIDTH__=32
  define: __SIZEOF_LONG__=4
  define: __UACCUM_MAX__=0XFFFFFFFFP-16UK
  define: __UINT16_C(c)=c
  define: __DECIMAL_DIG__=17
  define: __LFRACT_EPSILON__=0x1P-31LR
  define: __FLT64_EPSILON__=2.2204460492503131e-16F64
  define: __ULFRACT_MIN__=0.0ULR
  define: __INT16_MAX__=0x7fff
  define: __FLT64_MIN_EXP__=(-1021)
  define: __LDBL_HAS_QUIET_NAN__=1
  define: __ULACCUM_IBIT__=32
  define: __FLT64_MANT_DIG__=53
  define: __UACCUM_EPSILON__=0x1P-16UK
  define: __GNUC__=10
  define: __ULLACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULLK
  define: __GXX_RTTI=1
  define: __HQ_IBIT__=0
  define: __FLT_HAS_DENORM__=1
  define: __SIZEOF_LONG_DOUBLE__=8
  define: __SA_IBIT__=16
  define: __BIGGEST_ALIGNMENT__=8
  define: __STDC_UTF_16__=1
  define: __FLT64_MAX_10_EXP__=308
  define: __GNUC_STDC_INLINE__=1
  define: __DQ_IBIT__=0
  define: __FLT32_HAS_INFINITY__=1
  define: __DBL_MAX__=double(1.7976931348623157e+308L)
  define: __ULFRACT_IBIT__=0
  define: __INT_FAST32_MAX__=0x7fffffff
  define: __DBL_HAS_INFINITY__=1
  define: __HAVE_SPECULATION_SAFE_VALUE=1
  define: __ACCUM_IBIT__=16
  define: __THUMB_INTERWORK__=1
  define: __INTPTR_WIDTH__=32
  define: __UINT_LEAST32_MAX__=0xffffffffUL
  define: __ULLACCUM_IBIT__=32
  define: __LACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LK
  define: __FLT32X_HAS_DENORM__=1
  define: __INT_FAST16_TYPE__=int
  define: __STRICT_ANSI__=1
  define: __LDBL_HAS_DENORM__=1
  define: __cplusplus=201703L
  define: __INT_LEAST32_MAX__=0x7fffffffL
  define: __ARM_PCS=1
  define: __ACCUM_MAX__=0X7FFFFFFFP-15K
  define: __DEPRECATED=1
  define: __DBL_MAX_EXP__=1024
  define: __USACCUM_EPSILON__=0x1P-8UHK
  define: __WCHAR_WIDTH__=32
  define: __FLT32_MAX__=3.4028234663852886e+38F32
  define: __GCC_ATOMIC_LONG_LOCK_FREE=1
  define: __SFRACT_MAX__=0X7FP-7HR
  define: __FRACT_IBIT__=0
  define: __PTRDIFF_MAX__=0x7fffffff
  define: __UACCUM_MIN__=0.0UK
  define: __UACCUM_IBIT__=16
  define: __FLT32_HAS_QUIET_NAN__=1
  define: __GNUG__=10
  define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
  define: __ULACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULK
  define: __SIZEOF_WINT_T__=4
  define: __LONG_LONG_WIDTH__=64
  define: __FLT32_MAX_EXP__=128
  define: __ULLACCUM_MIN__=0.0ULLK
  define: __GXX_ABI_VERSION=1014
  define: __UTA_FBIT__=64
  define: __FLT_MIN_EXP__=(-125)
  define: __UFRACT_IBIT__=0
  define: __INT_FAST64_TYPE__=long long int
  define: __FLT64_DENORM_MIN__=4.9406564584124654e-324F64
  define: __DBL_MIN__=double(2.2250738585072014e-308L)
  define: __SIZEOF_POINTER__=4
  define: __SIZE_TYPE__=unsigned int
  define: __DBL_HAS_QUIET_NAN__=1
  define: __FLT32X_EPSILON__=2.2204460492503131e-16F32x
  define: __LACCUM_MIN__=(-0X1P31LK-0X1P31LK)
  define: __FRACT_FBIT__=15
  define: __ULLACCUM_FBIT__=32
  define: __GXX_TYPEINFO_EQUALITY_INLINE=0
  define: __FLT64_MIN_10_EXP__=(-307)
  define: __ULLFRACT_EPSILON__=0x1P-64ULLR
  define: __USES_INITFINI__=1
  define: __REGISTER_PREFIX__=
  define: __UINT16_MAX__=0xffff
  define: __ACCUM_MIN__=(-0X1P15K-0X1P15K)
  define: __SQ_IBIT__=0
  define: __FLT32_MIN__=1.1754943508222875e-38F32
  define: __UINT8_TYPE__=unsigned char
  define: __UHA_FBIT__=8
  define: __FLT_DIG__=6
  define: __NO_INLINE__=1
  define: __SFRACT_MIN__=(-0.5HR-0.5HR)
  define: __UTQ_FBIT__=128
  define: __DEC_EVAL_METHOD__=2
  define: __FLT_MANT_DIG__=24
  define: __LDBL_DECIMAL_DIG__=17
  define: __VERSION__="10.3.1 20210824 (release)"
  define: __UINT64_C(c)=c ## ULL
  define: __ULLFRACT_FBIT__=64
  define: __SOFTFP__=1
  define: __FRACT_EPSILON__=0x1P-15R
  define: __ULACCUM_MIN__=0.0ULK
  define: __UDA_FBIT__=32
  define: __LLACCUM_EPSILON__=0x1P-31LLK
  define: __GCC_ATOMIC_INT_LOCK_FREE=1
  define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __USFRACT_MIN__=0.0UHR
  define: __FLT32_MANT_DIG__=24
  define: __UQQ_IBIT__=0
  define: __USFRACT_MAX__=0XFFP-8UHR
  define: __SCHAR_WIDTH__=8
  define: __INT32_C(c)=c ## L
  define: __ORDER_PDP_ENDIAN__=3412
  define: __UHQ_FBIT__=16
  define: __LLACCUM_FBIT__=31
  define: __INT_FAST32_TYPE__=int
  define: __UINT_LEAST16_TYPE__=short unsigned int
  define: __DBL_HAS_DENORM__=1
  define: __UINT64_MAX__=0xffffffffffffffffULL
  define: __UDQ_FBIT__=64
  define: __INT8_TYPE__=signed char
  define: __ELF__=1
  define: __GCC_ASM_FLAG_OUTPUTS__=1
  define: __SACCUM_EPSILON__=0x1P-7HK
  define: __ULFRACT_EPSILON__=0x1P-32ULR
  define: __LLFRACT_FBIT__=63
  define: __FLT_RADIX__=2
  define: __INT_LEAST16_TYPE__=short int
  define: __LDBL_EPSILON__=2.2204460492503131e-16L
  define: __UINTMAX_C(c)=c ## ULL
  define: __SACCUM_MAX__=0X7FFFP-7HK
  define: __FLT32X_MIN__=2.2250738585072014e-308F32x
  define: __SIG_ATOMIC_MAX__=0x7fffffff
  define: __UACCUM_FBIT__=16
  define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=1
  define: __VFP_FP__=1
  define: __SIZEOF_PTRDIFF_T__=4
  define: __LACCUM_EPSILON__=0x1P-31LK
  define: __LDBL_DIG__=15
  define: __FLT32X_MIN_EXP__=(-1021)
  define: __INT_FAST16_MAX__=0x7fffffff
  define: __FLT64_DIG__=15
  define: __UINT_FAST32_MAX__=0xffffffffU
  define: __UINT_LEAST64_TYPE__=long long unsigned int
  define: __SFRACT_EPSILON__=0x1P-7HR
  define: __FLT_HAS_QUIET_NAN__=1
  define: __FLT_MAX_10_EXP__=38
  define: __LONG_MAX__=0x7fffffffL
  define: __SIZEOF_SIZE_T__=4
  define: __FLT_HAS_INFINITY__=1
  define: __UINT_FAST16_TYPE__=unsigned int
  define: __ARM_32BIT_STATE=1
  define: __INT_FAST32_WIDTH__=32
  define: __CHAR16_TYPE__=short unsigned int
  define: __PRAGMA_REDEFINE_EXTNAME=1
  define: __SIZE_WIDTH__=32
  define: __INT_LEAST16_MAX__=0x7fff
  define: __INT64_MAX__=0x7fffffffffffffffLL
  define: __SACCUM_FBIT__=7
  define: __FLT32_DENORM_MIN__=1.4012984643248171e-45F32
  define: __SIG_ATOMIC_WIDTH__=32
  define: __INT_LEAST64_TYPE__=long long int
  define: __INT16_TYPE__=short int
  define: __INT_LEAST8_TYPE__=signed char
  define: __SQ_FBIT__=31
  define: __ARM_ARCH_ISA_THUMB=1
  define: __INT_FAST8_MAX__=0x7fffffff
  define: __ARM_ARCH=4
  define: __INTPTR_MAX__=0x7fffffff
  define: __QQ_FBIT__=7
  define: __UTA_IBIT__=64
  define: __FLT64_HAS_QUIET_NAN__=1
  define: __FLT32_MIN_10_EXP__=(-37)
  define: __EXCEPTIONS=1
  define: __PTRDIFF_WIDTH__=32
  define: __LDBL_MANT_DIG__=53
  define: __SFRACT_FBIT__=7
  define: __SACCUM_MIN__=(-0X1P7HK-0X1P7HK)
  define: __FLT64_HAS_INFINITY__=1
  define: __STDCPP_DEFAULT_NEW_ALIGNMENT__=8
  define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
  define: __INTPTR_TYPE__=int
  define: __UINT16_TYPE__=short unsigned int
  define: __WCHAR_TYPE__=unsigned int
  define: __SIZEOF_FLOAT__=4
  define: __TQ_FBIT__=127
  define: __USQ_FBIT__=32
  define: __UINTPTR_MAX__=0xffffffffU
  define: __INT_FAST64_WIDTH__=64
  define: __FLT32_DECIMAL_DIG__=9
  define: __INT_FAST64_MAX__=0x7fffffffffffffffLL
  define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
  define: __FLT_NORM_MAX__=3.4028234663852886e+38F
  define: __UINT_FAST64_TYPE__=long long unsigned int
  define: __INT_MAX__=0x7fffffff
  define: __LACCUM_FBIT__=31
  define: __USACCUM_MIN__=0.0UHK
  define: __UHA_IBIT__=8
  define: __INT64_TYPE__=long long int
  define: __FLT_MAX_EXP__=128
  define: __UTQ_IBIT__=0
  define: __DBL_MANT_DIG__=53
  define: __INT_LEAST64_MAX__=0x7fffffffffffffffLL
  define: __WINT_TYPE__=unsigned int
  define: __UINT_LEAST32_TYPE__=long unsigned int
  define: __SIZEOF_SHORT__=2
  define: __ULLFRACT_IBIT__=0
  define: __FLT32_NORM_MAX__=3.4028234663852886e+38F32
  define: __LDBL_MIN_EXP__=(-1021)
  define: __arm__=1
  define: __FLT64_MAX__=1.7976931348623157e+308F64
  define: __UDA_IBIT__=32
  define: __WINT_WIDTH__=32
  define: __INT_LEAST8_MAX__=0x7f
  define: __INT_LEAST64_WIDTH__=64
  define: __FLT32X_MAX_10_EXP__=308
  define: __LFRACT_FBIT__=31
  define: __WCHAR_UNSIGNED__=1
  define: __LDBL_MAX_10_EXP__=308
  define: __ATOMIC_RELAXED=0
  define: __DBL_EPSILON__=double(2.2204460492503131e-16L)
  define: __UINT8_C(c)=c
  define: __FLT64_MAX_EXP__=1024
  define: __INT_LEAST32_TYPE__=long int
  define: __SIZEOF_WCHAR_T__=4
  define: __LLFRACT_MAX__=0X7FFFFFFFFFFFFFFFP-63LLR
  define: __FLT64_NORM_MAX__=1.7976931348623157e+308F64
  define: __INTMAX_MAX__=0x7fffffffffffffffLL
  define: __INT_FAST8_TYPE__=int
  define: __ULLACCUM_EPSILON__=0x1P-32ULLK
  define: __USACCUM_MAX__=0XFFFFP-8UHK
  define: __LDBL_HAS_INFINITY__=1
  define: __UHQ_IBIT__=0
  define: __ARM_FEATURE_COPROC=1
  define: __LLACCUM_IBIT__=32
  define: __FLT64_HAS_DENORM__=1
  define: __FLT32_EPSILON__=1.1920928955078125e-7F32
  define: __DBL_DECIMAL_DIG__=17
  define: __STDC_UTF_32__=1
  define: __INT_FAST8_WIDTH__=32
  define: __FLT32X_MAX__=1.7976931348623157e+308F32x
  define: __TA_FBIT__=63
  define: __DBL_NORM_MAX__=double(1.7976931348623157e+308L)
  define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __UDQ_IBIT__=0
  define: __INTMAX_WIDTH__=64
  define: __ORDER_BIG_ENDIAN__=4321
  define: __UINT64_TYPE__=long long unsigned int
  define: __ACCUM_EPSILON__=0x1P-15K
  define: __UINT32_C(c)=c ## UL
  define: __FLT_DENORM_MIN__=1.4012984643248171e-45F
  define: __LLFRACT_IBIT__=0
  define: __INT8_MAX__=0x7f
  define: __LONG_WIDTH__=32
  define: __UINT_FAST32_TYPE__=unsigned int
  define: __FLT32X_NORM_MAX__=1.7976931348623157e+308F32x
  define: __CHAR32_TYPE__=long unsigned int
  define: __FLT_MAX__=3.4028234663852886e+38F
  define: __USACCUM_FBIT__=8
  define: __INT32_TYPE__=long int
  define: __SIZEOF_DOUBLE__=8
  define: __FLT_MIN_10_EXP__=(-37)
  define: __UFRACT_EPSILON__=0x1P-16UR
  define: __FLT64_MIN__=2.2250738585072014e-308F64
  define: __INT_LEAST32_WIDTH__=32
  define: __INTMAX_TYPE__=long long int
  define: __FLT32X_HAS_QUIET_NAN__=1
  define: __ATOMIC_CONSUME=1
  define: __GNUC_MINOR__=3
  define: __INT_FAST16_WIDTH__=32
  define: __UINTMAX_MAX__=0xffffffffffffffffULL
  define: __FLT32X_DENORM_MIN__=4.9406564584124654e-324F32x
  define: __HA_FBIT__=7
  define: __DBL_MAX_10_EXP__=308
  define: __LDBL_DENORM_MIN__=4.9406564584124654e-324L
  define: __INT16_C(c)=c
  define: __STDC__=1
  define: __FLT32X_DIG__=15
  define: __PTRDIFF_TYPE__=int
  define: __LLFRACT_MIN__=(-0.5LLR-0.5LLR)
  define: __ATOMIC_SEQ_CST=5
  define: __DA_FBIT__=31
  define: __UINT32_TYPE__=long unsigned int
  define: __FLT32X_MIN_10_EXP__=(-307)
  define: __UINTPTR_TYPE__=unsigned int
  define: __USA_IBIT__=16
  define: __ARM_EABI__=1
  define: __LDBL_MIN_10_EXP__=(-307)
  define: __SIZEOF_LONG_LONG__=8
  define: __ULACCUM_EPSILON__=0x1P-32ULK
  define: __SACCUM_IBIT__=8
  define: __GCC_ATOMIC_LLONG_LOCK_FREE=1
  define: __FLT_DECIMAL_DIG__=9
  define: __UINT_FAST16_MAX__=0xffffffffU
  define: __LDBL_NORM_MAX__=1.7976931348623157e+308L
  define: __GCC_ATOMIC_SHORT_LOCK_FREE=1
  define: __ULLFRACT_MAX__=0XFFFFFFFFFFFFFFFFP-64ULLR
  define: __UINT_FAST8_TYPE__=unsigned int
  define: __USFRACT_EPSILON__=0x1P-8UHR
  define: __ULACCUM_FBIT__=32
  define: __QQ_IBIT__=0
  define: __ATOMIC_ACQ_REL=4
  define: __ATOMIC_RELEASE=3
  define: _GNU_SOURCE
  define: FW_CFG_default
  define: M_MEMORY_FULL(x)=abort()
  define: STM32WB
  define: STM32WB55xx
  define: USE_FULL_ASSERT
  define: USE_FULL_LL_DRIVER
  define: MBEDTLS_CONFIG_FILE="mbedtls_cfg.h"
  define: PB_ENABLE_MALLOC
  define: FW_ORIGIN_Official
  define: FURI_NDEBUG
  define: NDEBUG
  define: FAP_VERSION="0.1"
  other: --g++
  other: --gnu_version=100301
  stdver: c++17
  intelliSenseMode: windows-gcc-arm
Update IntelliSense time (sec): 0.139
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 10)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 10)
LSP: Sending response (id: 10)
LSP: (received) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 11)
LSP: (invoked) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 11)
LSP: Sending response (id: 11)
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 12)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 12)
LSP: (received) cpptools/getDocumentSymbols: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 13)
LSP: Sending response (id: 12)
LSP: (invoked) cpptools/getDocumentSymbols: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 13)
LSP: Sending response (id: 13)
LSP: Message ignored due to no registered handler: $/setTrace
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
Database safe to open.
LSP: (received) cpptools/getDiagnostics (id: 14)
LSP: (invoked) cpptools/getDiagnostics (id: 14)
LSP: Sending response (id: 14)
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeActiveEditor: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (invoked) cpptools/didChangeActiveEditor: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeActiveEditor: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (invoked) cpptools/didChangeActiveEditor: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
"compilerPath" = "" - notice -mcpu and compile_commands.json are both mentioned
loggingLevel: Debug
LSP: (received) cpptools/initialize (id: 1)
LSP: (invoked) cpptools/initialize (id: 1)
cpptools version (TypeScript): 1.19.2
cpptools version (native): 1.19.2.0
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
LSP: Sending response (id: 1)
LSP: Message ignored due to no registered handler: $/setTrace
LSP: (received) cpptools/didChangeCppProperties (id: 2)
LSP: (invoked) cpptools/didChangeCppProperties (id: 2)
Code browsing service initialized
Skipping query of compiler due to explicitly empty compilerPath
Skipping query of compiler due to explicitly empty compilerPath
Querying compiler for default C++ language standard using command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE -x c++ -E -dM nul
LSP: (received) cpptools/queryCompilerDefaults (id: 3)
LSP: (received) cpptools/didChangeCppProperties (id: 4)
LSP: Message ignored due to no registered handler: $/setTrace
Detected language standard version: gnu++14
Querying compiler's default target using command line: "H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE" -dumpmachine
Compiler returned default target value: arm-none-eabi
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -Wextra -Wno-address-of-packed-member -Wredundant-decls -Wdouble-promotion -fdata-sections -ffunction-sections -fsingle-precision-constant -fno-math-errno -g -Os -mword-relocations -mlong-calls -fno-common -nostdlib -std=gnu17 -Wp,-v -E -dM -x c nul
Attempting to get defaults from C compiler in compile_commands.json file: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE'
Querying compiler for default C++ language standard using command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE -x c++ -E -dM nul
LSP: (received) cpptools/queryCompilerDefaults (id: 5)
Detected language standard version: gnu++14
Querying compiler's default target using command line: "H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE" -dumpmachine
Compiler returned default target value: arm-none-eabi
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE -std=c++17 -fno-rtti -fno-use-cxa-atexit -fno-exceptions -fno-threadsafe-statics -ftemplate-depth=4096 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -Wextra -Wno-address-of-packed-member -Wredundant-decls -Wdouble-promotion -fdata-sections -ffunction-sections -fsingle-precision-constant -fno-math-errno -g -Os -mword-relocations -mlong-calls -fno-common -nostdlib -Wp,-v -E -dM -x c++ nul
Attempting to get defaults from C++ compiler in compile_commands.json file: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE'
  Folder: H:/DEV/FLIPPER-ZERO/MODE7_DEMO/ will be indexed
  Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE-FIXED/ will be indexed
  Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE/ will be indexed
  Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/ARM-NONE-EABI/INCLUDE/ will be indexed
  Folder: H:/DEV/FLIPPER-ZERO/.UFBT/BUILD/MODE7_DEMO/ will be indexed
  Folder: H:/DEV/FLIPPER-ZERO/.UFBT/CURRENT/SDK_HEADERS/F7_SDK/ will be indexed
LSP: Sending response (id: 2)
LSP: (invoked) cpptools/queryCompilerDefaults (id: 3)
Discovering files...
LSP: (received) cpptools/queryCompilerDefaults (id: 6)
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/MODE7_DEMO/
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE-FIXED/
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE/
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/ARM-NONE-EABI/INCLUDE/
LSP: Sending response (id: 3)
LSP: (invoked) cpptools/didChangeCppProperties (id: 4)
LSP: Sending response (id: 4)
LSP: (invoked) cpptools/queryCompilerDefaults (id: 5)
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE -std=c17 -Wp,-v -E -dM -x c nul
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/BUILD/MODE7_DEMO/
  Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/CURRENT/SDK_HEADERS/F7_SDK/
  Discovering files: 1798 file(s) processed
  0 file(s) removed from database
Done discovering files.
Populating include completion cache.
Parsing remaining files...
  Parsing: 0 files(s) processed
Done parsing remaining files.
Attempting to get defaults from C compiler in "compilerPath" property: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE'
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE -std=gnu++14 -Wp,-v -E -dM -x c++ nul
Attempting to get defaults from C++ compiler in "compilerPath" property: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE'
LSP: Sending response (id: 5)
LSP: (invoked) cpptools/queryCompilerDefaults (id: 6)
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE -std=c17 -Wp,-v -E -dM -x c nul
Attempting to get defaults from C compiler in "compilerPath" property: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE'
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE -std=gnu++14 -Wp,-v -E -dM -x c++ nul
Attempting to get defaults from C++ compiler in "compilerPath" property: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE'
LSP: Sending response (id: 6)
LSP: (received) cpptools/didChangeCppProperties (id: 7)
LSP: (invoked) cpptools/didChangeCppProperties (id: 7)
LSP: Sending response (id: 7)
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) textDocument/didOpen: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (invoked) textDocument/didOpen: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
Intellisense update pending for: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 8)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 8)
LSP: (received) cpptools/didChangeSettings
LSP: (received) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 9)
LSP: Sending response (id: 8)
LSP: (invoked) cpptools/didChangeSettings
LSP: (received) cpptools/clearCustomConfigurations
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (invoked) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 9)
LSP: (invoked) cpptools/clearCustomConfigurations
LSP: $/cancelRequest (cpptools/getFoldingRanges, id: 9)
LSP: $/cancelRequest (<unknown/completed>, id: 8)
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 10)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 10)
LSP: Sending response (id: 10)
IntelliSense update scheduled and TU acquisition started for: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
sending compilation args for H:\dev\flipper-zero\mode7_demo\mode7_demo.cpp
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\FURI
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\APPLICATIONS\SERVICES
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\FURI_HAL_INCLUDE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\F7\BLE_GLUE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\F7\FURI_HAL
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\F7\INC
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\MLIB
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\CMSIS_CORE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\STM32WB_CMSIS\INCLUDE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\STM32WB_HAL\INC
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\MBEDTLS\INCLUDE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\TOOLBOX
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\LIBUSB_STM32\INC
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\DRIVERS
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\FLIPPER_FORMAT
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\ONE_WIRE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\IBUTTON
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\INFRARED\ENCODER_DECODER
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\INFRARED\WORKER
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\SUBGHZ
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\NFC
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\DIGITAL_SIGNAL
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\PULSE_READER
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\SIGNAL_READER
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\LFRFID
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\FLIPPER_APPLICATION
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\MUSIC_WORKER
  include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\NANOPB
  include: H:\DEV\FLIPPER-ZERO\.UFBT\BUILD\MODE7_DEMO
  include: H:\DEV\FLIPPER-ZERO\MODE7_DEMO
  include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE\C++\10.3.1
  include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE\C++\10.3.1\ARM-NONE-EABI\THUMB\V7E-M+FP\HARD
  include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE\C++\10.3.1\BACKWARD
  include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\LIB\GCC\ARM-NONE-EABI\10.3.1\INCLUDE
  include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\LIB\GCC\ARM-NONE-EABI\10.3.1\INCLUDE-FIXED
  include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE
  define: __DBL_MIN_EXP__=(-1021)
  define: __HQ_FBIT__=15
  define: __UINT_LEAST16_MAX__=0xffff
  define: __ARM_SIZEOF_WCHAR_T=4
  define: __SFRACT_IBIT__=0
  define: __FLT_MIN__=1.1754943508222875e-38F
  define: __GCC_IEC_559_COMPLEX=0
  define: __UFRACT_MAX__=0XFFFFP-16UR
  define: __UINT_LEAST8_TYPE__=unsigned char
  define: __FLT_MAX_EXP__=128
  define: __DQ_FBIT__=63
  define: __INTMAX_C(c)=c ## LL
  define: __ARM_FEATURE_SAT=1
  define: __ULFRACT_FBIT__=32
  define: __CHAR_BIT__=8
  define: __USQ_IBIT__=0
  define: __UINT8_MAX__=0xff
  define: __ACCUM_FBIT__=15
  define: __WINT_MAX__=0xffffffffU
  define: __FLT32_MIN_EXP__=(-125)
  define: __USFRACT_FBIT__=8
  define: __ORDER_LITTLE_ENDIAN__=1234
  define: __SIZE_MAX__=0xffffffffU
  define: __WCHAR_MAX__=0xffffffffU
  define: __LACCUM_IBIT__=32
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1
  define: __DBL_DENORM_MIN__=double(4.9406564584124654e-324L)
  define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
  define: __GCC_IEC_559=0
  define: __FLT32X_DECIMAL_DIG__=17
  define: __FLT_EVAL_METHOD__=0
  define: __TQ_IBIT__=0
  define: __LLACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LLK
  define: __FLT64_DECIMAL_DIG__=17
  define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
  define: __INTPTR_WIDTH__=32
  define: __UINT_FAST64_MAX__=0xffffffffffffffffULL
  define: __SIG_ATOMIC_TYPE__=int
  define: __DBL_MIN_10_EXP__=(-307)
  define: __FINITE_MATH_ONLY__=0
  define: __ARMEL__=1
  define: __FLT32X_MAX_EXP__=1024
  define: __LFRACT_IBIT__=0
  define: __GNUC_PATCHLEVEL__=1
  define: __FLT32_HAS_DENORM__=1
  define: __USA_FBIT__=16
  define: __UINT_FAST8_MAX__=0xffffffffU
  define: __INT8_C(c)=c
  define: __INT_LEAST8_WIDTH__=8
  define: __UINT_LEAST64_MAX__=0xffffffffffffffffULL
  define: __INT16_MAX__=0x7fff
  define: __SA_FBIT__=15
  define: __APCS_32__=1
  define: __SHRT_MAX__=0x7fff
  define: __LDBL_MAX__=1.7976931348623157e+308L
  define: __FRACT_MAX__=0X7FFFP-15R
  define: __thumb2__=1
  define: __UFRACT_FBIT__=16
  define: __ARM_FP=4
  define: __UFRACT_MIN__=0.0UR
  define: __UINT_LEAST8_MAX__=0xff
  define: __GCC_ATOMIC_BOOL_LOCK_FREE=2
  define: __UINTMAX_TYPE__=long long unsigned int
  define: __LLFRACT_EPSILON__=0x1P-63LLR
  define: __FLT_EVAL_METHOD_TS_18661_3__=0
  define: __CHAR_UNSIGNED__=1
  define: __UINT32_MAX__=0xffffffffUL
  define: __GXX_EXPERIMENTAL_CXX0X__=1
  define: __ULFRACT_MAX__=0XFFFFFFFFP-32ULR
  define: __TA_IBIT__=64
  define: __LDBL_MAX_EXP__=1024
  define: __WINT_MIN__=0U
  define: __ARM_ASM_SYNTAX_UNIFIED__=1
  define: __INT_LEAST16_WIDTH__=16
  define: __ULLFRACT_MIN__=0.0ULLR
  define: __SCHAR_MAX__=0x7f
  define: __WCHAR_MIN__=0U
  define: __INT64_C(c)=c ## LL
  define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
  define: __LLACCUM_MIN__=(-0X1P31LLK-0X1P31LLK)
  define: __SIZEOF_INT__=4
  define: __FLT32X_MANT_DIG__=53
  define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
  define: __USACCUM_IBIT__=8
  define: __USER_LABEL_PREFIX__=
  define: __STDC_HOSTED__=1
  define: __NO_MATH_ERRNO__=1
  define: __ARM_FEATURE_IDIV=1
  define: __FLT_DIG__=6
  define: __LFRACT_MIN__=(-0.5LR-0.5LR)
  define: __HA_IBIT__=8
  define: __FLT32_DIG__=6
  define: __FLT_EPSILON__=1.1920928955078125e-7F
  define: __GXX_WEAK__=1
  define: __SHRT_WIDTH__=16
  define: __USFRACT_IBIT__=0
  define: __LDBL_MIN__=2.2250738585072014e-308L
  define: __FRACT_MIN__=(-0.5R-0.5R)
  define: __DA_IBIT__=32
  define: __ARM_SIZEOF_MINIMAL_ENUM=1
  define: __FLT32X_HAS_INFINITY__=1
  define: __UQQ_FBIT__=8
  define: __SIZEOF_LONG__=4
  define: __UACCUM_MAX__=0XFFFFFFFFP-16UK
  define: __DECIMAL_DIG__=17
  define: __LFRACT_EPSILON__=0x1P-31LR
  define: __FLT64_EPSILON__=2.2204460492503131e-16F64
  define: __FLT64_MIN_EXP__=(-1021)
  define: __ARM_PCS_VFP=1
  define: __LDBL_HAS_QUIET_NAN__=1
  define: __ULACCUM_IBIT__=32
  define: __ARM_FEATURE_FMA=1
  define: __FLT64_MANT_DIG__=53
  define: __UACCUM_EPSILON__=0x1P-16UK
  define: __GNUC__=10
  define: __ULLACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULLK
  define: __HQ_IBIT__=0
  define: __FLT_HAS_DENORM__=1
  define: __SIZEOF_LONG_DOUBLE__=8
  define: __SA_IBIT__=16
  define: __BIGGEST_ALIGNMENT__=8
  define: __STDC_UTF_16__=1
  define: __INTPTR_TYPE__=int
  define: __SIZE_TYPE__=unsigned int
  define: __FLT64_MAX_10_EXP__=308
  define: __DBL_DIG__=15
  define: __ULLACCUM_FBIT__=32
  define: __GNUC_STDC_INLINE__=1
  define: __DQ_IBIT__=0
  define: __DBL_MAX__=double(1.7976931348623157e+308L)
  define: __ULFRACT_IBIT__=0
  define: __INT_FAST32_MAX__=0x7fffffff
  define: __DBL_HAS_INFINITY__=1
  define: __HAVE_SPECULATION_SAFE_VALUE=1
  define: __ACCUM_IBIT__=16
  define: __THUMB_INTERWORK__=1
  define: __UINT_LEAST32_MAX__=0xffffffffUL
  define: __ULLACCUM_IBIT__=32
  define: __LACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LK
  define: __FLT32X_HAS_DENORM__=1
  define: __INT_FAST16_TYPE__=int
  define: __STRICT_ANSI__=1
  define: __LDBL_HAS_DENORM__=1
  define: __ARM_FEATURE_LDREX=7
  define: __cplusplus=201703L
  define: __FLT32_DECIMAL_DIG__=9
  define: __INT_LEAST32_MAX__=0x7fffffffL
  define: __ACCUM_MAX__=0X7FFFFFFFP-15K
  define: __DEPRECATED=1
  define: __DBL_MAX_EXP__=1024
  define: __USACCUM_EPSILON__=0x1P-8UHK
  define: __WCHAR_WIDTH__=32
  define: __FLT32_MAX__=3.4028234663852886e+38F32
  define: __SFRACT_MAX__=0X7FP-7HR
  define: __FRACT_IBIT__=0
  define: __PTRDIFF_MAX__=0x7fffffff
  define: __UACCUM_MIN__=0.0UK
  define: __UACCUM_IBIT__=16
  define: __FLT32_HAS_QUIET_NAN__=1
  define: __GNUG__=10
  define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
  define: __ULACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULK
  define: __SIZEOF_WINT_T__=4
  define: __ARM_FEATURE_UNALIGNED=1
  define: __LONG_LONG_WIDTH__=64
  define: __FLT32_MAX_EXP__=128
  define: __ULLACCUM_MIN__=0.0ULLK
  define: __GXX_ABI_VERSION=1014
  define: __UTA_FBIT__=64
  define: __GCC_HAVE_DWARF2_CFI_ASM=1
  define: __UFRACT_IBIT__=0
  define: __USQ_FBIT__=32
  define: __ARM_FEATURE_QBIT=1
  define: __INT_FAST64_TYPE__=long long int
  define: __FP_FAST_FMAF=1
  define: __FLT64_DENORM_MIN__=4.9406564584124654e-324F64
  define: __DBL_MIN__=double(2.2250738585072014e-308L)
  define: __SIZEOF_POINTER__=4
  define: __INT16_TYPE__=short int
  define: __DBL_HAS_QUIET_NAN__=1
  define: __FLT32X_EPSILON__=2.2204460492503131e-16F32x
  define: __LACCUM_MIN__=(-0X1P31LK-0X1P31LK)
  define: __FRACT_FBIT__=15
  define: __FLT64_MIN_10_EXP__=(-307)
  define: __ULLFRACT_EPSILON__=0x1P-64ULLR
  define: __USES_INITFINI__=1
  define: __REGISTER_PREFIX__=
  define: __UINT16_MAX__=0xffff
  define: __ACCUM_MIN__=(-0X1P15K-0X1P15K)
  define: __SQ_IBIT__=0
  define: __UINT8_TYPE__=unsigned char
  define: __UHA_FBIT__=8
  define: __SFRACT_MIN__=(-0.5HR-0.5HR)
  define: __UTQ_FBIT__=128
  define: __DEC_EVAL_METHOD__=2
  define: __FLT_MANT_DIG__=24
  define: __LDBL_DECIMAL_DIG__=17
  define: __VERSION__="10.3.1 20210824 (release)"
  define: __UINT64_C(c)=c ## ULL
  define: __FRACT_EPSILON__=0x1P-15R
  define: __ULACCUM_MIN__=0.0ULK
  define: __UDA_FBIT__=32
  define: __GCC_ATOMIC_INT_LOCK_FREE=2
  define: __FLT_MIN_EXP__=(-125)
  define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __USFRACT_MIN__=0.0UHR
  define: __FLT32_MANT_DIG__=24
  define: __ULLFRACT_FBIT__=64
  define: __UQQ_IBIT__=0
  define: __SCHAR_WIDTH__=8
  define: __INT32_C(c)=c ## L
  define: __ORDER_PDP_ENDIAN__=3412
  define: __UHQ_FBIT__=16
  define: __LLACCUM_FBIT__=31
  define: __INT_FAST32_TYPE__=int
  define: __UINT_LEAST16_TYPE__=short unsigned int
  define: __DBL_HAS_DENORM__=1
  define: __UINT64_MAX__=0xffffffffffffffffULL
  define: __UDQ_FBIT__=64
  define: __INT8_TYPE__=signed char
  define: __thumb__=1
  define: __ELF__=1
  define: __SACCUM_EPSILON__=0x1P-7HK
  define: __ULFRACT_EPSILON__=0x1P-32ULR
  define: __LLFRACT_FBIT__=63
  define: __FLT_RADIX__=2
  define: __INT_LEAST16_TYPE__=short int
  define: __ARM_ARCH_PROFILE=77
  define: __LDBL_EPSILON__=2.2204460492503131e-16L
  define: __UINTMAX_C(c)=c ## ULL
  define: __SACCUM_MAX__=0X7FFFP-7HK
  define: __FLT32X_MIN__=2.2250738585072014e-308F32x
  define: __SIG_ATOMIC_MAX__=0x7fffffff
  define: __UACCUM_FBIT__=16
  define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
  define: __VFP_FP__=1
  define: __SIZEOF_PTRDIFF_T__=4
  define: __ATOMIC_ACQUIRE=2
  define: __INT_WIDTH__=32
  define: __OPTIMIZE__=1
  define: __LACCUM_EPSILON__=0x1P-31LK
  define: __LDBL_DIG__=15
  define: __FLT32X_MIN_EXP__=(-1021)
  define: __INT_FAST16_MAX__=0x7fffffff
  define: __LFRACT_MAX__=0X7FFFFFFFP-31LR
  define: __FLT64_DIG__=15
  define: __UINT_FAST32_MAX__=0xffffffffU
  define: __UINT_LEAST64_TYPE__=long long unsigned int
  define: __SFRACT_EPSILON__=0x1P-7HR
  define: __GCC_ASM_FLAG_OUTPUTS__=1
  define: __FLT_HAS_QUIET_NAN__=1
  define: __FLT_MAX_10_EXP__=38
  define: __LONG_MAX__=0x7fffffffL
  define: __SIZEOF_SIZE_T__=4
  define: __FLT_HAS_INFINITY__=1
  define: __UINT_FAST16_TYPE__=unsigned int
  define: __ARM_32BIT_STATE=1
  define: __INT_FAST32_WIDTH__=32
  define: __CHAR16_TYPE__=short unsigned int
  define: __PRAGMA_REDEFINE_EXTNAME=1
  define: __SIZE_WIDTH__=32
  define: __INT_LEAST16_MAX__=0x7fff
  define: __INT64_MAX__=0x7fffffffffffffffLL
  define: __SACCUM_FBIT__=7
  define: __FLT32_DENORM_MIN__=1.4012984643248171e-45F32
  define: __SIG_ATOMIC_WIDTH__=32
  define: __INT_LEAST64_TYPE__=long long int
  define: __ARM_FEATURE_CLZ=1
  define: __INT_LEAST8_TYPE__=signed char
  define: __SQ_FBIT__=31
  define: __USFRACT_MAX__=0XFFP-8UHR
  define: __ARM_ARCH_ISA_THUMB=2
  define: __INT_FAST8_MAX__=0x7fffffff
  define: __ARM_ARCH=7
  define: __INTPTR_MAX__=0x7fffffff
  define: __QQ_FBIT__=7
  define: __UTA_IBIT__=64
  define: __FLT64_HAS_QUIET_NAN__=1
  define: __UINT16_C(c)=c
  define: __PTRDIFF_WIDTH__=32
  define: __LDBL_MANT_DIG__=53
  define: __SFRACT_FBIT__=7
  define: __SACCUM_MIN__=(-0X1P7HK-0X1P7HK)
  define: __FLT64_HAS_INFINITY__=1
  define: __STDCPP_DEFAULT_NEW_ALIGNMENT__=8
  define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
  define: __GCC_ATOMIC_LONG_LOCK_FREE=2
  define: __UINT16_TYPE__=short unsigned int
  define: __WCHAR_TYPE__=unsigned int
  define: __SIZEOF_FLOAT__=4
  define: __THUMBEL__=1
  define: __TQ_FBIT__=127
  define: __UINTPTR_MAX__=0xffffffffU
  define: __INT_FAST64_WIDTH__=64
  define: __INT_FAST64_MAX__=0x7fffffffffffffffLL
  define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
  define: __FLT_NORM_MAX__=3.4028234663852886e+38F
  define: __FLT32_HAS_INFINITY__=1
  define: __UINT_FAST64_TYPE__=long long unsigned int
  define: __LACCUM_FBIT__=31
  define: __HA_FBIT__=7
  define: __UHA_IBIT__=8
  define: __INT64_TYPE__=long long int
  define: __UTQ_IBIT__=0
  define: __DBL_MANT_DIG__=53
  define: __INT_LEAST64_MAX__=0x7fffffffffffffffLL
  define: __FP_FAST_FMAF32=1
  define: __WINT_TYPE__=unsigned int
  define: __UINT_LEAST32_TYPE__=long unsigned int
  define: __SIZEOF_SHORT__=2
  define: __ULLFRACT_IBIT__=0
  define: __FLT32_NORM_MAX__=3.4028234663852886e+38F32
  define: __LDBL_MIN_EXP__=(-1021)
  define: __GXX_TYPEINFO_EQUALITY_INLINE=0
  define: __INTMAX_MAX__=0x7fffffffffffffffLL
  define: __arm__=1
  define: __FLT64_MAX__=1.7976931348623157e+308F64
  define: __UDA_IBIT__=32
  define: __INT_MAX__=0x7fffffff
  define: __WINT_WIDTH__=32
  define: __INT_LEAST8_MAX__=0x7f
  define: __INT_LEAST64_WIDTH__=64
  define: __FLT32X_MAX_10_EXP__=308
  define: __LLACCUM_EPSILON__=0x1P-31LLK
  define: __LFRACT_FBIT__=31
  define: __WCHAR_UNSIGNED__=1
  define: __LDBL_MAX_10_EXP__=308
  define: __ATOMIC_RELAXED=0
  define: __DBL_EPSILON__=double(2.2204460492503131e-16L)
  define: __ARM_ARCH_7EM__=1
  define: __ARM_FEATURE_SIMD32=1
  define: __UINT8_C(c)=c
  define: __FLT64_MAX_EXP__=1024
  define: __INT_LEAST32_TYPE__=long int
  define: __SIZEOF_WCHAR_T__=4
  define: __LLFRACT_MAX__=0X7FFFFFFFFFFFFFFFP-63LLR
  define: __FLT64_NORM_MAX__=1.7976931348623157e+308F64
  define: __INT_FAST8_TYPE__=int
  define: __ULLACCUM_EPSILON__=0x1P-32ULLK
  define: __USACCUM_MAX__=0XFFFFP-8UHK
  define: __LDBL_HAS_INFINITY__=1
  define: __FLT32_MAX_10_EXP__=38
  define: __UHQ_IBIT__=0
  define: __ARM_FEATURE_COPROC=15
  define: __LLACCUM_IBIT__=32
  define: __ULFRACT_MIN__=0.0ULR
  define: __FLT64_HAS_DENORM__=1
  define: __FLT32_EPSILON__=1.1920928955078125e-7F32
  define: __DBL_DECIMAL_DIG__=17
  define: __STDC_UTF_32__=1
  define: __INT_FAST8_WIDTH__=32
  define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __FLT32X_MAX__=1.7976931348623157e+308F32x
  define: __TA_FBIT__=63
  define: __DBL_NORM_MAX__=double(1.7976931348623157e+308L)
  define: __UDQ_IBIT__=0
  define: __INTMAX_WIDTH__=64
  define: __ORDER_BIG_ENDIAN__=4321
  define: __ARM_FEATURE_DSP=1
  define: __UINT64_TYPE__=long long unsigned int
  define: __ACCUM_EPSILON__=0x1P-15K
  define: __UINT32_C(c)=c ## UL
  define: __QQ_IBIT__=0
  define: __FLT_DENORM_MIN__=1.4012984643248171e-45F
  define: __LLFRACT_IBIT__=0
  define: __INT8_MAX__=0x7f
  define: __LONG_WIDTH__=32
  define: __INT32_MAX__=0x7fffffffL
  define: __UINT_FAST32_TYPE__=unsigned int
  define: __FLT32X_NORM_MAX__=1.7976931348623157e+308F32x
  define: __CHAR32_TYPE__=long unsigned int
  define: __FLT32_MIN_10_EXP__=(-37)
  define: __FLT_MAX__=3.4028234663852886e+38F
  define: __USACCUM_FBIT__=8
  define: __INT32_TYPE__=long int
  define: __SIZEOF_DOUBLE__=8
  define: __FLT_MIN_10_EXP__=(-37)
  define: __UFRACT_EPSILON__=0x1P-16UR
  define: __FLT64_MIN__=2.2250738585072014e-308F64
  define: __INT_LEAST32_WIDTH__=32
  define: __INTMAX_TYPE__=long long int
  define: __FLT32X_HAS_QUIET_NAN__=1
  define: __ATOMIC_CONSUME=1
  define: __GNUC_MINOR__=3
  define: __INT_FAST16_WIDTH__=32
  define: __UINTMAX_MAX__=0xffffffffffffffffULL
  define: __FLT32X_DENORM_MIN__=4.9406564584124654e-324F32x
  define: __ATOMIC_ACQ_REL=4
  define: __DBL_MAX_10_EXP__=308
  define: __LDBL_DENORM_MIN__=4.9406564584124654e-324L
  define: __INT16_C(c)=c
  define: __STDC__=1
  define: __FLT32X_DIG__=15
  define: __PTRDIFF_TYPE__=int
  define: __LLFRACT_MIN__=(-0.5LLR-0.5LLR)
  define: __USACCUM_MIN__=0.0UHK
  define: __FLT32_MIN__=1.1754943508222875e-38F32
  define: __ATOMIC_SEQ_CST=5
  define: __DA_FBIT__=31
  define: __OPTIMIZE_SIZE__=1
  define: __UINT32_TYPE__=long unsigned int
  define: __FLT32X_MIN_10_EXP__=(-307)
  define: __ARM_ARCH_EXT_IDIV__=1
  define: __UINTPTR_TYPE__=unsigned int
  define: __USA_IBIT__=16
  define: __ARM_EABI__=1
  define: __LDBL_MIN_10_EXP__=(-307)
  define: __SIZEOF_LONG_LONG__=8
  define: __ULACCUM_EPSILON__=0x1P-32ULK
  define: __SACCUM_IBIT__=8
  define: __GCC_ATOMIC_LLONG_LOCK_FREE=1
  define: __FLT_DECIMAL_DIG__=9
  define: __UINT_FAST16_MAX__=0xffffffffU
  define: __LDBL_NORM_MAX__=1.7976931348623157e+308L
  define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
  define: __ULLFRACT_MAX__=0XFFFFFFFFFFFFFFFFP-64ULLR
  define: __UINT_FAST8_TYPE__=unsigned int
  define: __USFRACT_EPSILON__=0x1P-8UHR
  define: __ULACCUM_FBIT__=32
  define: __ATOMIC_RELEASE=3
  define: _GNU_SOURCE
  define: FW_CFG_default
  define: M_MEMORY_FULL(x)=abort()
  define: STM32WB
  define: STM32WB55xx
  define: USE_FULL_ASSERT
  define: USE_FULL_LL_DRIVER
  define: MBEDTLS_CONFIG_FILE="mbedtls_cfg.h"
  define: PB_ENABLE_MALLOC
  define: FW_ORIGIN_Official
  define: FURI_NDEBUG
  define: NDEBUG
  define: FAP_VERSION="0.1"
  other: --g++
  other: --gnu_version=100301
  stdver: c++17
  intelliSenseMode: windows-gcc-arm
Update IntelliSense time (sec): 0.147
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 11)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 11)
LSP: (received) cpptools/getDocumentSymbols: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 12)
LSP: Sending response (id: 11)
LSP: (invoked) cpptools/getDocumentSymbols: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 12)
LSP: Sending response (id: 12)
LSP: Message ignored due to no registered handler: $/setTrace
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 13)
LSP: (invoked) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 13)
LSP: Sending response (id: 13)

Based on this behaviour, I believe "compilerPath" overrides the entire "command" parameter instead of just the first part of it, or maybe it ignores compile_commands.json entirely. The approach used by the toolchain I use is not recommended over "arguments", but it is allowed:

command: The compile command as a single shell-escaped string. Arguments may be shell quoted and escaped following platform conventions, with ‘"’ and ‘\’ being the only special characters. Shell expansion is not supported.

Either arguments or command is required. arguments is preferred, as shell (un)escaping is a possible source of errors.

I had a quick look at the toolchain and modifying it to emit "arguments" instead of "command" wouldn't be trivial - it already operates on an escaped and joined list of arguments so splitting them again would not be worth it. It would be better for the extension to correctly handle this (valid) use case instead.

from vscode-cpptools.

Colengms avatar Colengms commented on May 27, 2024

Hi @CookiePLMonster

I do not see any failure to query a compiler in your logs, so we can rule that (and fallback scenarios) out.

Putting together a simple example of what you've described, I'm unable to reproduce the behavior we're seeing in your logs. There would seem to be something about your environment, workspace, or configuration that we may need to know to understand what's going on.

Are you using a single-root or multi-root workspace? I'm seeing a multitude of "didChangeCppProperties" messages in the logs you provided, which I don't see in my local repro. If you're using multiple roots, the configuration(s) of the other root(s) might be relevant.

Can you provide us with a stand-alone example, as a github repo or a zip file? I suspect this would not be difficult for us to address if we could repro locally.

from vscode-cpptools.

CookiePLMonster avatar CookiePLMonster commented on May 27, 2024

Hey @Colengms, considering I was not even aware multi-root workspaces are a thing, I use a single-root one. Always opening the directory as a workspace.

Can you provide us with a stand-alone example, as a github repo or a zip file? I suspect this would not be difficult for us to address if we could repro locally.

The project I encountered this issue with is open source, standalone and self-contained - as in, it keeps the toolchain and all intermediates in its own repo directory only, not polluting the home directory or PATH. I suspect for this reason it should serve you well as a test case:

  1. Clone https://github.com/flipperdevices/flipperzero-firmware with all submodules.
  2. In the repository root, run ./fbt vscode_dist. This sets up the VSCode workspace and downloads the toolchain for compilation. Worry not, it downloads those to a toolchain/ directory in the repo directory, not impacting your environment otherwise.
  3. Open the workspace in VSCode, Press Ctrl+Shift+B to bring up the Build menu and run the [Debug] Build Firmware task.

With this set-up done, you may now observe the issue:

  1. build/latest/compile_commands.json has been created by the toolchain. Do note the command contains options like -mcpu=cortex-m4 that are supposed to impact the system defines IntelliSense sees.
  2. Open any .c file mentioned in the JSON file. In my case, I went for furi/flipper.c.
  3. Attempt to use a __ARM_ARCH_7EM__ macro anywhere in the file. Notice IntelliSense claims it is undefined, yet (if you attempt to build) the compiler sees it as defined to 1. This is because -mcpu=cortex-m4 implies an ARMv7E instruction set, which this system define signifies.
  4. Now open .vscode/c_cpp_properties.json and set "compilerPath" to "". Save the changes.
  5. Navigate back to furi/flipper.c. Notice that IntelliSense immediately picks up on the existence on __ARM_ARCH_7EM__ and says Expands to: 1. This is the intended behaviour.

I hope those repro steps are workable for you.

from vscode-cpptools.

Colengms avatar Colengms commented on May 27, 2024

Hi @CookiePLMonster

With those repro steps, if I remove the compilerPath entry in the generated c_cpp_properties.json, everything appears to work as expected. The issue would seem to be that, with the compilerPath specified, it overrides the compile_commands.json entry entirely, using both the compilerPath and compilerArgs from the base configuration (i.e. in c_cpp_properties.json) instead of anything from compile_commands.json.

You may be able to work around the issue by removing the compilePath entry entirely. Or, if you need to be able to fall back to some base configuration for files not in c_cpp_properties.json, you could copy a set of arguments from the compile_commands.json into the compilerArgs field of c_cpp_properties.json. (Assuming the same args are sufficient to configure all files, that may eliminate the need to refer to the compile_commands.json file at all. Also, the compilerArgs field, as an array of args, should not contain any shell command-line escaping. If that's an issue, providing a complete compile command-line in the compilerPath field, is also supported.)

I think the original intention was for compilerPath to override only the compiler and not the arguments in compile_commands.json. Though, instead of adjusting that behavior, I'd like to use this issue to track no longer allowing compilerPath to override command lines in compile_commands.json, in favor of using a separate settings value for that.

Also, I see this invalid entry present: "configurationProvider": "ms-vscode.cpptools"
Which you may want to remove also. The C/C++ Extension is not a provider of custom configurations to itself. This field would be for custom configuraiton providers such as CMake Tools, or Makefile Tools.

from vscode-cpptools.

CookiePLMonster avatar CookiePLMonster commented on May 27, 2024

Hey @Colengms, your insights make sense to me, thank you! Just one note:

You may be able to work around the issue by removing the compilePath entry entirely.

Given that removing the line makes the extension fall back to cl.exe (as I mentioned HERE), would setting the path to "" not be preferable? This is what I proposed in the drafted PR to the linked repository and my tests have been successful.

from vscode-cpptools.

Colengms avatar Colengms commented on May 27, 2024

would setting the path to "" not be preferable

That would result in no IntelliSense for files not found in compile_commands.json. Assuming that all of the compile_commands.json entries are indicating essentially the same arguments, you might try just pasting one of those command lines into the compilerPath field. That may successfully configure all files appropriately, without even requiring use of the compile_commands.json.

from vscode-cpptools.

CookiePLMonster avatar CookiePLMonster commented on May 27, 2024

Assuming that all of the compile_commands.json entries are indicating essentially the same arguments, you might try just pasting one of those command lines into the compilerPath field. That may successfully configure all files appropriately, without even requiring use of the compile_commands.json.

I don't think that's a safe assumption as I've seen a different set of arguments for .c and .cpp files. I also don't have enough knowledge of this project's toolchain.

That would result in no IntelliSense for files not found in compile_commands.json.

No Intellisense at all or just not querying the compiler for defines? If it's the latter, I don't know how useful cl.exe's query be for this codebase.

from vscode-cpptools.

CookiePLMonster avatar CookiePLMonster commented on May 27, 2024

I'm going to go ahead and correct the previously intended behavior of the compilerPath override, to continue to use the arguments provided in compile_commands.json.

This sounds perfect @Colengms, and effectively the exact change I was hoping to see when I opened this issue 👍

With this in mind, I am going to shelve my PR to the Flipper Zero repository (flipperdevices/flipperzero-firmware#3394) and wait for 1.19.3 to release. That said, I think it is still going to be worth removing the "configurationProvider": "ms-vscode.cpptools" entry you highlighted earlier as invalid.

from vscode-cpptools.

CookiePLMonster avatar CookiePLMonster commented on May 27, 2024

Hey @Colengms, did the bug fix make it to 1.19.3? While the issue is not linked, this change log entry sounds related:

Fix an issue where use of an explicit compilerPath to override the compiler in a compile_commands.json with also throw out the compiler arguments.

EDIT:
It's been fixed! I verified on a clear project and a regenerated vscode environment that IntelliSense now respects -mcpu with the compilerPath still set:
image

from vscode-cpptools.

bobbrow avatar bobbrow commented on May 27, 2024

Yes, it was fixed in 1.19.3 (as your EDIT confirms). I have updated the project marking to reflect which release it went in. It was accidentally marked for 1.20.

from vscode-cpptools.

CookiePLMonster avatar CookiePLMonster commented on May 27, 2024

Should this issue be closed then? Or do you wish to use it to track that "additional setting" that's mentioned in a revised issue title? Or keep it open until the fix hits a mainline version and not just a pre-release?

from vscode-cpptools.

Colengms avatar Colengms commented on May 27, 2024

I think the original intention was for compilerPath to override only the compiler and not the arguments in compile_commands.json. Though, instead of adjusting that behavior, I'd like to use this issue to track no longer allowing compilerPath to override command lines in compile_commands.json, in favor of using a separate settings value for that.

@CookiePLMonster @bobbrow I had updated the title of this issue to track a better solution. Restoring the previous behavior is a temporary solution. My intent was not to consider this issue resolved until the solution in the title has been implemented. Please leave this issue open to track that better solution. (Or I'll need to create another one).

from vscode-cpptools.

CookiePLMonster avatar CookiePLMonster commented on May 27, 2024

That's fine by me - the current behaviour is optimal already, and I'm fine with keeping this issue open.

from vscode-cpptools.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.