Skip to content

1.22.4 and up break custom configuration providers #12832

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ThadHouse opened this issue Oct 11, 2024 · 9 comments
Closed

1.22.4 and up break custom configuration providers #12832

ThadHouse opened this issue Oct 11, 2024 · 9 comments
Assignees
Labels
bug Feature: Configuration Provider Related to the configurationProvider property, e.g. ms-vscode.cmake-tools, ms-vscode.makefile-tools. fixed Check the Milestone for the release in which the fix is or will be available. insiders Currently only repros with our latest Insiders release. Language Service regression A bug that didn't exist in a previous release
Milestone

Comments

@ThadHouse
Copy link

Environment

  • OS and Version: Windows 11
  • VS Code Version: 1.85.1 (But also reproduces on newest)
  • C/C++ Extension Version: 1.22.4 and up, does not reproduce in 1.22.3 and below

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
Copy link
Author

I suspect this is likely related to #12632. Our extension was written back in 2018, but we've tried to keep the API somewhat up to date.

@ThadHouse
Copy link
Author

ThadHouse commented Oct 11, 2024

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
Copy link
Contributor

sean-mcmanus commented Oct 11, 2024

@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 (#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.

@sean-mcmanus sean-mcmanus added bug Language Service regression A bug that didn't exist in a previous release Feature: Configuration Provider Related to the configurationProvider property, e.g. ms-vscode.cmake-tools, ms-vscode.makefile-tools. labels Oct 11, 2024
@sean-mcmanus sean-mcmanus added the insiders Currently only repros with our latest Insiders release. label Oct 11, 2024
@sean-mcmanus sean-mcmanus added this to the 1.22 milestone Oct 11, 2024
@ThadHouse
Copy link
Author

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
Copy link
Contributor

@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
Copy link
Contributor

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. ( microsoft/vscode#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
Copy link
Author

ThadHouse commented Oct 11, 2024

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
Copy link
Contributor

Colengms commented Oct 11, 2024

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).

@Colengms Colengms moved this to Done in cpptools Oct 11, 2024
@Colengms Colengms added the fixed Check the Milestone for the release in which the fix is or will be available. label Oct 11, 2024
@sean-mcmanus
Copy link
Contributor

@github-actions github-actions bot locked and limited conversation to collaborators Nov 29, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Feature: Configuration Provider Related to the configurationProvider property, e.g. ms-vscode.cmake-tools, ms-vscode.makefile-tools. fixed Check the Milestone for the release in which the fix is or will be available. insiders Currently only repros with our latest Insiders release. Language Service regression A bug that didn't exist in a previous release
Projects
Status: Done
Development

No branches or pull requests

3 participants