microsoft / vscode-cpptools

Official repository for the Microsoft C/C++ extension for VS Code.
Other
5.51k stars 1.55k forks source link

1.22.4 and up break custom configuration providers #12832

Open ThadHouse opened 1 day ago

ThadHouse commented 1 day ago

Environment

Bug Summary and Steps to Reproduce

Bug Summary:

Updating to 1.22.4 or newer breaks our existing C++ configuration provider.

Steps to reproduce:

  1. Clone https://github.com/ThadHouse/VsCodeIntellisenseDebug
  2. Run ./gradlew generateVsCode to generate the intellisense configuration
  3. Install our extension from VSIX https://github.com/wpilibsuite/vscode-wpilib/releases/tag/v2024.3.2
  4. Open src/main/cpp/Robot.cpp
  5. See no includes are found. Even though they should be.

Expected behavior: Includes are found and instellisense works.

Configuration and Logs

Configuration provider "C_Cpp.default.configurationProvider": "vscode-wpilib",

C/C++ Debug Logs

loggingLevel: Debug
loggingLevel has changed to: Debug
LSP: (invoked) cpptools/didChangeCppProperties (id: 7)
LSP: Sending response (id: 7)
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) textDocument/didOpen: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
LSP: (invoked) textDocument/didOpen: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
tag parsing file: C:\Users\thadh\Documents\Robotics\HighTeamNumberTest\src\main\cpp\Robot.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeActiveEditor: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
LSP: (received) cpptools/getCodeActions: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 8)
LSP: (received) cpptools/getDocumentSymbols: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 9)
LSP: (invoked) cpptools/getDocumentSymbols: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 9)
Intellisense update pending for: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
LSP: (invoked) cpptools/didChangeActiveEditor: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
LSP: (invoked) cpptools/getCodeActions: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 8)
LSP: Sending response (id: 8)
IntelliSense update scheduled and TU acquisition started for: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
Populating file name cache...
Done populating filename cache. Elapsed time: 5 ms
Requesting a custom configuration for: C:\USERS\THADH\DOCUMENTS\ROBOTICS\HIGHTEAMNUMBERTEST\SRC\MAIN\CPP\ROBOT.CPP
LSP: (received) cpptools/finishedRequestCustomConfig: file:///c%3A/USERS/THADH/DOCUMENTS/ROBOTICS/HIGHTEAMNUMBERTEST/SRC/MAIN/CPP/ROBOT.CPP
LSP: (invoked) cpptools/finishedRequestCustomConfig: file:///c%3A/USERS/THADH/DOCUMENTS/ROBOTICS/HIGHTEAMNUMBERTEST/SRC/MAIN/CPP/ROBOT.CPP
Resolving recursive includes...
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\optional
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\yvals.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\compare
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\exception
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\initializer_list
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\type_traits
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\utility
LSP: (received) cpptools/getFoldingRanges: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 10)
LSP: (invoked) cpptools/getFoldingRanges: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 10)
LSP: Sending response (id: 10)
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\xsmf_control.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\xutility
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\yvals_core.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\crtdbg.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\crtdefs.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\use_ansi.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\concepts
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\cstdlib
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\malloc.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\vcruntime_exception.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\cstddef
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\cstdint
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\xtr1common
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\__msvc_iter_core.hpp
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\climits
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\cstring
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\vcruntime.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\xkeycheck.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\vcruntime_new_debug.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\vcruntime_new.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\math.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\stdlib.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_malloc.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\eh.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\stddef.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\stdint.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\limits.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\string.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\sal.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\vadefs.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared\winapifamily.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_math.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_math_defines.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_search.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_wstdlib.h
LSP: (received) cpptools/hover: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 11)
LSP: (invoked) cpptools/hover: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 11)
Populating file name cache...
Done populating filename cache. Elapsed time: 4 ms
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_terminate.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_memory.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_wstring.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\vcruntime_string.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\CodeAnalysis\sourceannotations.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\concurrencysal.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared\winpackagefamily.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_memcpy_s.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\errno.h
LSP: $/cancelRequest (cpptools/hover, id: 11)
Done resolving recursive includes.
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\type_traits
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\initializer_list
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\compare
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\exception
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\climits
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\stddef.h
sending compilation args for C:\Users\thadh\Documents\Robotics\HighTeamNumberTest\src\main\cpp\Robot.cpp
  include: C:\USERS\THADH\DOCUMENTS\ROBOTICS\HIGHTEAMNUMBERTEST\SRC\MAIN\INCLUDE
  system include: C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\ENTERPRISE\VC\TOOLS\MSVC\14.41.34120\INCLUDE
  system include: C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\ENTERPRISE\VC\TOOLS\MSVC\14.41.34120\ATLMFC\INCLUDE
  system include: C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.26100.0\UM
  system include: C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.26100.0\UCRT
  system include: C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.26100.0\SHARED
  system include: C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.26100.0\WINRT
  system include: C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.26100.0\CPPWINRT
  define: _DEBUG
  define: UNICODE
  define: _UNICODE
  stdver: ms_c++17
  intelliSenseMode: windows-msvc-x64
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\yvals_core.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\cstddef
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\cstdint
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\xtr1common
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\concepts
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\yvals.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\cstdlib
tag parsing file: C:\Users\Public\wpilib\2024\roborio\arm-nilrt-linux-gnueabi\sysroot\usr\include\malloc.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\malloc.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\vcruntime_exception.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\limits.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\vcruntime.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\xkeycheck.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\stdint.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\vcruntime_new.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\crtdbg.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\crtdefs.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\use_ansi.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\math.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\stdlib.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_malloc.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\eh.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared\winapifamily.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\sal.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\vadefs.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\vcruntime_new_debug.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_math.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_math_defines.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_search.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_wstdlib.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_terminate.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared\winpackagefamily.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\CodeAnalysis\sourceannotations.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\concurrencysal.h
Error squiggles will be disabled in: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
Update IntelliSense time (sec): 1.129
LSP: Sending response (id: 9)
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\optional
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\utility
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\xsmf_control.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\xutility
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\__msvc_iter_core.hpp
tag parsing file: C:\Users\Public\wpilib\2024\roborio\arm-nilrt-linux-gnueabi\sysroot\usr\include\c++\12\cstring
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\cstring
tag parsing file: C:\Users\Public\wpilib\2024\roborio\arm-nilrt-linux-gnueabi\sysroot\usr\include\string.h
tag parsing file: C:\Users\Public\wpilib\2024\roborio\arm-nilrt-linux-gnueabi\sysroot\usr\include\bits\string.h
tag parsing file: C:\Users\Public\wpilib\2024\roborio\arm-nilrt-linux-gnueabi\sysroot\usr\include\linux\string.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\string.h
LSP: (received) cpptools/getCodeActions: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 12)
LSP: (invoked) cpptools/getCodeActions: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 12)
LSP: Sending response (id: 12)
tag parsing file: C:\Users\Public\wpilib\2024\roborio\arm-nilrt-linux-gnueabi\sysroot\usr\include\bits\string2.h
tag parsing file: C:\Users\Public\wpilib\2024\roborio\arm-nilrt-linux-gnueabi\sysroot\usr\include\bits\string3.h
LSP: (received) cpptools/getFoldingRanges: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 13)
LSP: (invoked) cpptools/getFoldingRanges: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 13)
LSP: Sending response (id: 13)
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_memory.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_wstring.h
tag parsing file: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\include\vcruntime_string.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\corecrt_memcpy_s.h
tag parsing file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt\errno.h
Database safe to open.
LSP: (received) cpptools/didChangeActiveEditor: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
LSP: (invoked) cpptools/didChangeActiveEditor: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
LSP: (received) textDocument/definition: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 14)
LSP: (invoked) textDocument/definition: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp (id: 14)
LSP: Sending response (id: 14)
LSP: (received) cpptools/getDiagnostics (id: 15)
LSP: (invoked) cpptools/getDiagnostics (id: 15)
LSP: Sending response (id: 15)
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeActiveEditor: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
LSP: (invoked) cpptools/didChangeActiveEditor: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeActiveEditor: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
LSP: (invoked) cpptools/didChangeActiveEditor: file:///c%3A/Users/thadh/Documents/Robotics/HighTeamNumberTest/src/main/cpp/Robot.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors

Diagnostic Logs

-------- Diagnostics - 10/10/2024, 10:48:29 PM
Version: 1.22.8
Current Configuration:
{
    "name": "Win32",
    "includePath": [
        "c:/Users/thadh/Documents/Robotics/HighTeamNumberTest/**"
    ],
    "defines": [
        "_DEBUG",
        "UNICODE",
        "_UNICODE"
    ],
    "windowsSdkVersion": "10.0.26100.0",
    "compilerPath": "cl.exe",
    "cStandard": "c17",
    "cppStandard": "c++17",
    "intelliSenseMode": "windows-msvc-x64",
    "compilerPathInCppPropertiesJson": "cl.exe",
    "intelliSenseModeIsExplicit": false,
    "cStandardIsExplicit": false,
    "cppStandardIsExplicit": false,
    "mergeConfigurations": false,
    "compilerPathIsExplicit": false,
    "configurationProvider": "vscode-wpilib",
    "browse": {
        "path": [
            "c:/Users/thadh/Documents/Robotics/HighTeamNumberTest/**",
            "${workspaceFolder}"
        ],
        "limitSymbolsToIncludedHeaders": true
    }
}
Modified Settings:
{
    "C_Cpp.default.configurationProvider": "vscode-wpilib",
    "C_Cpp.loggingLevel": "Debug"
}
Additional Tracked Settings:
{
    "editorTabSize": 4,
    "editorInsertSpaces": true,
    "editorAutoClosingBrackets": "languageDefined",
    "filesEncoding": "utf8",
    "filesAssociations": {},
    "filesExclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/CVS": true,
        "**/.DS_Store": true,
        "**/Thumbs.db": true,
        "bin/": true,
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true,
        "**/*~": true
    },
    "filesAutoSaveAfterDelay": false,
    "editorInlayHintsEnabled": true,
    "editorParameterHintsEnabled": true,
    "searchExclude": {
        "**/node_modules": true,
        "**/bower_components": true,
        "**/*.code-search": true
    },
    "workbenchSettingsEditor": "ui"
}
Custom browse configuration: 
{
    "browsePath": [
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\565d47e3775b9313fdd732099e133bee\\transformed\\wpilibNewCommands-cpp-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\d9794be3e9f1e7c9af7a35bcee988673\\transformed\\wpilibc-cpp-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\2050e45a9506f50316b76fa4c785df22\\transformed\\ntcore-cpp-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\2d2ffb11dea7f204c0530a1d7d5eb8fc\\transformed\\hal-cpp-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\445d96a793001fa5a8ca3afb6943843e\\transformed\\wpimath-cpp-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\01dd97910993894cfd3e01c371507028\\transformed\\wpinet-cpp-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\94c939e317e92b2022a8ae56fe5ba178\\transformed\\wpiutil-cpp-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\3751054505e5a1efb108a323023dea19\\transformed\\netcomm-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\c931d1797dfb2b75dceef794079716cf\\transformed\\chipobject-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\87674eb14ac45ba4681aa28706ae375a\\transformed\\visa-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\c333d9cd6885f6ed3ab650f7e2e399dc\\transformed\\cameraserver-cpp-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\3e7da6ed3f4dd8402c184d3091a734ef\\transformed\\cscore-cpp-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\6da44ca98a70273ee25af0581c64c8e2\\transformed\\apriltag-cpp-2024.2.1-headers\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\2cff16fe33e3c7b9c27127f684c3c228\\transformed\\opencv-cpp-4.8.0-2-headers\\",
        "C:\\Users\\thadh\\Documents\\Robotics\\HighTeamNumberTest\\src\\main\\include\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\3476670226f6b1363e7512e11bbd1c90\\transformed\\wpilibNewCommands-cpp-2024.2.1-sources\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\978275475533431176391d5f6d8240fa\\transformed\\wpilibc-cpp-2024.2.1-sources\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\8c04e0ca9ae8034afc7ac62d768f7483\\transformed\\ntcore-cpp-2024.2.1-sources\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\aed2d30da08be220b7011c5023156d07\\transformed\\hal-cpp-2024.2.1-sources\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\b199ee3768df979ae08a6d23d4662e69\\transformed\\wpimath-cpp-2024.2.1-sources\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\c686b646084b9408a5558a4370c01ffd\\transformed\\wpinet-cpp-2024.2.1-sources\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\6b35ac3b83c10a87f128131462e04990\\transformed\\wpiutil-cpp-2024.2.1-sources\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\8c70d000face5c4ce776607aed103497\\transformed\\cameraserver-cpp-2024.2.1-sources\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\76e4823f07b8d481a45af59fc93c4698\\transformed\\cscore-cpp-2024.2.1-sources\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\23ea6a92bda28ca9d96f11f65ec98084\\transformed\\apriltag-cpp-2024.2.1-sources\\",
        "C:\\Users\\thadh\\.gradle\\caches\\transforms-3\\ba3033dc32876fbde606c6931f3ff81a\\transformed\\opencv-cpp-4.8.0-2-sources\\"
    ],
    "compilerPath": "C:\\Users\\Public\\wpilib\\2024\\roborio\\bin\\arm-frc2024-linux-gnueabi-g++.exe",
    "compilerArgsLegacy": []
}

