Skip to content

IntelliSense in 1.26.3: Makefile Tools configuration ignored, falling back to default configuration #13840

@alanpawlak

Description

@alanpawlak

Environment

  • OS and Version: Debian GNU/Linux 12 (bookworm)
  • VS Code Version: 1.103.0
  • C/C++ Extension Version: 1.26.3
  • If using SSH remote, specify OS of remote machine: Debian GNU/Linux 10 (buster)

I am using Debian 12 and attach VS Code to a container running Debian 10 (using Dev Containers extension)

Bug Summary and Steps to Reproduce

Bug Summary:

When using VS Code Makefile Tools (v0.12.7) as the configuration provider for C++ Tools, running Makefile: Clean Configure works as expected with C++ Tools v1.25.3. The extension correctly receives and applies the configuration provided by Makefile Tools:

Sending configuration for file <filePath> -----------------------------------
Sending configuration for file <filePath> -----------------------------------
Sending configuration for file <filePath> -----------------------------------

However, starting from C++ Tools v1.26.3, although the configuration messages are still sent, they are followed by a large number of warnings:

Configuration for file <filePath> was not found. CppTools will set a default configuration
Configuration for file <filePath> was not found. CppTools will set a default configuration
Configuration for file <filePath> was not found. CppTools will set a default configuration

In this state, C++ tools falls back to using the compiler in /usr/lib/gcc and only sets the project’s root folder as an include path, ignoring the include paths and defines provided by Makefile Tools.

Switching to the pre-release version of Makefile Tools and C++ Tools does not resolve the issue. However, the <filePath> not found error is not showing up when pre release version of C++ Tools is installed (1.27.0)

Expected Behavior

C++ Tools should honor the configuration provided by Makefile Tools, as it did in v1.25.3, ensuring all required include paths and defines are applied.

Configuration and Logs

I do not use c_cpp_properties.json, but a single .code-workspace file.


{
	"settings": {
		"editor.tabSize": 2,
		"editor.detectIndentation": false,
		"editor.insertSpaces": false,
		"makefile.configureOnOpen": false,
		"makefile.configureOnEdit": false,
		"makefile.makeDirectory": "${workspaceFolder}/Build",
		"makefile.extensionLog": "${workspaceFolder}/Output/makefile.log",
		"C_Cpp.default.configurationProvider": "ms-vscode.makefile-tools",
		"C_Cpp.default.mergeConfigurations": true,
		"makefile.configureAfterCommand": false,
		"makefile.alwaysPreConfigure": true,
		"makefile.preConfigureScript": "${workspaceFolder}/../../Scripts/config_vscode_intellisense.sh",
		"makefile.postConfigureScript": "${workspaceFolder}/../../Scripts/post_config.sh",
		"makefile.ignoreDirectoryCommands": false,
		"makefile.configurations": ["<MY CONFIGURATIONS HERE>"],
		"C_Cpp.errorSquiggles": "enabled",
	},
	"folders": ["<MY FOLDERS HERE>"]
}

Other Extensions

Makefile Tools (v0.12.7)
Dev Containers (v0.422.1)

Additional context

It is a large commercial project I am working on, so I am unable to provide thorough details. However, I am willing to try some things or potentially create a simple reproducible scenario.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Feature: Configuration ProviderRelated to the configurationProvider property, e.g. ms-vscode.cmake-tools, ms-vscode.makefile-tools.Language ServicebugregressionA bug that didn't exist in a previous release

    Type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions