From 0681d8293698bbfc90debae636f09b8beb498966 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Wed, 19 Mar 2025 13:05:23 -0700 Subject: [PATCH 01/11] Fix Copilot snippet logging level. (#13388) --- .../src/LanguageServer/copilotCompletionContextProvider.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Extension/src/LanguageServer/copilotCompletionContextProvider.ts b/Extension/src/LanguageServer/copilotCompletionContextProvider.ts index 14992e71a..51396a9b1 100644 --- a/Extension/src/LanguageServer/copilotCompletionContextProvider.ts +++ b/Extension/src/LanguageServer/copilotCompletionContextProvider.ts @@ -197,7 +197,7 @@ export class CopilotCompletionContextProvider implements ContextResolver Date: Thu, 20 Mar 2025 11:13:56 -0700 Subject: [PATCH 02/11] Turn Copilot Hover on by default. React immediately to settings changes for copilot hover. Change flight check to new flag to indicate a disabled state. (#13385) --- Extension/package.json | 3 ++- .../Providers/CopilotHoverProvider.ts | 12 ++++-------- Extension/src/LanguageServer/client.ts | 13 +++---------- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/Extension/package.json b/Extension/package.json index 28174d386..93954fdb2 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -3339,7 +3339,8 @@ "type": "string", "enum": [ "default", - "disabled" + "disabled", + "enabled" ], "default": "default", "markdownDescription": "%c_cpp.configuration.copilotHover.markdownDescription%", diff --git a/Extension/src/LanguageServer/Providers/CopilotHoverProvider.ts b/Extension/src/LanguageServer/Providers/CopilotHoverProvider.ts index 06f22e5ac..8a0038b37 100644 --- a/Extension/src/LanguageServer/Providers/CopilotHoverProvider.ts +++ b/Extension/src/LanguageServer/Providers/CopilotHoverProvider.ts @@ -33,7 +33,10 @@ export class CopilotHoverProvider implements vscode.HoverProvider { await this.client.ready; const settings: CppSettings = new CppSettings(vscode.workspace.getWorkspaceFolder(document.uri)?.uri); - if (settings.hover === "disabled") { + if (settings.hover === "disabled" || + settings.copilotHover === "disabled" || + (settings.copilotHover === "default" && await telemetry.isFlightEnabled("CppCopilotHoverDisabled"))) { + // Either disabled by the user or by the flight. return undefined; } @@ -46,13 +49,6 @@ export class CopilotHoverProvider implements vscode.HoverProvider { } } - if (new CppSettings().copilotHover === "default") { - // Check flight to make sure the feature is enabled. - if (!await telemetry.isFlightEnabled("CppCopilotHover")) { - return undefined; - } - } - const newHover = this.isNewHover(document, position); if (newHover) { this.reset(); diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 8a7ae0cec..024e862b6 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -1332,17 +1332,9 @@ export class DefaultClient implements Client { initializedClientCount = 0; this.inlayHintsProvider = new InlayHintsProvider(); this.hoverProvider = new HoverProvider(this); + this.copilotHoverProvider = new CopilotHoverProvider(this); - const settings: CppSettings = new CppSettings(); - this.currentCopilotHoverEnabled = new PersistentWorkspaceState("cpp.copilotHover", settings.copilotHover); - if (settings.copilotHover !== "disabled") { - this.copilotHoverProvider = new CopilotHoverProvider(this); - this.disposables.push(vscode.languages.registerHoverProvider(util.documentSelector, instrument(this.copilotHoverProvider))); - } - - if (settings.copilotHover !== this.currentCopilotHoverEnabled.Value) { - this.currentCopilotHoverEnabled.Value = settings.copilotHover; - } + this.disposables.push(vscode.languages.registerHoverProvider(util.documentSelector, instrument(this.copilotHoverProvider))); this.disposables.push(vscode.languages.registerHoverProvider(util.documentSelector, instrument(this.hoverProvider))); this.disposables.push(vscode.languages.registerInlayHintsProvider(util.documentSelector, instrument(this.inlayHintsProvider))); this.disposables.push(vscode.languages.registerRenameProvider(util.documentSelector, instrument(new RenameProvider(this)))); @@ -1362,6 +1354,7 @@ export class DefaultClient implements Client { this.codeFoldingProvider = new FoldingRangeProvider(this); this.codeFoldingProviderDisposable = vscode.languages.registerFoldingRangeProvider(util.documentSelector, instrument(this.codeFoldingProvider)); + const settings: CppSettings = new CppSettings(); if (settings.isEnhancedColorizationEnabled && semanticTokensLegend) { this.semanticTokensProvider = instrument(new SemanticTokensProvider()); this.semanticTokensProviderDisposable = vscode.languages.registerDocumentSemanticTokensProvider(util.documentSelector, this.semanticTokensProvider, semanticTokensLegend); From bd805090d551d69a9855df01207567b74a7dbfb5 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 21 Mar 2025 11:56:41 -0700 Subject: [PATCH 03/11] Fix crash call stack filtering. (#13397) * Fix crash call stack filtering. * Save regex object. Fix newlines. --- Extension/src/LanguageServer/extension.ts | 171 ++++++++++++---------- 1 file changed, 93 insertions(+), 78 deletions(-) diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index 8b88a5a88..fe8bcc852 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -1161,8 +1161,8 @@ function handleMacCrashFileRead(err: NodeJS.ErrnoException | undefined | null, d logMacCrashTelemetry(data); } +const regex: RegExp = /(key|token|sig|secret|signature|password|passwd|pwd|android:value)[^a-zA-Z0-9]/i; function containsFilteredTelemetryData(str: string): boolean { - const regex: RegExp = /(key|token|sig|secret|signature|password|passwd|pwd|android:value)[^a-zA-Z0-9]/i; return regex.test(str); } @@ -1175,7 +1175,7 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr } const lines: string[] = data.split("\n"); - let addressData: string = ".\n."; + let addressData: string = ".\n"; const isCppToolsSrv: boolean = crashFile.startsWith("cpptools-srv"); const telemetryHeader: string = (isCppToolsSrv ? "cpptools-srv.txt" : crashFile) + "\n"; const filtPath: string | null = which.sync("c++filt", { nothrow: true }); @@ -1183,131 +1183,146 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr const startStr: string = isMac ? " _" : "<"; const offsetStr: string = isMac ? " + " : "+"; const endOffsetStr: string = isMac ? " " : " <"; - const dotStr: string = "\n…"; + const dotStr: string = "…\n"; let signalType: string; let crashLog: string = ""; let crashStackStartLine: number = 0; if (lines[0] === "LOG") { let crashLogLine: number = 1; for (; crashLogLine < lines.length; ++crashLogLine) { - const pendingCrashLogLine = lines[crashLogLine]; + let pendingCrashLogLine = lines[crashLogLine]; if (pendingCrashLogLine === "ENDLOG") { break; } + pendingCrashLogLine += "\n"; if (containsFilteredTelemetryData(pendingCrashLogLine)) { crashLog += "?\n"; } else { - crashLog += pendingCrashLogLine + "\n"; + crashLog += pendingCrashLogLine; } } crashLog = crashLog.trimEnd(); crashStackStartLine = ++crashLogLine; } if (lines[crashStackStartLine].startsWith("SIG")) { - signalType = lines[crashStackStartLine]; + signalType = lines[crashStackStartLine] + "\n"; } else { // The signal type may fail to be written. signalType = "SIG-??\n"; // Intentionally different from SIG-? from cpptools. } + data = telemetryHeader + signalType; let crashCallStack: string = ""; let validFrameFound: boolean = false; for (let lineNum: number = crashStackStartLine; lineNum < lines.length - 3; ++lineNum) { // skip last lines const line: string = lines[lineNum]; const startPos: number = line.indexOf(startStr); + let pendingCallStack: string = ""; if (startPos === -1 || line[startPos + (isMac ? 1 : 4)] === "+") { if (!validFrameFound) { continue; // Skip extra … at the start. } - crashCallStack += dotStr; + pendingCallStack = dotStr; const startAddressPos: number = line.indexOf("0x"); const endAddressPos: number = line.indexOf(endOffsetStr, startAddressPos + 2); - addressData += "\n"; if (startAddressPos === -1 || endAddressPos === -1 || startAddressPos >= endAddressPos) { - addressData += "Unexpected offset"; + addressData += "Unexpected offset\n"; } else { - addressData += line.substring(startAddressPos, endAddressPos); - } - continue; - } - const offsetPos: number = line.indexOf(offsetStr, startPos + startStr.length); - if (offsetPos === -1) { - crashCallStack += "\nMissing offsetStr"; - addressData += "\n"; - continue; // unexpected - } - const startPos2: number = startPos + 1; - let funcStr: string = line.substring(startPos2, offsetPos); - if (filtPath && filtPath.length !== 0) { - let ret: util.ProcessReturnType | undefined = await util.spawnChildProcess(filtPath, ["--no-strip-underscore", funcStr], undefined, true).catch(logAndReturn.undefined); - if (ret?.output === funcStr) { - ret = await util.spawnChildProcess(filtPath, [funcStr], undefined, true).catch(logAndReturn.undefined); - } - if (ret !== undefined && ret.succeeded && !ret.output.startsWith("Could not open input file")) { - funcStr = ret.output; - funcStr = funcStr.replace(/std::(?:__1|__cxx11)/g, "std"); // simplify std namespaces. - funcStr = funcStr.replace(/std::basic_/g, "std::"); - funcStr = funcStr.replace(/ >/g, ">"); - funcStr = funcStr.replace(/, std::(?:allocator|char_traits)/g, ""); - funcStr = funcStr.replace(//g, ""); - funcStr = funcStr.replace(/, std::allocator/g, ""); - } - } - if (containsFilteredTelemetryData(funcStr)) { - funcStr = "?"; - } else if (!validFrameFound && (funcStr.startsWith("crash_handler(") || funcStr.startsWith("_sigtramp"))) { - continue; // Skip these on early frames. - } - validFrameFound = true; - crashCallStack += "\n"; - addressData += "\n"; - crashCallStack += funcStr + offsetStr; - const offsetPos2: number = offsetPos + offsetStr.length; - if (isMac) { - const pendingOffset: string = line.substring(offsetPos2); - if (containsFilteredTelemetryData(pendingOffset)) { - crashCallStack += "?"; - } else { - crashCallStack += pendingOffset; - } - const startAddressPos: number = line.indexOf("0x"); - if (startAddressPos === -1 || startAddressPos >= startPos) { - // unexpected - crashCallStack += ""; - continue; + let pendingAddressData: string = line.substring(startAddressPos, endAddressPos) + "\n"; + if (containsFilteredTelemetryData(pendingAddressData)) { + pendingAddressData = "?\n"; + } + addressData += pendingAddressData; } - addressData += `${line.substring(startAddressPos, startPos)}`; } else { - const endPos: number = line.indexOf(">", offsetPos2); - if (endPos === -1) { - crashCallStack += " >"; - continue; // unexpected - } - const pendingOffset: string = line.substring(offsetPos2, endPos); - if (containsFilteredTelemetryData(pendingOffset)) { - crashCallStack += "?"; + const offsetPos: number = line.indexOf(offsetStr, startPos + startStr.length); + if (offsetPos === -1) { + pendingCallStack = "Missing offsetStr\n"; + addressData += "\n"; } else { - crashCallStack += pendingOffset; + const startPos2: number = startPos + 1; + let funcStr: string = line.substring(startPos2, offsetPos); + let origFuncStr: string = ""; + if (filtPath && filtPath.length !== 0) { + let ret: util.ProcessReturnType | undefined = await util.spawnChildProcess(filtPath, ["--no-strip-underscore", funcStr], undefined, true).catch(logAndReturn.undefined); + if (ret?.output === funcStr) { + ret = await util.spawnChildProcess(filtPath, [funcStr], undefined, true).catch(logAndReturn.undefined); + } + if (ret !== undefined && ret.succeeded && !ret.output.startsWith("Could not open input file")) { + origFuncStr = funcStr; + funcStr = ret.output; + funcStr = funcStr.replace(/std::(?:__1|__cxx11)/g, "std"); // simplify std namespaces. + funcStr = funcStr.replace(/std::basic_/g, "std::"); + funcStr = funcStr.replace(/ >/g, ">"); + funcStr = funcStr.replace(/, std::(?:allocator|char_traits)/g, ""); + funcStr = funcStr.replace(//g, ""); + funcStr = funcStr.replace(/, std::allocator/g, ""); + } + } + if (!validFrameFound && (funcStr.startsWith("crash_handler(") || funcStr.startsWith("_sigtramp"))) { + continue; // Skip these on early frames. + } + validFrameFound = true; + + let pendingOffset: string = offsetStr; + const offsetPos2: number = offsetPos + offsetStr.length; + // Compute pendingOffset. + if (isMac) { + pendingOffset += line.substring(offsetPos2); + const startAddressPos: number = line.indexOf("0x"); + if (startAddressPos === -1 || startAddressPos >= startPos) { + // unexpected + pendingOffset += ""; + addressData += "\n"; + } else { + let pendingAddressData: string = line.substring(startAddressPos, startPos) + "\n"; + if (containsFilteredTelemetryData(pendingAddressData)) { + pendingAddressData = "?\n"; + } + addressData += pendingAddressData; + } + } else { + const endPos: number = line.indexOf(">", offsetPos2); + if (endPos === -1) { + pendingOffset += " >"; // unexpected + } else { + pendingOffset += line.substring(offsetPos2, endPos); + } + addressData += "\n"; + // TODO: It seems like addressData should be obtained on Linux in case the function is filtered. + } + pendingOffset += "\n"; + pendingCallStack = funcStr + pendingOffset; + if (containsFilteredTelemetryData(pendingCallStack)) { + if (origFuncStr.length > 0 && origFuncStr !== funcStr) { + pendingCallStack = origFuncStr + pendingOffset; + if (containsFilteredTelemetryData(pendingCallStack)) { + pendingCallStack = "?\n"; + } + } else { + pendingCallStack = "?\n"; + } + } } } + if (data.length + crashCallStack.length + pendingCallStack.length > 8191) { // The API has an 8k limit. + crashCallStack += "…"; + break; + } + crashCallStack += pendingCallStack; } + crashCallStack = crashCallStack.trimEnd(); + addressData = addressData.trimEnd(); + if (crashCallStack !== prevCppCrashCallStackData) { prevCppCrashCallStackData = crashCallStack; if (lines.length >= 6 && util.getLoggingLevel() >= 1) { - getCrashCallStacksChannel().appendLine(`\n${isCppToolsSrv ? "cpptools-srv" : "cpptools"}\n${crashDate.toLocaleString()}\n${signalType}${crashCallStack}\n\n${crashLog}`); + getCrashCallStacksChannel().appendLine(`\n${isCppToolsSrv ? "cpptools-srv" : "cpptools"}\n${crashDate.toLocaleString()}\n${signalType}${crashCallStack}${crashLog.length > 0 ? "\n\n" + crashLog : ""}`); } } - data = telemetryHeader + signalType + crashCallStack; - - if (data.length > 8192) { // The API has an 8k limit. - data = data.substring(0, 8191) + "…"; - } - - if (containsFilteredTelemetryData(addressData)) { - addressData = "?"; - } + data += crashCallStack; logCppCrashTelemetry(data, addressData, crashLog); From 225143f1f153cc10761fa9967f60eeb507f05282 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Fri, 21 Mar 2025 18:19:24 -0700 Subject: [PATCH 04/11] Add settings for 'reduce', 'priority' and internal 'order' of recursive includes. (#13374) --- Extension/c_cpp_properties.schema.json | 41 +++++++++++++++++- Extension/package.json | 31 +++++++++++++ Extension/package.nls.json | 22 +++++++++- .../src/LanguageServer/configurations.ts | 41 ++++++++++-------- Extension/src/LanguageServer/settings.ts | 3 ++ Extension/src/LanguageServer/settingsPanel.ts | 21 +++++++++ Extension/ui/settings.html | 43 +++++++++++++++++++ Extension/ui/settings.ts | 8 ++++ 8 files changed, 188 insertions(+), 22 deletions(-) diff --git a/Extension/c_cpp_properties.schema.json b/Extension/c_cpp_properties.schema.json index cd7e174d9..939cb8a34 100644 --- a/Extension/c_cpp_properties.schema.json +++ b/Extension/c_cpp_properties.schema.json @@ -180,7 +180,10 @@ "mergeConfigurations": { "markdownDescription": "Set to `true` to merge include paths, defines, and forced includes with those from a configuration provider.", "descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.", - "type": "boolean" + "type": [ + "boolean", + "string" + ] }, "browse": { "type": "object", @@ -208,6 +211,42 @@ }, "additionalProperties": false }, + "recursiveIncludes": { + "type": "object", + "properties": { + "reduce": { + "markdownDescription": "Set to `always` to always reduce the number of recursive include paths provided to IntelliSense to only those paths currently referenced by #include statements. This requires first parsing files to determine which headers are included. Set to `never` to provide all recursive include paths to IntelliSense. Reducing the number of recursive include paths may improve IntelliSense performance when a very large number of recursive include paths are involved. Not reducing the number of recursive include paths can improve IntelliSense performance by avoiding the need to parse files to determine which include paths to provide. The `default` value is currently to reduce the number of recursive include paths provided to IntelliSense.", + "descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.", + "type": "string", + "enum": [ + "always", + "never", + "default", + "${default}" + ] + }, + "priority": { + "markdownDescription": "The priority of recursive include paths. If set to `beforeSystemIncludes`, the recursive include paths will be searched before system include paths. If set to `afterSystemIncludes`, the recursive include paths will be searched after system include paths. `beforeSystemIncludes` would more closely reflect the search order of a compiler, while `afterSystemIncludes` may result in improved performance.", + "descriptionHint": "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered.", + "type": "string", + "enum": [ + "beforeSystemIncludes", + "afterSystemIncludes", + "${default}" + ] + }, + "order": { + "markdownDescription": "The order in which subdirectories of recursive includes are searched.", + "type": "string", + "enum": [ + "depthFirst", + "breadthFirst", + "${default}" + ] + } + }, + "additionalProperties": false + }, "customConfigurationVariables": { "type": "object", "markdownDescription": "Custom variables that can be queried through the command `${cpptools:activeConfigCustomVariable}` to use for the input variables in `launch.json` or `tasks.json`.", diff --git a/Extension/package.json b/Extension/package.json index 93954fdb2..07c2455d3 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -897,6 +897,37 @@ "markdownDescription": "%c_cpp.configuration.default.dotConfig.markdownDescription%", "scope": "resource" }, + "C_Cpp.default.recursiveIncludes.reduce": { + "type": "string", + "enum": [ + "always", + "never", + "default" + ], + "default": "default", + "markdownDescription": "%c_cpp.configuration.default.recursiveIncludes.reduce.markdownDescription%", + "scope": "resource" + }, + "C_Cpp.default.recursiveIncludes.priority": { + "type": "string", + "enum": [ + "beforeSystemIncludes", + "afterSystemIncludes" + ], + "default": "afterSystemIncludes", + "markdownDescription": "%c_cpp.configuration.default.recursiveIncludes.priority.markdownDescription%", + "scope": "resource" + }, + "C_Cpp.default.recursiveIncludes.order": { + "type": "string", + "enum": [ + "depthFirst", + "breadthFirst" + ], + "default": "depthFirst", + "markdownDescription": "%c_cpp.configuration.default.recursiveIncludes.order.markdownDescription%", + "scope": "resource" + }, "C_Cpp.configurationWarnings": { "type": "string", "enum": [ diff --git a/Extension/package.nls.json b/Extension/package.nls.json index d8c3599a7..6d9d9d2b5 100644 --- a/Extension/package.nls.json +++ b/Extension/package.nls.json @@ -682,7 +682,7 @@ ] }, "c_cpp.configuration.default.mergeConfigurations.markdownDescription": { - "message": "Set to `true` to merge include paths, defines, and forced includes with those from a configuration provider.", + "message": "The value to use in a configuration if `mergeConfigurations` is either not specified or set to `${default}`.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] @@ -724,7 +724,25 @@ ] }, "c_cpp.configuration.default.dotConfig.markdownDescription": { - "message": "The value to use in a configuration if `dotConfig` is not specified, or the value to insert if `${default}` is present in `dotConfig`.", + "message": "The value to use in a configuration if `dotConfig` is either not specified or set to `${default}`.", + "comment": [ + "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." + ] + }, + "c_cpp.configuration.default.recursiveIncludes.reduce.markdownDescription": { + "message": "The value to use in a configuration if `recursiveIncludes.reduce` is either not specified or set to `${default}`.", + "comment": [ + "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." + ] + }, + "c_cpp.configuration.default.recursiveIncludes.priority.markdownDescription": { + "message": "The value to use in a configuration if `recursiveIncludes.priority` is either not specified or set to `${default}`.", + "comment": [ + "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." + ] + }, + "c_cpp.configuration.default.recursiveIncludes.order.markdownDescription": { + "message": "The value to use in a configuration if `recursiveIncludes.order` is either not specified or set to `${default}`.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] diff --git a/Extension/src/LanguageServer/configurations.ts b/Extension/src/LanguageServer/configurations.ts index 8be51b0a7..ccd7723f9 100644 --- a/Extension/src/LanguageServer/configurations.ts +++ b/Extension/src/LanguageServer/configurations.ts @@ -83,8 +83,9 @@ export interface Configuration { forcedInclude?: string[]; configurationProviderInCppPropertiesJson?: string; configurationProvider?: string; - mergeConfigurations?: boolean; + mergeConfigurations?: boolean | string; browse?: Browse; + recursiveIncludes?: RecursiveIncludes; customConfigurationVariables?: { [key: string]: string }; } @@ -107,6 +108,12 @@ export interface Browse { databaseFilename?: string; } +export interface RecursiveIncludes { + reduce?: string; + priority?: string; + order?: string; +} + export interface KnownCompiler { path: string; isC: boolean; @@ -813,13 +820,16 @@ export class CppProperties { return resolvedGlob; } - private updateConfigurationString(property: string | undefined | null, defaultValue: string | undefined | null, env: Environment, acceptBlank?: boolean): string | undefined { + private updateConfigurationString(property: string | undefined | null, defaultValue: string | undefined | null, env?: Environment, acceptBlank?: boolean): string | undefined { if (property === null || property === undefined || property === "${default}") { property = defaultValue; } if (property === null || property === undefined || (acceptBlank !== true && property === "")) { return undefined; } + if (env === undefined) { + return property; + } return util.resolveVariables(property, env); } @@ -843,21 +853,8 @@ export class CppProperties { return paths; } - private updateConfigurationStringOrBoolean(property: string | boolean | undefined | null, defaultValue: boolean | undefined | null, env: Environment): string | boolean | undefined { - if (!property || property === "${default}") { - property = defaultValue; - } - if (!property || property === "") { - return undefined; - } - if (typeof property === "boolean") { - return property; - } - return util.resolveVariables(property, env); - } - - private updateConfigurationBoolean(property: boolean | undefined | null, defaultValue: boolean | undefined | null): boolean | undefined { - if (property === null || property === undefined) { + private updateConfigurationBoolean(property: boolean | string | undefined | null, defaultValue: boolean | undefined | null): boolean | undefined { + if (property === null || property === undefined || property === "${default}") { property = defaultValue; } @@ -865,7 +862,7 @@ export class CppProperties { return undefined; } - return property; + return property === true || property === "true"; } private updateConfigurationStringDictionary(property: { [key: string]: string } | undefined, defaultValue: { [key: string]: string } | undefined, env: Environment): { [key: string]: string } | undefined { @@ -939,6 +936,12 @@ export class CppProperties { configuration.cStandardIsExplicit = configuration.cStandardIsExplicit || settings.defaultCStandard !== ""; configuration.cppStandardIsExplicit = configuration.cppStandardIsExplicit || settings.defaultCppStandard !== ""; configuration.mergeConfigurations = this.updateConfigurationBoolean(configuration.mergeConfigurations, settings.defaultMergeConfigurations); + if (!configuration.recursiveIncludes) { + configuration.recursiveIncludes = {}; + } + configuration.recursiveIncludes.reduce = this.updateConfigurationString(configuration.recursiveIncludes.reduce, settings.defaultRecursiveIncludesReduce); + configuration.recursiveIncludes.priority = this.updateConfigurationString(configuration.recursiveIncludes.priority, settings.defaultRecursiveIncludesPriority); + configuration.recursiveIncludes.order = this.updateConfigurationString(configuration.recursiveIncludes.order, settings.defaultRecursiveIncludesOrder); if (!configuration.compileCommands) { // compile_commands.json already specifies a compiler. compilerPath overrides the compile_commands.json compiler so // don't set a default when compileCommands is in use. @@ -1002,7 +1005,7 @@ export class CppProperties { configuration.browse.path = this.updateConfigurationPathsArray(configuration.browse.path, settings.defaultBrowsePath, env); } - configuration.browse.limitSymbolsToIncludedHeaders = this.updateConfigurationStringOrBoolean(configuration.browse.limitSymbolsToIncludedHeaders, settings.defaultLimitSymbolsToIncludedHeaders, env); + configuration.browse.limitSymbolsToIncludedHeaders = this.updateConfigurationBoolean(configuration.browse.limitSymbolsToIncludedHeaders, settings.defaultLimitSymbolsToIncludedHeaders); configuration.browse.databaseFilename = this.updateConfigurationString(configuration.browse.databaseFilename, settings.defaultDatabaseFilename, env); if (i === this.CurrentConfigurationIndex) { diff --git a/Extension/src/LanguageServer/settings.ts b/Extension/src/LanguageServer/settings.ts index 58a28e87b..fb8b3c458 100644 --- a/Extension/src/LanguageServer/settings.ts +++ b/Extension/src/LanguageServer/settings.ts @@ -444,6 +444,9 @@ export class CppSettings extends Settings { public get defaultBrowsePath(): string[] | undefined { return this.getArrayOfStringsWithUndefinedDefault("default.browse.path"); } public get defaultDatabaseFilename(): string | undefined { return changeBlankStringToUndefined(this.getAsStringOrUndefined("default.browse.databaseFilename")); } public get defaultLimitSymbolsToIncludedHeaders(): boolean { return this.getAsBoolean("default.browse.limitSymbolsToIncludedHeaders"); } + public get defaultRecursiveIncludesReduce(): string { return this.getAsString("default.recursiveIncludes.reduce"); } + public get defaultRecursiveIncludesPriority(): string { return this.getAsString("default.recursiveIncludes.priority"); } + public get defaultRecursiveIncludesOrder(): string { return this.getAsString("default.recursiveIncludes.order"); } public get defaultSystemIncludePath(): string[] | undefined { return this.getArrayOfStringsWithUndefinedDefault("default.systemIncludePath"); } public get defaultEnableConfigurationSquiggles(): boolean { return this.getAsBoolean("default.enableConfigurationSquiggles"); } public get defaultCustomConfigurationVariables(): Associations | undefined { return this.getAsAssociations("default.customConfigurationVariables", true) ?? undefined; } diff --git a/Extension/src/LanguageServer/settingsPanel.ts b/Extension/src/LanguageServer/settingsPanel.ts index a13ef8109..6352e428f 100644 --- a/Extension/src/LanguageServer/settingsPanel.ts +++ b/Extension/src/LanguageServer/settingsPanel.ts @@ -52,6 +52,9 @@ const elementId: { [key: string]: string } = { mergeConfigurations: "mergeConfigurations", configurationProvider: "configurationProvider", forcedInclude: "forcedInclude", + recursiveIncludesReduce: "recursiveIncludes.reduce", + recursiveIncludesPriority: "recursiveIncludes.priority", + recursiveIncludesOrder: "recursiveIncludes.order", // Browse properties browsePath: "browsePath", @@ -351,6 +354,24 @@ export class SettingsPanel { case elementId.forcedInclude: this.configValues.forcedInclude = splitEntries(message.value); break; + case elementId.recursiveIncludesReduce: + if (!this.configValues.recursiveIncludes) { + this.configValues.recursiveIncludes = {}; + } + this.configValues.recursiveIncludes.reduce = message.value; + break; + case elementId.recursiveIncludesPriority: + if (!this.configValues.recursiveIncludes) { + this.configValues.recursiveIncludes = {}; + } + this.configValues.recursiveIncludes.priority = message.value; + break; + case elementId.recursiveIncludesOrder: + if (!this.configValues.recursiveIncludes) { + this.configValues.recursiveIncludes = {}; + } + this.configValues.recursiveIncludes.order = message.value; + break; case elementId.browsePath: if (!this.configValues.browse) { this.configValues.browse = {}; diff --git a/Extension/ui/settings.html b/Extension/ui/settings.html index 5bfe02051..a8deeb3c3 100644 --- a/Extension/ui/settings.html +++ b/Extension/ui/settings.html @@ -722,6 +722,49 @@ +
+
Recursive includes: priority
+
+ Set to always to reduce the number of recursive include paths provided to IntelliSense to only those paths currently referenced by #include statements. This requires first parsing files to determine which files are included. Set to never to provide all recursive include paths to IntelliSense. Reducing the number of recursive include paths may improve IntelliSense performance when a very large number of recursive include paths are involved. Not reducing the number of recursive include paths can improve IntelliSense performance by avoiding the need to parse files to determine which include paths to provide. +
+
+ +
+
+ +
+
Recursive includes: priority
+
+ The priority of recursive include paths. If set to beforeSystemIncludes, the recursive include paths will be searched before system include paths. If set to afterSystemIncludes, the recursive include paths will be searched after system include paths. +
+
+ +
+
+ +
+
Recursive includes: priority
+
+ The order in which subdirectories under recursive include paths are searched. +
+
+ +
+
+ diff --git a/Extension/ui/settings.ts b/Extension/ui/settings.ts index fc75f4cbd..ce5a23ab2 100644 --- a/Extension/ui/settings.ts +++ b/Extension/ui/settings.ts @@ -42,6 +42,9 @@ const elementId: { [key: string]: string } = { mergeConfigurations: "mergeConfigurations", dotConfig: "dotConfig", dotConfigInvalid: "dotConfigInvalid", + recursiveIncludesReduce: "recursiveIncludes.reduce", + recursiveIncludesPriority: "recursiveIncludes.priority", + recursiveIncludesOrder: "recursiveIncludes.order", // Browse properties browsePath: "browsePath", @@ -300,6 +303,11 @@ class SettingsApp { (document.getElementById(elementId.configurationProvider)).value = config.configurationProvider ? config.configurationProvider : ""; (document.getElementById(elementId.forcedInclude)).value = joinEntries(config.forcedInclude); (document.getElementById(elementId.dotConfig)).value = config.dotConfig ? config.dotConfig : ""; + if (config.recursiveIncludes) { + (document.getElementById(elementId.recursiveIncludesReduce)).value = config.recursiveIncludes.reduce; + (document.getElementById(elementId.recursiveIncludesPriority)).value = config.recursiveIncludes.priority; + (document.getElementById(elementId.recursiveIncludesOrder)).value = config.recursiveIncludes.order; + } if (config.browse) { (document.getElementById(elementId.browsePath)).value = joinEntries(config.browse.path); From 00f0915b7836270c6348f5f763169e1d10748efe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Mar 2025 08:22:13 -0700 Subject: [PATCH 05/11] Bump @octokit/plugin-paginate-rest, @actions/github and @octokit/rest (#13402) Bumps [@octokit/plugin-paginate-rest](https://github.com/octokit/plugin-paginate-rest.js) to 9.2.2 and updates ancestor dependencies [@octokit/plugin-paginate-rest](https://github.com/octokit/plugin-paginate-rest.js), [@actions/github](https://github.com/actions/toolkit/tree/HEAD/packages/github) and [@octokit/rest](https://github.com/octokit/rest.js). These dependencies need to be updated together. Updates `@octokit/plugin-paginate-rest` from 2.21.3 to 9.2.2 - [Release notes](https://github.com/octokit/plugin-paginate-rest.js/releases) - [Commits](https://github.com/octokit/plugin-paginate-rest.js/compare/v2.21.3...v9.2.2) Updates `@actions/github` from 5.1.1 to 6.0.0 - [Changelog](https://github.com/actions/toolkit/blob/main/packages/github/RELEASES.md) - [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/github) Updates `@octokit/rest` from 19.0.13 to 21.1.1 - [Release notes](https://github.com/octokit/rest.js/releases) - [Commits](https://github.com/octokit/rest.js/compare/v19.0.13...v21.1.1) --- updated-dependencies: - dependency-name: "@octokit/plugin-paginate-rest" dependency-type: indirect - dependency-name: "@actions/github" dependency-type: direct:production - dependency-name: "@octokit/rest" dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/actions/package-lock.json | 418 +++++++++++++++--------------- .github/actions/package.json | 4 +- 2 files changed, 207 insertions(+), 215 deletions(-) diff --git a/.github/actions/package-lock.json b/.github/actions/package-lock.json index 2216a9f1b..9d7e35227 100644 --- a/.github/actions/package-lock.json +++ b/.github/actions/package-lock.json @@ -9,8 +9,8 @@ "version": "1.0.0", "dependencies": { "@actions/core": "^1.9.1", - "@actions/github": "^5.0.3", - "@octokit/rest": "^19.0.3", + "@actions/github": "^6.0.0", + "@octokit/rest": "^21.1.1", "@slack/web-api": "^6.9.1", "applicationinsights": "^2.5.1", "axios": "^1.8.2", @@ -49,15 +49,15 @@ } }, "node_modules/@actions/github": { - "version": "5.1.1", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@actions/github/-/github-5.1.1.tgz", - "integrity": "sha1-QLm54TI6Xvz0/32t0z2OpRZRu8s=", + "version": "6.0.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@actions/github/-/github-6.0.0.tgz", + "integrity": "sha1-ZYg0M/nYFSG3gqZMwf1F7vIZHqc=", "license": "MIT", "dependencies": { - "@actions/http-client": "^2.0.1", - "@octokit/core": "^3.6.0", - "@octokit/plugin-paginate-rest": "^2.17.0", - "@octokit/plugin-rest-endpoint-methods": "^5.13.0" + "@actions/http-client": "^2.2.0", + "@octokit/core": "^5.0.1", + "@octokit/plugin-paginate-rest": "^9.0.0", + "@octokit/plugin-rest-endpoint-methods": "^10.0.0" } }, "node_modules/@actions/http-client": { @@ -1269,285 +1269,312 @@ } }, "node_modules/@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha1-J8N+omwgXyhENAJHf/0mExHyHjY=", + "version": "4.0.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha1-QNID6oJ7nxf0KinGr7k7d0XvgMc=", "license": "MIT", - "dependencies": { - "@octokit/types": "^6.0.3" + "engines": { + "node": ">= 18" } }, "node_modules/@octokit/core": { - "version": "3.6.0", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha1-M3bLnzAI2bPREDcNkOCh/NX+YIU=", + "version": "5.2.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/core/-/core-5.2.1.tgz", + "integrity": "sha1-WMIaX2ie6B4LiDtap3Vzp/8bTqE=", "license": "MIT", "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.4.1", + "@octokit/request-error": "^5.1.1", + "@octokit/types": "^13.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" } }, "node_modules/@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha1-O01HpLDnmxAn+4111CIZKLLQVlg=", + "version": "9.0.6", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/endpoint/-/endpoint-9.0.6.tgz", + "integrity": "sha1-EU2RIQj+aS2LE5z+f8CEbf0RtsA=", "license": "MIT", "dependencies": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", + "@octokit/types": "^13.1.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" } }, "node_modules/@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha1-Zk2bEcDhIRLL944Q9JoFlZqiLMM=", + "version": "7.1.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/graphql/-/graphql-7.1.1.tgz", + "integrity": "sha1-ednz0Mlqj9E9ZBhv5cM2BtSLecw=", "license": "MIT", "dependencies": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", + "@octokit/request": "^8.4.1", + "@octokit/types": "^13.0.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" } }, "node_modules/@octokit/openapi-types": { - "version": "12.11.0", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", - "integrity": "sha1-2lY41k8rkZvKic5mAtBZ8bUtPvA=", + "version": "24.2.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.21.3", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", - "integrity": "sha1-fxJTJ5d3VkDbuCJNpXfafcIQyH4=", + "version": "9.2.2", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz", + "integrity": "sha1-xRa8SYc2vNqpCVuaHRDZ0FAa6DE=", "license": "MIT", "dependencies": { - "@octokit/types": "^6.40.0" + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=2" + "@octokit/core": "5" } }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha1-XlDtcIOmE4FrHkooruxft/FGLoU=", + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha1-nsLaoAkO64Ze4UdjbgwA9zeQxuU=", + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha1-gQD7nu7f4IOq5mRzvZexW2Ku3LI=", "license": "MIT", - "peerDependencies": { - "@octokit/core": ">=3" + "dependencies": { + "@octokit/openapi-types": "^20.0.0" } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.16.2", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", - "integrity": "sha1-fui/WG35fdaGjPaPZBNU6QjCU0I=", + "version": "10.4.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", + "integrity": "sha1-QbpHilWLn1VHkwdbLiDNLvlzvhc=", "license": "MIT", "dependencies": { - "@octokit/types": "^6.39.0", - "deprecation": "^2.3.1" + "@octokit/types": "^12.6.0" + }, + "engines": { + "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=3" + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { + "version": "20.0.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", + "integrity": "sha1-nsLaoAkO64Ze4UdjbgwA9zeQxuU=", + "license": "MIT" + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "12.6.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/types/-/types-12.6.0.tgz", + "integrity": "sha1-gQD7nu7f4IOq5mRzvZexW2Ku3LI=", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^20.0.0" } }, "node_modules/@octokit/request": { - "version": "5.6.3", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha1-GaAiUVpbupZawGydEzRRTrUMSLA=", + "version": "8.4.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/request/-/request-8.4.1.tgz", + "integrity": "sha1-cVoBXM+ZMIeXfqQ2XER5H8RXJIY=", "license": "MIT", "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", + "@octokit/endpoint": "^9.0.6", + "@octokit/request-error": "^5.1.1", + "@octokit/types": "^13.1.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" } }, "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha1-nhUDV4Mb/HiNE6T9SxkT1gx01nc=", + "version": "5.1.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/request-error/-/request-error-5.1.1.tgz", + "integrity": "sha1-uSGPnBFm5ou00MibY47cYskzSAU=", "license": "MIT", "dependencies": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^13.1.0", "deprecation": "^2.0.0", "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" } }, "node_modules/@octokit/rest": { - "version": "19.0.13", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/rest/-/rest-19.0.13.tgz", - "integrity": "sha1-55k5MmTtxtPGfu2p5b14Mtz5dOQ=", + "version": "21.1.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/rest/-/rest-21.1.1.tgz", + "integrity": "sha1-enBFXKRRsdJT5bcG81F4zu+3TeI=", "license": "MIT", "dependencies": { - "@octokit/core": "^4.2.1", - "@octokit/plugin-paginate-rest": "^6.1.2", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^7.1.2" + "@octokit/core": "^6.1.4", + "@octokit/plugin-paginate-rest": "^11.4.2", + "@octokit/plugin-request-log": "^5.3.1", + "@octokit/plugin-rest-endpoint-methods": "^13.3.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@octokit/rest/node_modules/@octokit/auth-token": { - "version": "3.0.4", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/auth-token/-/auth-token-3.0.4.tgz", - "integrity": "sha1-cOlBunQr3StJvbc5PoId6oUgo9s=", + "version": "5.1.2", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/auth-token/-/auth-token-5.1.2.tgz", + "integrity": "sha1-aKSGcU16f9HfVsubyJqGCg3oZt4=", "license": "MIT", "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@octokit/rest/node_modules/@octokit/core": { - "version": "4.2.4", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/core/-/core-4.2.4.tgz", - "integrity": "sha1-2HaewrQ/83zD6onsRoGiC6WO+Qc=", + "version": "6.1.4", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/core/-/core-6.1.4.tgz", + "integrity": "sha1-9cz5EcyVsc6dr23kJdFmQ5L4Z9s=", "license": "MIT", "dependencies": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "@octokit/auth-token": "^5.0.0", + "@octokit/graphql": "^8.1.2", + "@octokit/request": "^9.2.1", + "@octokit/request-error": "^6.1.7", + "@octokit/types": "^13.6.2", + "before-after-hook": "^3.0.2", + "universal-user-agent": "^7.0.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@octokit/rest/node_modules/@octokit/endpoint": { - "version": "7.0.6", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/endpoint/-/endpoint-7.0.6.tgz", - "integrity": "sha1-eR9l05N1VRQftsCPkdYYp9ZF8eI=", + "version": "10.1.3", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/endpoint/-/endpoint-10.1.3.tgz", + "integrity": "sha1-v+j/LsIT60IWBl53ZUv7ug/G1N4=", "license": "MIT", "dependencies": { - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" + "@octokit/types": "^13.6.2", + "universal-user-agent": "^7.0.2" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@octokit/rest/node_modules/@octokit/graphql": { - "version": "5.0.6", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/graphql/-/graphql-5.0.6.tgz", - "integrity": "sha1-nqxBGsQ1PMxdP8p9dnNuaIjF0kg=", + "version": "8.2.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/graphql/-/graphql-8.2.1.tgz", + "integrity": "sha1-DLg2AOa0AJgFrMHFaujgfmyZG3g=", "license": "MIT", "dependencies": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^9.0.0", - "universal-user-agent": "^6.0.0" + "@octokit/request": "^9.2.2", + "@octokit/types": "^13.8.0", + "universal-user-agent": "^7.0.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, - "node_modules/@octokit/rest/node_modules/@octokit/openapi-types": { - "version": "18.1.1", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", - "integrity": "sha1-Cb39q/2OFtFjJDJtpRSAENdl8Ak=", - "license": "MIT" - }, "node_modules/@octokit/rest/node_modules/@octokit/plugin-paginate-rest": { - "version": "6.1.2", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", - "integrity": "sha1-+GRWp6H+nlj+xjhahc8bNAcjQfg=", + "version": "11.6.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.6.0.tgz", + "integrity": "sha1-5en/NTDoZ8ODf9v/lM4VokaKHzc=", "license": "MIT", "dependencies": { - "@octokit/tsconfig": "^1.0.2", - "@octokit/types": "^9.2.3" + "@octokit/types": "^13.10.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=4" + "@octokit/core": ">=6" } }, - "node_modules/@octokit/rest/node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "7.2.3", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz", - "integrity": "sha1-N6hLFxpstmWIFsgsQIKsNRICF5c=", + "node_modules/@octokit/rest/node_modules/@octokit/plugin-request-log": { + "version": "5.3.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/plugin-request-log/-/plugin-request-log-5.3.1.tgz", + "integrity": "sha1-zLddlwXedpsqqCvNEFzJbrDAD2k=", "license": "MIT", - "dependencies": { - "@octokit/types": "^10.0.0" - }, "engines": { - "node": ">= 14" + "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=3" + "@octokit/core": ">=6" } }, - "node_modules/@octokit/rest/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { - "version": "10.0.0", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/types/-/types-10.0.0.tgz", - "integrity": "sha1-fuGcRk6kraMGxD8aRdREAA9Bmko=", + "node_modules/@octokit/rest/node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "13.5.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.5.0.tgz", + "integrity": "sha1-2MjKISOzBVlslZqRNN+osElbC6Y=", "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^18.0.0" + "@octokit/types": "^13.10.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=6" } }, "node_modules/@octokit/rest/node_modules/@octokit/request": { - "version": "6.2.8", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/request/-/request-6.2.8.tgz", - "integrity": "sha1-qvSAsyqyshDp2t2CcdGHyTFx2Os=", + "version": "9.2.2", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/request/-/request-9.2.2.tgz", + "integrity": "sha1-dURS7EaS1/3DJDihTgKOug5rLAk=", "license": "MIT", "dependencies": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" + "@octokit/endpoint": "^10.1.3", + "@octokit/request-error": "^6.1.7", + "@octokit/types": "^13.6.2", + "fast-content-type-parse": "^2.0.0", + "universal-user-agent": "^7.0.2" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@octokit/rest/node_modules/@octokit/request-error": { - "version": "3.0.3", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/request-error/-/request-error-3.0.3.tgz", - "integrity": "sha1-7z3Qi46WTlPlXUcaz+ALqokrnGk=", + "version": "6.1.7", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/request-error/-/request-error-6.1.7.tgz", + "integrity": "sha1-RPxZj1zfRZPg5YtRVf4udyMP9to=", "license": "MIT", "dependencies": { - "@octokit/types": "^9.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "@octokit/types": "^13.6.2" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, - "node_modules/@octokit/rest/node_modules/@octokit/types": { - "version": "9.3.2", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha1-P1+JkDtp9qLRlteOw1+IjAATysU=", - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^18.0.0" - } + "node_modules/@octokit/rest/node_modules/before-after-hook": { + "version": "3.0.2", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/before-after-hook/-/before-after-hook-3.0.2.tgz", + "integrity": "sha1-1WZaX6i2IpSlqgpJn5M/ShAWGV0=", + "license": "Apache-2.0" }, - "node_modules/@octokit/tsconfig": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", - "integrity": "sha1-WbAk1vPA7YLwDQjq1bN1BGkSWvc=", - "license": "MIT" + "node_modules/@octokit/rest/node_modules/universal-user-agent": { + "version": "7.0.2", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/universal-user-agent/-/universal-user-agent-7.0.2.tgz", + "integrity": "sha1-UufQ6bPcTfBswzyyuf15BBpUgn4=", + "license": "ISC" }, "node_modules/@octokit/types": { - "version": "6.41.0", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/types/-/types-6.41.0.tgz", - "integrity": "sha1-5Y73jXhZbS+335xiWYAkZLX4SgQ=", + "version": "13.10.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^12.11.0" + "@octokit/openapi-types": "^24.2.0" } }, "node_modules/@opentelemetry/api": { @@ -3709,6 +3736,22 @@ "node": ">=0.8.x" } }, + "node_modules/fast-content-type-parse": { + "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz", + "integrity": "sha1-wjYSRTTuLLQnyNjlujWkhWlHhHs=", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4332,15 +4375,6 @@ "node": ">=8" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha1-RCf1CrNCnpAl6n1S6QQ6nvQVk0Q=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-stream": { "version": "1.1.0", "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/is-stream/-/is-stream-1.1.0.tgz", @@ -4742,48 +4776,6 @@ "node": ">= 10.13" } }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha1-0PD6bj4twdJ+/NitmdVQvalNGH0=", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "license": "MIT" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "license": "BSD-2-Clause" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/normalize-path/-/normalize-path-3.0.0.tgz", diff --git a/.github/actions/package.json b/.github/actions/package.json index ec52778d4..6ada8fda4 100644 --- a/.github/actions/package.json +++ b/.github/actions/package.json @@ -11,8 +11,8 @@ "author": "", "dependencies": { "@actions/core": "^1.9.1", - "@actions/github": "^5.0.3", - "@octokit/rest": "^19.0.3", + "@actions/github": "^6.0.0", + "@octokit/rest": "^21.1.1", "@slack/web-api": "^6.9.1", "applicationinsights": "^2.5.1", "axios": "^1.8.2", From e2f90ba353541a2a284ee78526f4bdff0a7afe05 Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Mon, 24 Mar 2025 15:13:23 -0700 Subject: [PATCH 06/11] Missing npmrc for other extensions (#13408) --- Extension/.npmrc | 3 +-- ExtensionPack/.npmrc | 1 + Themes/.npmrc | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 ExtensionPack/.npmrc create mode 100644 Themes/.npmrc diff --git a/Extension/.npmrc b/Extension/.npmrc index d8324806f..61e61167e 100644 --- a/Extension/.npmrc +++ b/Extension/.npmrc @@ -1,2 +1 @@ -registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/ -always-auth=true \ No newline at end of file +registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/ \ No newline at end of file diff --git a/ExtensionPack/.npmrc b/ExtensionPack/.npmrc new file mode 100644 index 000000000..61e61167e --- /dev/null +++ b/ExtensionPack/.npmrc @@ -0,0 +1 @@ +registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/ \ No newline at end of file diff --git a/Themes/.npmrc b/Themes/.npmrc new file mode 100644 index 000000000..d8324806f --- /dev/null +++ b/Themes/.npmrc @@ -0,0 +1,2 @@ +registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/ +always-auth=true \ No newline at end of file From 2100587df1e77e8941352ce3c61d6e13f8913dd5 Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Mon, 24 Mar 2025 15:49:26 -0700 Subject: [PATCH 07/11] replace CmdLine tasks with 'script' (#13410) --- Build/cg/cg.yml | 19 +++++-------------- Build/package/jobs_package_vsix.yml | 13 ++++--------- 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/Build/cg/cg.yml b/Build/cg/cg.yml index fae5d8d91..129262e85 100644 --- a/Build/cg/cg.yml +++ b/Build/cg/cg.yml @@ -84,35 +84,26 @@ extends: inputs: version: 18.x - - task: CmdLine@2 + - script: IF EXIST %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc del %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc displayName: Delete .npmrc if it exists - inputs: - script: IF EXIST %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc del %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc - task: Npm@0 - name: NpmInstall_2 displayName: Install vsce inputs: arguments: --global @vscode/vsce - - task: CmdLine@1 - name: ProcessRunner_11 + - script: mkdir $(Build.ArtifactStagingDirectory)\Extension displayName: Create Extension Staging Directory - inputs: - filename: mkdir - arguments: $(Build.ArtifactStagingDirectory)\Extension - script: yarn run vsix-prepublish displayName: Build files workingDirectory: $(Build.SourcesDirectory)\Extension - - task: CmdLine@1 + - script: | + cd $(Build.SourcesDirectory)\Extension + vsce package --yarn -o $(Build.ArtifactStagingDirectory)\Extension\cpptools.vsix name: ProcessRunner_12 displayName: Run VSCE to package vsix - inputs: - filename: vsce - arguments: package --yarn -o $(Build.ArtifactStagingDirectory)\Extension\cpptools.vsix - workingFolder: $(Build.SourcesDirectory)\Extension - task: Npm@0 displayName: Uninstall vsce diff --git a/Build/package/jobs_package_vsix.yml b/Build/package/jobs_package_vsix.yml index 60cf67580..ec9713ade 100644 --- a/Build/package/jobs_package_vsix.yml +++ b/Build/package/jobs_package_vsix.yml @@ -34,18 +34,13 @@ jobs: - task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3 displayName: Use Yarn 1.x - - task: CmdLine@1 + - script: mkdir $(Build.ArtifactStagingDirectory)\vsix displayName: Create Staging Directory - inputs: - filename: mkdir - arguments: $(Build.ArtifactStagingDirectory)\vsix - - task: CmdLine@1 + - script: | + cd $(Build.SourcesDirectory)\${{ parameters.srcDir }} + vsce package -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }} displayName: Run VSCE to package vsix - inputs: - filename: vsce - arguments: package -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }} - workingFolder: $(Build.SourcesDirectory)\${{ parameters.srcDir }} - task: Npm@0 displayName: Uninstall vsce From 625ee33af05d23922875959213af859f555ff3bf Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Mon, 24 Mar 2025 16:41:39 -0700 Subject: [PATCH 08/11] Stop skipping the top crash stack frames. (#13403) Co-authored-by: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> --- Extension/src/LanguageServer/extension.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index fe8bcc852..d1ff1e738 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -1213,14 +1213,11 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr data = telemetryHeader + signalType; let crashCallStack: string = ""; let validFrameFound: boolean = false; - for (let lineNum: number = crashStackStartLine; lineNum < lines.length - 3; ++lineNum) { // skip last lines + for (let lineNum: number = crashStackStartLine + 1; lineNum < lines.length - 3; ++lineNum) { // skip last lines const line: string = lines[lineNum]; const startPos: number = line.indexOf(startStr); let pendingCallStack: string = ""; if (startPos === -1 || line[startPos + (isMac ? 1 : 4)] === "+") { - if (!validFrameFound) { - continue; // Skip extra … at the start. - } pendingCallStack = dotStr; const startAddressPos: number = line.indexOf("0x"); const endAddressPos: number = line.indexOf(endOffsetStr, startAddressPos + 2); From 31ada4a29662d90c0f826d3bb0c2e9aa08e828ca Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 25 Mar 2025 11:24:57 -0700 Subject: [PATCH 09/11] Try adding always-auth=true. (#13413) --- Extension/.npmrc | 3 ++- ExtensionPack/.npmrc | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Extension/.npmrc b/Extension/.npmrc index 61e61167e..d8324806f 100644 --- a/Extension/.npmrc +++ b/Extension/.npmrc @@ -1 +1,2 @@ -registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/ \ No newline at end of file +registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/ +always-auth=true \ No newline at end of file diff --git a/ExtensionPack/.npmrc b/ExtensionPack/.npmrc index 61e61167e..d8324806f 100644 --- a/ExtensionPack/.npmrc +++ b/ExtensionPack/.npmrc @@ -1 +1,2 @@ -registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/ \ No newline at end of file +registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/ +always-auth=true \ No newline at end of file From 05fec365d294c4dafce76c403c8336e5541058a4 Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Tue, 25 Mar 2025 15:27:23 -0700 Subject: [PATCH 10/11] Remove usage of parse-git-config (#13416) --- Extension/package.json | 1 - Extension/translations_auto_pr.js | 19 +++++++++++-------- Extension/yarn.lock | 15 +-------------- 3 files changed, 12 insertions(+), 23 deletions(-) diff --git a/Extension/package.json b/Extension/package.json index 07c2455d3..30d87f813 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -6612,7 +6612,6 @@ "gulp-typescript": "^5.0.1", "minimist": "^1.2.8", "mocha": "^10.4.0", - "parse-git-config": "^3.0.0", "parse5": "^7.1.2", "parse5-traverse": "^1.0.3", "proxyquire": "^2.1.3", diff --git a/Extension/translations_auto_pr.js b/Extension/translations_auto_pr.js index c8577b8ca..05c9229bd 100644 --- a/Extension/translations_auto_pr.js +++ b/Extension/translations_auto_pr.js @@ -3,7 +3,6 @@ const fs = require("fs-extra"); const cp = require("child_process"); const path = require('path'); -const parseGitConfig = require('parse-git-config'); const branchName = 'localization'; const mergeTo = 'main'; @@ -105,8 +104,8 @@ cp.execSync('git fetch'); // Remove old localization branch, if any if (hasBranch("localization")) { - console.log(`Remove old localization branch, if any (git branch -D localization)`); - cp.execSync('git branch -D localization'); + console.log(`Remove old localization branch, if any (git branch -D localization)`); + cp.execSync('git branch -D localization'); } // Check out local branch @@ -128,13 +127,17 @@ if (!hasAnyChanges()) { // Save existing user name and email, in case already set. var existingUserName; var existingUserEmail; -var gitConfigPath = path.resolve(process.cwd(), '../.git/config'); -var config = parseGitConfig.sync({ path: gitConfigPath }); -if (typeof config === 'object' && config.hasOwnProperty('user')) { - existingUserName = config.user.name; - existingUserEmail = config.user.email; +try { + existingUserName = cp.execSync('git config --local user.name', { encoding: 'utf8', cwd: process.cwd() }).trim() || undefined +} catch { +} + +try { + existingUserEmail = cp.execSync('git config --local user.email', { encoding: 'utf8', cwd: process.cwd() }).trim() || undefined +} catch { } + if (existingUserName === undefined) { console.log(`Existing user name: undefined`); } else { diff --git a/Extension/yarn.lock b/Extension/yarn.lock index c9952dfce..c35c50027 100644 --- a/Extension/yarn.lock +++ b/Extension/yarn.lock @@ -2430,11 +2430,6 @@ get-symbol-description@^1.1.0: es-errors "^1.3.0" get-intrinsic "^1.2.6" -git-config-path@^2.0.0: - version "2.0.0" - resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/git-config-path/-/git-config-path-2.0.0.tgz#62633d61af63af4405a5024efd325762f58a181b" - integrity sha1-YmM9Ya9jr0QFpQJO/TJXYvWKGBs= - glob-parent@^3.1.0, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -2798,7 +2793,7 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= -ini@^1.3.4, ini@^1.3.5: +ini@^1.3.4: version "1.3.8" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw= @@ -3773,14 +3768,6 @@ parse-filepath@^1.0.2: map-cache "^0.2.0" path-root "^0.1.1" -parse-git-config@^3.0.0: - version "3.0.0" - resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/parse-git-config/-/parse-git-config-3.0.0.tgz#4a2de08c7b74a2555efa5ae94d40cd44302a6132" - integrity sha1-Si3gjHt0olVe+lrpTUDNRDAqYTI= - dependencies: - git-config-path "^2.0.0" - ini "^1.3.5" - parse-imports@^2.1.1: version "2.2.1" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/parse-imports/-/parse-imports-2.2.1.tgz#0a6e8b5316beb5c9905f50eb2bbb8c64a4805642" From acc2a84940a02641b1e001b51916d9c0d6c25abb Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 25 Mar 2025 16:55:46 -0700 Subject: [PATCH 11/11] Update version and changelog for 1.24.4. (#13418) --- Extension/CHANGELOG.md | 14 ++++++++++++++ Extension/package.json | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index b80daadf0..2c9ddc6db 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,5 +1,19 @@ # C/C++ for Visual Studio Code Changelog +## Version 1.24.4: March 25, 2025 +### Enhancements +* Add a new `recursiveIncludes` property to `c_cpp_properties.json`. [PR #13374](https://github.com/microsoft/vscode-cpptools/pull/13374) +* Turn Copilot hover on by default. [PR #13385](https://github.com/microsoft/vscode-cpptools/pull/13385) +* On shutdown, immediately terminate the IntelliSense process instead of waiting 2 seconds. + +### Bug Fixes +* Fix one potential cause of the `get_mangled_function_name` IntelliSense process crash. [#13358](https://github.com/Microsoft/vscode-cpptools/issues/13358) +* Fix Copilot-related logging appearing when it shouldn't. [PR #13388](https://github.com/microsoft/vscode-cpptools/pull/13388) +* Fix relative compiler paths being expanded in `compile_commands.json`. [#13405](https://github.com/microsoft/vscode-cpptools/issues/13405) +* Fix all caps clang-format logging on Windows. [#13406](https://github.com/microsoft/vscode-cpptools/issues/13406) +* Fix an IntelliSense process crash in `handle_function`. +* Avoid reporting an error due to multiple `didOpen` requests after a crash. + ## Version 1.24.3: March 18, 2025 ### Enhancements * Add detected test frameworks to the Copilot context when `#cpp` is used. [PR #13285](https://github.com/microsoft/vscode-cpptools/pull/13285) diff --git a/Extension/package.json b/Extension/package.json index 30d87f813..c8f354ce5 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -2,7 +2,7 @@ "name": "cpptools", "displayName": "C/C++", "description": "C/C++ IntelliSense, debugging, and code browsing.", - "version": "1.24.3-main", + "version": "1.24.4-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md",