Other Extensions

WPILib VS Code Extension (https://github.com/wpilibsuite/vscode-wpilib), which provides the custom provider

Additional context

No response

ThadHouse commented 1 day ago

I suspect this is likely related to https://github.com/microsoft/vscode-cpptools/issues/12632. Our extension was written back in 2018, but we've tried to keep the API somewhat up to date.

ThadHouse commented 1 day ago

Digging through more, I found what broke. The uri passed to me is now fully capitalized, whereas before it was not. And I'm doing a String.startsWith from the URI passed in.

The issue is fixed by setting C_Cpp.caseSensitiveFileSupport in settings. There should be a way in the extension API to state that the provider requires case sensitive files, so this isn't an extra flag that needs to be set on every project.

sean-mcmanus commented 1 day ago

@ThadHouse I don't think setting "C_Cpp.caseSensitiveFileSupport" is the workaround we want users to use -- that is specifically for Windows folders that have case sensitivity enabled, and there might be other bugs introduced when that is used (https://github.com/Microsoft/vscode-cpptools/issues/12732).

@Colengms Was the caps change intentional? Should configuration providers be normalizing the casing of paths received from us when C_Cpp.caseSensitiveFileSupport is false? This seems like it might considered blocking for 1.22.9.

ThadHouse commented 1 day ago

Normalizing the casing is problematic, because that has the potential to break on unix platforms where case sensitive file support is necessary. In fact we've ran into that exact issue before, because iirc back in the day we did toLower() on everything, but that broke some of our linux users.

sean-mcmanus commented 1 day ago

@ThadHouse The all caps casing change only occurs on Windows (with caseSensitiveFileSupport false). Our database and other internal paths are stored in uppercase in that scenario to facilitate case insensitive comparisons.

Colengms commented 22 hours ago

Hi @ThadHouse . This should be fairly straight-forward for us to change to match the previous behavior. However, if the file system is case insensitive, it should be valid for URIs to contain case insensitive paths. VS Code will attempt to maintain stable casing for a URI, even going so far as to use incorrect/old casing after a file or folder has been renamed with new casing in the same session. ( https://github.com/microsoft/vscode/issues/137256 )

Currently, we only request configurations for files that are open, but in the future we intend to request configurations for files in advance, to properly calculate the include graph. Since we don't have direct access to what VS Code may have previously referred to a file as, it will become necessary for custom configuration providers to properly handle case insensitive paths (when configured accordingly) that may not match the casing on disk and may not match the casing VS Code has settled on. While we can change this to make an effort (99%) to match the file system and VS Code casing, this will not be 100% reliable and should be addressed by the custom configuration provider handling case insensitivity when applicable.

ThadHouse commented 22 hours ago

Is there any chance the extension API could provide the information on if the files are considered case insensitive or not? Right now theres a lot of checks that would have to be done to ensure the right type of comparison is used.

Also, I saw above that you the database on case insensitive converts everything to upper case. What APIs are used to do that? And can those APIs be made accessible to the extension API? Languages other than English make case insensitive comparisons MUCH harder, especially since not all the APIs exist in node.js to make this easy. We've ran into multiple issues in the past where file checks have been broken by users running in other languages.

Colengms commented 22 hours ago

Hi @ThadHouse . Currently, the C/C++ Extension will assume case insensitivity on Windows (unless C_Cpp.caseSensitiveFileSupport is set to enabled), and will assume case sensitivity on Linux and macOS. This is not ideal behavior, as Linux and macOS can also have case insensitive file systems, and all platforms can actually have a mixture of case sensitive and insensitive volumes/directories on the same system. So there's a possibility that the logic underlying this may improve/change at some point in the future.

provide the information on if the files are considered case insensitive or not

You could use os.platform to detect if running on Windows, then vscode.workspace.getConfiguration to get the value of C_Cpp.caseSensitiveFileSupport. Unfortunately, I don't know when/if we'll get to implement the 'ideal' behavior for detecting case sensitivity/insensitivity at any granularity. If that happens, we will likely need to provide updated guidance for config providers.

converts everything to upper case. What APIs are used to do that

The native component of the C/C++ extension attempts to 'normalize' paths (remove . and .. path parths). For case conversion on Windows, it looks like we're using native Win32 APIs: IsCharUpperW and CharUpperBuffW. But I think TypeScript should do the correct conversion simply using toUpperCase (and normalize).