Compare commits

..
Author SHA1 Message Date
Andoni Morales Alastruey 62614d8fa8 Bump lldb-mi commit hash
Fix #6874
2023-11-06 10:04:33 -08:00
694 changed files with 21119 additions and 39583 deletions
-3
View File
@@ -1,3 +0,0 @@
registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/
# Disable postinstall scripts for supply chain security. Allowlist exceptions with npm trust: https://docs.npmjs.com/cli/v11/commands/npm-trust
ignore-scripts=true
-86
View File
@@ -1,86 +0,0 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.AddComment = void 0;
const ActionBase_1 = require("../common/ActionBase");
const utils_1 = require("../common/utils");
class AddComment extends ActionBase_1.ActionBase {
constructor(github, createdAfter, afterDays, labels, addComment, addLabels, removeLabels, setMilestoneId, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves) {
super(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves);
this.github = github;
this.createdAfter = createdAfter;
this.afterDays = afterDays;
this.addComment = addComment;
this.addLabels = addLabels;
this.removeLabels = removeLabels;
this.setMilestoneId = setMilestoneId;
}
async run() {
const updatedTimestamp = this.afterDays ? (0, utils_1.daysAgoToHumanReadbleDate)(this.afterDays) : undefined;
const query = this.buildQuery((updatedTimestamp ? `updated:<${updatedTimestamp} ` : "") +
(this.createdAfter ? `created:>${this.createdAfter} ` : "") +
"is:open is:unlocked");
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
for await (const page of this.github.query({ q: query })) {
for (const issue of page) {
const hydrated = await issue.getIssue();
if (hydrated.open && this.validateIssue(hydrated)
// TODO: Verify updated timestamp
) {
// Don't add a comment if already commented on by an action.
let foundActionComment = false;
for await (const commentBatch of issue.getComments()) {
for (const comment of commentBatch) {
if (comment.author.isGitHubApp) {
foundActionComment = true;
break;
}
}
if (foundActionComment)
break;
}
if (foundActionComment) {
(0, utils_1.safeLog)(`Issue ${hydrated.number} already commented on by an action. Ignoring.`);
continue;
}
if (this.addComment) {
(0, utils_1.safeLog)(`Posting comment on issue ${hydrated.number}`);
await issue.postComment(this.addComment);
}
if (removeLabelsSet.length > 0) {
for (const removeLabel of removeLabelsSet) {
if (removeLabel && removeLabel.length > 0) {
(0, utils_1.safeLog)(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
await issue.removeLabel(removeLabel);
}
}
}
if (addLabelsSet.length > 0) {
for (const addLabel of addLabelsSet) {
if (addLabel && addLabel.length > 0) {
(0, utils_1.safeLog)(`Adding label on issue ${hydrated.number}: ${addLabel}`);
await issue.addLabel(addLabel);
}
}
}
if (this.setMilestoneId != undefined) {
(0, utils_1.safeLog)(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
await issue.setMilestone(+this.setMilestoneId);
}
(0, utils_1.safeLog)(`Processing issue ${hydrated.number}.`);
}
else {
if (!hydrated.open) {
(0, utils_1.safeLog)(`Issue ${hydrated.number} is not open. Ignoring`);
}
}
}
}
}
}
exports.AddComment = AddComment;
//# sourceMappingURL=AddComment.js.map
-98
View File
@@ -1,98 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { GitHub } from '../api/api';
import { ActionBase } from '../common/ActionBase';
import { daysAgoToHumanReadbleDate, daysAgoToTimestamp, safeLog } from '../common/utils';
export class AddComment extends ActionBase {
constructor(
private github: GitHub,
private createdAfter: string | undefined,
private afterDays: number,
labels: string,
private addComment: string,
private addLabels?: string,
private removeLabels?: string,
private setMilestoneId?: string,
milestoneName?: string,
milestoneId?: string,
ignoreLabels?: string,
ignoreMilestoneNames?: string,
ignoreMilestoneIds?: string,
minimumVotes?: number,
maximumVotes?: number,
involves?: string
) {
super(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves);
}
async run() {
const updatedTimestamp = this.afterDays ? daysAgoToHumanReadbleDate(this.afterDays) : undefined;
const query = this.buildQuery(
(updatedTimestamp ? `updated:<${updatedTimestamp} ` : "") +
(this.createdAfter ? `created:>${this.createdAfter} ` : "") +
"is:open is:unlocked");
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
for await (const page of this.github.query({ q: query })) {
for (const issue of page) {
const hydrated = await issue.getIssue();
if (hydrated.open && this.validateIssue(hydrated)
// TODO: Verify updated timestamp
) {
// Don't add a comment if already commented on by an action.
let foundActionComment = false;
for await (const commentBatch of issue.getComments()) {
for (const comment of commentBatch) {
if (comment.author.isGitHubApp) {
foundActionComment = true;
break;
}
}
if (foundActionComment)
break;
}
if (foundActionComment) {
safeLog(`Issue ${hydrated.number} already commented on by an action. Ignoring.`);
continue;
}
if (this.addComment) {
safeLog(`Posting comment on issue ${hydrated.number}`);
await issue.postComment(this.addComment);
}
if (removeLabelsSet.length > 0) {
for (const removeLabel of removeLabelsSet) {
if (removeLabel && removeLabel.length > 0) {
safeLog(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
await issue.removeLabel(removeLabel);
}
}
}
if (addLabelsSet.length > 0) {
for (const addLabel of addLabelsSet) {
if (addLabel && addLabel.length > 0) {
safeLog(`Adding label on issue ${hydrated.number}: ${addLabel}`);
await issue.addLabel(addLabel);
}
}
}
if (this.setMilestoneId != undefined) {
safeLog(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
await issue.setMilestone(+this.setMilestoneId);
}
safeLog(`Processing issue ${hydrated.number}.`);
} else {
if (!hydrated.open) {
safeLog(`Issue ${hydrated.number} is not open. Ignoring`);
}
}
}
}
}
}
-42
View File
@@ -1,42 +0,0 @@
name: Add Comment and Label
description: Add comment (etc) to issues that are marked with a specified label (etc)
inputs:
token:
description: GitHub token with issue, comment, and label read/write permissions
default: ${{ github.token }}
createdAfter:
description: Creation date after which to be considered.
required: false
afterDays:
description: Days to wait before performing this action (may be 0).
required: false
addComment:
description: Comment to add
labels:
description: items with these labels will be considered. May be "*".
required: true
milestoneName:
description: items with these milestones will be considered (name only, must match ID)
milestoneId:
description: items with these milestones will be considered (id only, must match name)
ignoreLabels:
description: items with these labels will not be considered
ignoreMilestoneNames:
description: items with these milestones will not be considered (names only, must match IDs). May be "*".
ignoreMilestoneIds:
description: items with these milestones will not be considered (IDs only, must match names)
addLabels:
description: Labels to add to issue.
removeLabels:
description: Labels to remove from issue.
minimumVotes:
descriptions: Only issues with at least this many votes will be considered.
maximumVotes:
descriptions: Only issues fewer or equal to this many votes will be considered.
involves:
descriptions: Qualifier to find issues that in some way involve a certain user either as an author, assignee, or mentions.
readonly:
description: If true, changes are not applied.
runs:
using: 'node24'
main: 'index.js'
-20
View File
@@ -1,20 +0,0 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../common/utils");
const AddComment_1 = require("./AddComment");
const Action_1 = require("../common/Action");
class AddCommentAction extends Action_1.Action {
constructor() {
super(...arguments);
this.id = 'AddComment';
}
async onTriggered(github) {
await new AddComment_1.AddComment(github, (0, utils_1.getInput)('createdAfter') || undefined, +((0, utils_1.getInput)('afterDays') || 0), (0, utils_1.getRequiredInput)('labels'), (0, utils_1.getInput)('addComment') || '', (0, utils_1.getInput)('addLabels') || undefined, (0, utils_1.getInput)('removeLabels') || undefined, (0, utils_1.getInput)('setMilestoneId') || undefined, (0, utils_1.getInput)('milestoneName') || undefined, (0, utils_1.getInput)('milestoneId') || undefined, (0, utils_1.getInput)('ignoreLabels') || undefined, (0, utils_1.getInput)('ignoreMilestoneNames') || undefined, (0, utils_1.getInput)('ignoreMilestoneIds') || undefined, +((0, utils_1.getInput)('minimumVotes') || 0), +((0, utils_1.getInput)('maximumVotes') || 9999999), (0, utils_1.getInput)('involves') || undefined).run();
}
}
new AddCommentAction().run(); // eslint-disable-line
//# sourceMappingURL=index.js.map
-36
View File
@@ -1,36 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { OctoKit } from '../api/octokit'
import { getInput, getRequiredInput } from '../common/utils'
import { AddComment } from './AddComment'
import { Action } from '../common/Action'
class AddCommentAction extends Action {
id = 'AddComment';
async onTriggered(github: OctoKit) {
await new AddComment(
github,
getInput('createdAfter') || undefined,
+(getInput('afterDays') || 0),
getRequiredInput('labels'),
getInput('addComment') || '',
getInput('addLabels') || undefined,
getInput('removeLabels') || undefined,
getInput('setMilestoneId') || undefined,
getInput('milestoneName') || undefined,
getInput('milestoneId') || undefined,
getInput('ignoreLabels') || undefined,
getInput('ignoreMilestoneNames') || undefined,
getInput('ignoreMilestoneIds') || undefined,
+(getInput('minimumVotes') || 0),
+(getInput('maximumVotes') || 9999999),
getInput('involves') || undefined
).run();
}
}
new AddCommentAction().run(); // eslint-disable-line
+2 -2
View File
@@ -15,7 +15,7 @@ inputs:
milestoneId:
description: items with these milestones will be considered (id only, must match name)
labels:
description: items with these labels will be considered. May be "*".
description: items with these labels will not be considered. May be "*".
ignoreMilestoneNames:
description: items with these milestones will not be considered (names only, must match IDs). May be "*".
ignoreMilestoneIds:
@@ -29,5 +29,5 @@ inputs:
readonly:
description: If true, changes are not applied.
runs:
using: 'node24'
using: 'node12'
main: 'index.js'
+2 -2
View File
@@ -19,7 +19,7 @@ inputs:
milestoneId:
description: items with these milestones will be considered (id only, must match name)
labels:
description: items with these labels will be considered. May be "*".
description: items with these labels will not be considered. May be "*".
ignoreMilestoneNames:
description: items with these milestones will not be considered (names only, must match IDs). May be "*".
ignoreMilestoneIds:
@@ -33,5 +33,5 @@ inputs:
readonly:
description: If true, changes are not applied.
runs:
using: 'node24'
using: 'node12'
main: 'index.js'
+105 -105
View File
@@ -1,106 +1,106 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.StaleCloser = void 0;
const ActionBase_1 = require("../common/ActionBase");
const utils_1 = require("../common/utils");
class StaleCloser extends ActionBase_1.ActionBase {
constructor(github, closeDays, labels, closeComment, pingDays, pingComment, additionalTeam, addLabels, removeLabels, setMilestoneId, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves) {
super(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves);
this.github = github;
this.closeDays = closeDays;
this.closeComment = closeComment;
this.pingDays = pingDays;
this.pingComment = pingComment;
this.additionalTeam = additionalTeam;
this.addLabels = addLabels;
this.removeLabels = removeLabels;
this.setMilestoneId = setMilestoneId;
}
async run() {
const updatedTimestamp = this.closeDays ? (0, utils_1.daysAgoToHumanReadbleDate)(this.closeDays) : undefined;
const pingTimestamp = this.pingDays ? (0, utils_1.daysAgoToTimestamp)(this.pingDays) : undefined;
const query = this.buildQuery((updatedTimestamp ? `updated:<${updatedTimestamp} ` : "") + "is:open is:unlocked");
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
for await (const page of this.github.query({ q: query })) {
for (const issue of page) {
const hydrated = await issue.getIssue();
const lastCommentIterator = await issue.getComments(true).next();
if (lastCommentIterator.done) {
throw Error('Unexpected comment data');
}
const lastComment = lastCommentIterator.value[0];
if (hydrated.open && this.validateIssue(hydrated)
// TODO: Verify updated timestamp
) {
if (!lastComment ||
lastComment.author.isGitHubApp ||
pingTimestamp == undefined ||
// TODO: List the collaborators once per go rather than checking a single user each issue
this.additionalTeam.includes(lastComment.author.name) ||
await issue.hasWriteAccess(lastComment.author)) {
if (pingTimestamp != undefined) {
if (lastComment) {
(0, utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Closing.`);
}
else {
(0, utils_1.safeLog)(`No comments on issue ${hydrated.number}. Closing.`);
}
}
if (this.closeComment) {
(0, utils_1.safeLog)(`Posting comment on issue ${hydrated.number}`);
await issue.postComment(this.closeComment);
}
if (removeLabelsSet.length > 0) {
for (const removeLabel of removeLabelsSet) {
if (removeLabel && removeLabel.length > 0) {
(0, utils_1.safeLog)(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
await issue.removeLabel(removeLabel);
}
}
}
if (addLabelsSet.length > 0) {
for (const addLabel of addLabelsSet) {
if (addLabel && addLabel.length > 0) {
(0, utils_1.safeLog)(`Adding label on issue ${hydrated.number}: ${addLabel}`);
await issue.addLabel(addLabel);
}
}
}
await issue.closeIssue("not_planned");
if (this.setMilestoneId != undefined) {
(0, utils_1.safeLog)(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
await issue.setMilestone(+this.setMilestoneId);
}
(0, utils_1.safeLog)(`Closing issue ${hydrated.number}.`);
}
else {
// Ping
if (hydrated.updatedAt < pingTimestamp && hydrated.assignee) {
(0, utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Pinging @${hydrated.assignee}`);
if (this.pingComment) {
await issue.postComment(this.pingComment
.replace('${assignee}', hydrated.assignee)
.replace('${author}', hydrated.author.name));
}
}
else {
(0, utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Skipping.${hydrated.assignee ? ' cc @' + hydrated.assignee : ''}`);
}
}
}
else {
if (!hydrated.open) {
(0, utils_1.safeLog)(`Issue ${hydrated.number} is not open. Ignoring`);
}
}
}
}
}
}
exports.StaleCloser = StaleCloser;
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.StaleCloser = void 0;
const ActionBase_1 = require("../common/ActionBase");
const utils_1 = require("../common/utils");
class StaleCloser extends ActionBase_1.ActionBase {
constructor(github, closeDays, labels, closeComment, pingDays, pingComment, additionalTeam, addLabels, removeLabels, setMilestoneId, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves) {
super(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves);
this.github = github;
this.closeDays = closeDays;
this.closeComment = closeComment;
this.pingDays = pingDays;
this.pingComment = pingComment;
this.additionalTeam = additionalTeam;
this.addLabels = addLabels;
this.removeLabels = removeLabels;
this.setMilestoneId = setMilestoneId;
}
async run() {
const updatedTimestamp = (0, utils_1.daysAgoToHumanReadbleDate)(this.closeDays);
const pingTimestamp = this.pingDays ? (0, utils_1.daysAgoToTimestamp)(this.pingDays) : undefined;
const query = this.buildQuery((this.closeDays ? `updated:<${updatedTimestamp} ` : "") + "is:open is:unlocked");
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
for await (const page of this.github.query({ q: query })) {
for (const issue of page) {
const hydrated = await issue.getIssue();
const lastCommentIterator = await issue.getComments(true).next();
if (lastCommentIterator.done) {
throw Error('Unexpected comment data');
}
const lastComment = lastCommentIterator.value[0];
if (hydrated.open && this.validateIssue(hydrated)
// TODO: Verify updated timestamp
) {
if (!lastComment ||
lastComment.author.isGitHubApp ||
pingTimestamp == undefined ||
// TODO: List the collaborators once per go rather than checking a single user each issue
this.additionalTeam.includes(lastComment.author.name) ||
await issue.hasWriteAccess(lastComment.author)) {
if (pingTimestamp != undefined) {
if (lastComment) {
(0, utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Closing.`);
}
else {
(0, utils_1.safeLog)(`No comments on issue ${hydrated.number}. Closing.`);
}
}
if (this.closeComment) {
(0, utils_1.safeLog)(`Posting comment on issue ${hydrated.number}`);
await issue.postComment(this.closeComment);
}
if (removeLabelsSet.length > 0) {
for (const removeLabel of removeLabelsSet) {
if (removeLabel && removeLabel.length > 0) {
(0, utils_1.safeLog)(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
await issue.removeLabel(removeLabel);
}
}
}
if (addLabelsSet.length > 0) {
for (const addLabel of addLabelsSet) {
if (addLabel && addLabel.length > 0) {
(0, utils_1.safeLog)(`Adding label on issue ${hydrated.number}: ${addLabel}`);
await issue.addLabel(addLabel);
}
}
}
await issue.closeIssue("not_planned");
if (this.setMilestoneId != undefined) {
(0, utils_1.safeLog)(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
await issue.setMilestone(+this.setMilestoneId);
}
(0, utils_1.safeLog)(`Closing issue ${hydrated.number}.`);
}
else {
// Ping
if (hydrated.updatedAt < pingTimestamp && hydrated.assignee) {
(0, utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Pinging @${hydrated.assignee}`);
if (this.pingComment) {
await issue.postComment(this.pingComment
.replace('${assignee}', hydrated.assignee)
.replace('${author}', hydrated.author.name));
}
}
else {
(0, utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Skipping.${hydrated.assignee ? ' cc @' + hydrated.assignee : ''}`);
}
}
}
else {
if (!hydrated.open) {
(0, utils_1.safeLog)(`Issue ${hydrated.number} is not open. Ignoring`);
}
}
}
}
}
}
exports.StaleCloser = StaleCloser;
//# sourceMappingURL=StaleCloser.js.map
+2 -2
View File
@@ -33,10 +33,10 @@ export class StaleCloser extends ActionBase {
}
async run() {
const updatedTimestamp = this.closeDays ? daysAgoToHumanReadbleDate(this.closeDays) : undefined;
const updatedTimestamp = daysAgoToHumanReadbleDate(this.closeDays);
const pingTimestamp = this.pingDays ? daysAgoToTimestamp(this.pingDays) : undefined;
const query = this.buildQuery((updatedTimestamp ? `updated:<${updatedTimestamp} ` : "") + "is:open is:unlocked");
const query = this.buildQuery((this.closeDays ? `updated:<${updatedTimestamp} ` : "") + "is:open is:unlocked");
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
+2 -2
View File
@@ -20,7 +20,7 @@ inputs:
milestoneId:
description: items with these milestones will be considered (id only, must match name)
labels:
description: items with these labels will be considered. May be "*".
description: items with these labels will not be considered. May be "*".
required: true
ignoreMilestoneNames:
description: items with these milestones will not be considered (names only, must match IDs). May be "*".
@@ -43,5 +43,5 @@ inputs:
readonly:
description: If true, changes are not applied.
runs:
using: 'node24'
using: 'node12'
main: 'index.js'
+20 -20
View File
@@ -1,21 +1,21 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../common/utils");
const StaleCloser_1 = require("./StaleCloser");
const Action_1 = require("../common/Action");
class StaleCloserAction extends Action_1.Action {
constructor() {
super(...arguments);
this.id = 'StaleCloser';
}
async onTriggered(github) {
var _a;
await new StaleCloser_1.StaleCloser(github, +(0, utils_1.getRequiredInput)('closeDays'), (0, utils_1.getRequiredInput)('labels'), (0, utils_1.getInput)('closeComment') || '', +((0, utils_1.getInput)('pingDays') || 0), (0, utils_1.getInput)('pingComment') || '', ((_a = (0, utils_1.getInput)('additionalTeam')) !== null && _a !== void 0 ? _a : '').split(','), (0, utils_1.getInput)('addLabels') || undefined, (0, utils_1.getInput)('removeLabels') || undefined, (0, utils_1.getInput)('setMilestoneId') || undefined, (0, utils_1.getInput)('milestoneName') || undefined, (0, utils_1.getInput)('milestoneId') || undefined, (0, utils_1.getInput)('ignoreLabels') || undefined, (0, utils_1.getInput)('ignoreMilestoneNames') || undefined, (0, utils_1.getInput)('ignoreMilestoneIds') || undefined, +((0, utils_1.getInput)('minimumVotes') || 0), +((0, utils_1.getInput)('maximumVotes') || 9999999), (0, utils_1.getInput)('involves') || undefined).run();
}
}
new StaleCloserAction().run(); // eslint-disable-line
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../common/utils");
const StaleCloser_1 = require("./StaleCloser");
const Action_1 = require("../common/Action");
class StaleCloserAction extends Action_1.Action {
constructor() {
super(...arguments);
this.id = 'StaleCloser';
}
async onTriggered(github) {
var _a;
await new StaleCloser_1.StaleCloser(github, +(0, utils_1.getRequiredInput)('closeDays'), (0, utils_1.getRequiredInput)('labels'), (0, utils_1.getInput)('closeComment') || '', +((0, utils_1.getInput)('pingDays') || 0), (0, utils_1.getInput)('pingComment') || '', ((_a = (0, utils_1.getInput)('additionalTeam')) !== null && _a !== void 0 ? _a : '').split(','), (0, utils_1.getInput)('addLabels') || undefined, (0, utils_1.getInput)('removeLabels') || undefined, (0, utils_1.getInput)('setMilestoneId') || undefined, (0, utils_1.getInput)('milestoneName') || undefined, (0, utils_1.getInput)('milestoneId') || undefined, (0, utils_1.getInput)('ignoreLabels') || undefined, (0, utils_1.getInput)('ignoreMilestoneNames') || undefined, (0, utils_1.getInput)('ignoreMilestoneIds') || undefined, +((0, utils_1.getInput)('minimumVotes') || 0), +((0, utils_1.getInput)('maximumVotes') || 9999999), (0, utils_1.getInput)('involves') || undefined).run();
}
}
new StaleCloserAction().run(); // eslint-disable-line
//# sourceMappingURL=index.js.map
+4 -4
View File
@@ -12,10 +12,6 @@ let numRequests = 0;
const getNumRequests = () => numRequests;
exports.getNumRequests = getNumRequests;
class OctoKit {
get octokit() {
numRequests++;
return this._octokit;
}
constructor(token, params, options = { readonly: false }) {
this.token = token;
this.params = params;
@@ -27,6 +23,10 @@ class OctoKit {
this.repoName = params.repo;
this.repoOwner = params.owner;
}
get octokit() {
numRequests++;
return this._octokit;
}
getIssueByNumber(number) {
return new OctoKitIssue(this.token, this.params, { number: number });
}
+182 -182
View File
@@ -1,183 +1,183 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActionBase = void 0;
const utils_1 = require("./utils");
class ActionBase {
constructor(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves) {
this.labels = labels;
this.milestoneName = milestoneName;
this.milestoneId = milestoneId;
this.ignoreLabels = ignoreLabels;
this.ignoreMilestoneNames = ignoreMilestoneNames;
this.ignoreMilestoneIds = ignoreMilestoneIds;
this.minimumVotes = minimumVotes;
this.maximumVotes = maximumVotes;
this.involves = involves;
this.labelsSet = [];
this.ignoreLabelsSet = [];
this.ignoreMilestoneNamesSet = [];
this.ignoreMilestoneIdsSet = [];
this.ignoreAllWithLabels = false;
this.ignoreAllWithMilestones = false;
this.involvesSet = [];
}
buildQuery(baseQuery) {
var _a, _b, _c, _d, _e, _f;
let query = baseQuery;
(0, utils_1.safeLog)(`labels: ${this.labels}`);
(0, utils_1.safeLog)(`milestoneName: ${this.milestoneName}`);
(0, utils_1.safeLog)(`milestoneId: ${this.milestoneId}`);
(0, utils_1.safeLog)(`ignoreLabels: ${this.ignoreLabels}`);
(0, utils_1.safeLog)(`ignoreMilestoneNames: ${this.ignoreMilestoneNames}`);
(0, utils_1.safeLog)(`ignoreMilestoneIds: ${this.ignoreMilestoneIds}`);
(0, utils_1.safeLog)(`minimumVotes: ${this.minimumVotes}`);
(0, utils_1.safeLog)(`maximumVotes: ${this.maximumVotes}`);
(0, utils_1.safeLog)(`involves: ${this.involves}`);
// Both milestone name and milestone Id must be provided and must match.
// The name is used to construct the query, which does not accept ID.
// The ID is used for comparisons with issue data, which does not include the name.
// TODO: Figure out a way to convert either from milestone name to ID, or vice versa.
// If label inclusion and exclusion are mixed, exclusion will take precedence.
// For example, an issue with both labels A and B will not match if B is excluded, even if A is included.
// If a milestoneName/milestoneId are set, ignoreMilenameName/ignoreMilestoneIds are ignored.
// GitHub does not appear to support searching for all issues with milestones (not lacking a milestone). "-no:milestone" does not work.
// GitHub does not appear to support searching for all issues with labels (not lacking a label). "-no:label" does not work.
// All indicated labels must be present
if (this.labels) {
if (((_a = this.labels) === null || _a === void 0 ? void 0 : _a.length) > 2 && ((_b = this.labels) === null || _b === void 0 ? void 0 : _b.startsWith('"')) && ((_c = this.labels) === null || _c === void 0 ? void 0 : _c.endsWith('"'))) {
this.labels = this.labels.substring(1, this.labels.length - 2);
}
this.labelsSet = (_d = this.labels) === null || _d === void 0 ? void 0 : _d.split(',');
for (const str of this.labelsSet) {
if (str != "") {
query = query.concat(` label:"${str}"`);
}
}
}
// The "involves" qualifier to find issues that in some way involve a certain user.
// It is a logical OR between the author, assignee, and mentions.
if (this.involves) {
this.involvesSet = (_e = this.involves) === null || _e === void 0 ? void 0 : _e.split(',');
for (const str of this.involvesSet) {
if (str != "") {
query = query.concat(` involves:"${str}"`);
}
}
}
if (this.ignoreLabels) {
if (this.ignoreLabels == "*" && !this.labels) { // only if unlabeled
query = query.concat(` no:label`);
this.ignoreAllWithLabels = true;
}
else {
this.ignoreLabelsSet = (_f = this.ignoreLabels) === null || _f === void 0 ? void 0 : _f.split(',');
for (const str of this.ignoreLabelsSet) {
if (str != "") {
query = query.concat(` -label:"${str}"`);
}
}
}
}
if (this.milestoneName) {
query = query.concat(` milestone:"${this.milestoneName}"`);
}
else if (this.ignoreMilestoneNames) {
if (this.ignoreMilestoneNames == "*") {
query = query.concat(` no:milestone`);
this.ignoreAllWithMilestones = true;
}
else if (this.ignoreMilestoneIds) {
this.ignoreMilestoneNamesSet = this.ignoreMilestoneNames.split(',');
this.ignoreMilestoneIdsSet = this.ignoreMilestoneIds.split(',');
for (const str of this.ignoreMilestoneNamesSet) {
if (str != "") {
query = query.concat(` -milestone:"${str}"`);
}
}
}
}
return query;
}
// This is necessary because GitHub sometimes returns incorrect results,
// and because issues may get modified while we are processing them.
validateIssue(issue) {
var _a, _b;
if (this.ignoreAllWithLabels) {
// Validate that the issue does not have labels
if (issue.labels && issue.labels.length !== 0) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to label found after querying for no:label.`);
return false;
}
}
else {
// Make sure all labels we wanted are present.
if ((!issue.labels || issue.labels.length == 0) && this.labelsSet.length > 0) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having a required label set. No labels found.`);
return false;
}
for (const str of this.labelsSet) {
if (!issue.labels.includes(str)) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having a required label set.`);
return false;
}
}
// Make sure no labels we wanted to ignore are present.
if (issue.labels && issue.labels.length > 0) {
for (const str of this.ignoreLabelsSet) {
if (issue.labels.includes(str)) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to having an ignore label set: ${str}`);
return false;
}
}
}
}
if (this.ignoreAllWithMilestones) {
// Validate that the issue does not have a milestone.
if (issue.milestone) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to milestone found after querying for no:milestone.`);
return false;
}
}
else {
// Make sure milestone is present, if required.
if (this.milestoneId != null && ((_a = issue.milestone) === null || _a === void 0 ? void 0 : _a.milestoneId) != +this.milestoneId) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having required milsetone id ${this.milestoneId}. Had: ${(_b = issue.milestone) === null || _b === void 0 ? void 0 : _b.milestoneId}`);
return false;
}
// Make sure a milestones we wanted to ignore is not present.
if (issue.milestone && issue.milestone.milestoneId != null) {
for (const str of this.ignoreMilestoneIdsSet) {
if (issue.milestone.milestoneId == +str) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to milestone ${issue.milestone.milestoneId} found in list of ignored milestone IDs.`);
return false;
}
}
}
}
// Verify the issue has a sufficient number of upvotes
let upvotes = 0;
if (issue.reactions) {
upvotes = issue.reactions['+1'];
}
if (this.minimumVotes != undefined) {
if (upvotes < this.minimumVotes) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having at least ${this.minimumVotes} upvotes. Had: ${upvotes}`);
return false;
}
}
// Verify the issue does not have too many upvotes
if (this.maximumVotes != undefined) {
if (upvotes > this.maximumVotes) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to having more than ${this.maximumVotes} upvotes. Had: ${upvotes}`);
return false;
}
}
return true;
}
}
exports.ActionBase = ActionBase;
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActionBase = void 0;
const utils_1 = require("./utils");
class ActionBase {
constructor(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves) {
this.labels = labels;
this.milestoneName = milestoneName;
this.milestoneId = milestoneId;
this.ignoreLabels = ignoreLabels;
this.ignoreMilestoneNames = ignoreMilestoneNames;
this.ignoreMilestoneIds = ignoreMilestoneIds;
this.minimumVotes = minimumVotes;
this.maximumVotes = maximumVotes;
this.involves = involves;
this.labelsSet = [];
this.ignoreLabelsSet = [];
this.ignoreMilestoneNamesSet = [];
this.ignoreMilestoneIdsSet = [];
this.ignoreAllWithLabels = false;
this.ignoreAllWithMilestones = false;
this.involvesSet = [];
}
buildQuery(baseQuery) {
var _a, _b, _c, _d, _e, _f;
let query = baseQuery;
(0, utils_1.safeLog)(`labels: ${this.labels}`);
(0, utils_1.safeLog)(`milestoneName: ${this.milestoneName}`);
(0, utils_1.safeLog)(`milestoneId: ${this.milestoneId}`);
(0, utils_1.safeLog)(`ignoreLabels: ${this.ignoreLabels}`);
(0, utils_1.safeLog)(`ignoreMilestoneNames: ${this.ignoreMilestoneNames}`);
(0, utils_1.safeLog)(`ignoreMilestoneIds: ${this.ignoreMilestoneIds}`);
(0, utils_1.safeLog)(`minimumVotes: ${this.minimumVotes}`);
(0, utils_1.safeLog)(`maximumVotes: ${this.maximumVotes}`);
(0, utils_1.safeLog)(`involves: ${this.involves}`);
// Both milestone name and milestone Id must be provided and must match.
// The name is used to construct the query, which does not accept ID.
// The ID is used for comparisons with issue data, which does not include the name.
// TODO: Figure out a way to convert either from milestone name to ID, or vice versa.
// If label inclusion and exclusion are mixed, exclusion will take precedence.
// For example, an issue with both labels A and B will not match if B is excluded, even if A is included.
// If a milestoneName/milestoneId are set, ignoreMilenameName/ignoreMilestoneIds are ignored.
// GitHub does not appear to support searching for all issues with milestones (not lacking a milestone). "-no:milestone" does not work.
// GitHub does not appear to support searching for all issues with labels (not lacking a label). "-no:label" does not work.
// All indicated labels must be present
if (this.labels) {
if (((_a = this.labels) === null || _a === void 0 ? void 0 : _a.length) > 2 && ((_b = this.labels) === null || _b === void 0 ? void 0 : _b.startsWith('"')) && ((_c = this.labels) === null || _c === void 0 ? void 0 : _c.endsWith('"'))) {
this.labels = this.labels.substring(1, this.labels.length - 2);
}
this.labelsSet = (_d = this.labels) === null || _d === void 0 ? void 0 : _d.split(',');
for (const str of this.labelsSet) {
if (str != "") {
query = query.concat(` label:"${str}"`);
}
}
}
// The "involves" qualifier to find issues that in some way involve a certain user.
// It is a logical OR between the author, assignee, and mentions.
if (this.involves) {
this.involvesSet = (_e = this.involves) === null || _e === void 0 ? void 0 : _e.split(',');
for (const str of this.involvesSet) {
if (str != "") {
query = query.concat(` involves:"${str}"`);
}
}
}
if (this.ignoreLabels) {
if (this.ignoreLabels == "*" && !this.labels) { // only if unlabeled
query = query.concat(` no:label`);
this.ignoreAllWithLabels = true;
}
else {
this.ignoreLabelsSet = (_f = this.ignoreLabels) === null || _f === void 0 ? void 0 : _f.split(',');
for (const str of this.ignoreLabelsSet) {
if (str != "") {
query = query.concat(` -label:"${str}"`);
}
}
}
}
if (this.milestoneName) {
query = query.concat(` milestone:"${this.milestoneName}"`);
}
else if (this.ignoreMilestoneNames) {
if (this.ignoreMilestoneNames == "*") {
query = query.concat(` no:milestone`);
this.ignoreAllWithMilestones = true;
}
else if (this.ignoreMilestoneIds) {
this.ignoreMilestoneNamesSet = this.ignoreMilestoneNames.split(',');
this.ignoreMilestoneIdsSet = this.ignoreMilestoneIds.split(',');
for (const str of this.ignoreMilestoneNamesSet) {
if (str != "") {
query = query.concat(` -milestone:"${str}"`);
}
}
}
}
return query;
}
// This is necessary because GitHub sometimes returns incorrect results,
// and because issues may get modified while we are processing them.
validateIssue(issue) {
var _a, _b;
if (this.ignoreAllWithLabels) {
// Validate that the issue does not have labels
if (issue.labels && issue.labels.length !== 0) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to label found after querying for no:label.`);
return false;
}
}
else {
// Make sure all labels we wanted are present.
if ((!issue.labels || issue.labels.length == 0) && this.labelsSet.length > 0) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having a required label set. No labels found.`);
return false;
}
for (const str of this.labelsSet) {
if (!issue.labels.includes(str)) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having a required label set.`);
return false;
}
}
// Make sure no labels we wanted to ignore are present.
if (issue.labels && issue.labels.length > 0) {
for (const str of this.ignoreLabelsSet) {
if (issue.labels.includes(str)) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to having an ignore label set: ${str}`);
return false;
}
}
}
}
if (this.ignoreAllWithMilestones) {
// Validate that the issue does not have a milestone.
if (issue.milestone) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to milestone found after querying for no:milestone.`);
return false;
}
}
else {
// Make sure milestone is present, if required.
if (this.milestoneId != null && ((_a = issue.milestone) === null || _a === void 0 ? void 0 : _a.milestoneId) != +this.milestoneId) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having required milsetone id ${this.milestoneId}. Had: ${(_b = issue.milestone) === null || _b === void 0 ? void 0 : _b.milestoneId}`);
return false;
}
// Make sure a milestones we wanted to ignore is not present.
if (issue.milestone && issue.milestone.milestoneId != null) {
for (const str of this.ignoreMilestoneIdsSet) {
if (issue.milestone.milestoneId == +str) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to milestone ${issue.milestone.milestoneId} found in list of ignored milestone IDs.`);
return false;
}
}
}
}
// Verify the issue has a sufficient number of upvotes
let upvotes = 0;
if (issue.reactions) {
upvotes = issue.reactions['+1'];
}
if (this.minimumVotes != undefined) {
if (upvotes < this.minimumVotes) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having at least ${this.minimumVotes} upvotes. Had: ${upvotes}`);
return false;
}
}
// Verify the issue does not have too many upvotes
if (this.maximumVotes != undefined) {
if (upvotes > this.maximumVotes) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to having more than ${this.maximumVotes} upvotes. Had: ${upvotes}`);
return false;
}
}
return true;
}
}
exports.ActionBase = ActionBase;
//# sourceMappingURL=ActionBase.js.map
+4 -9
View File
@@ -25,6 +25,7 @@ export const normalizeIssue = (issue: {
const cleanse = (str: string) => {
let out = str
.toLowerCase()
.replace(/<!--.*-->/gu, '')
.replace(/.* version: .*/gu, '')
.replace(/issue type: .*/gu, '')
.replace(/vs ?code/gu, '')
@@ -35,12 +36,6 @@ export const normalizeIssue = (issue: {
.replace(/\s+/gu, ' ')
.replace(/```[^`]*?```/gu, '');
while (
out.includes('<!--') &&
out.includes('-->') &&
out.indexOf('-->') > out.indexOf('<!--')) {
out = out.slice(0, out.indexOf('<!--')) + out.slice(out.indexOf('-->') + 3);
}
while (
out.includes(`<details>`) &&
out.includes('</details>') &&
@@ -121,9 +116,9 @@ Repo: ${context.repo.owner}/${context.repo.repo}
<!-- Context:
${JSON.stringify(context, null, 2)
.replace(/<!--/gu, '<@--')
.replace(/--!?\s*>/gu, '--@>')
.replace(/\/|\\/gu, 'slash-')}
.replace(/<!--/gu, '<@--')
.replace(/-->/gu, '--@>')
.replace(/\/|\\/gu, 'slash-')}
-->
`);
};
+7538 -3012
View File
File diff suppressed because it is too large Load Diff
+9 -10
View File
@@ -10,12 +10,13 @@
"keywords": [],
"author": "",
"dependencies": {
"@actions/core": "^2.0.3",
"@actions/github": "^8.0.1",
"@octokit/rest": "^21.1.1",
"@slack/web-api": "^6.9.1",
"axios": "^1.16.0",
"uuid": "^14.0.0"
"@actions/core": "^1.9.1",
"@actions/github": "^5.0.3",
"@octokit/rest": "^19.0.3",
"@slack/web-api": "^6.7.2",
"applicationinsights": "^2.5.1",
"axios": "^0.27.2",
"uuid": "^8.3.2"
},
"devDependencies": {
"@azure/storage-blob": "^12.13.0",
@@ -38,9 +39,7 @@
"typescript": "^4.7.4",
"yargs": "^17.5.1"
},
"overrides": {
"serialize-javascript": "^7.0.5",
"flatted": "^3.4.2",
"fast-xml-parser": "^5.5.7"
"resolutions": {
"minimatch": "^3.0.5"
}
}
-33
View File
@@ -1,33 +0,0 @@
name: Bug - debugger
on:
schedule:
- cron: 50 12 * * * # Run at 12:50 PM UTC (4:50 AM PST, 5:50 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Add Comment
uses: ./.github/actions/AddComment
with:
readonly: ${{ github.event.inputs.readonly }}
labels: bug,debugger
ignoreLabels: "investigate: costing,investigate,external,by design,question,more info needed,Language Service,internal"
createdAfter: "2024-07-22"
addComment: "Thank you for reporting this issue. Well let you know if we need more information to investigate it. Additionally, if you're working with GDB/LLDB, please note that the code is open source at https://github.com/microsoft/MIEngine/wiki/Contributing-Code . Your contributions are always welcome and appreciated."
addLabels: help wanted
@@ -1,24 +1,19 @@
name: By Design closer - debugger
on:
schedule:
- cron: 0 13 * * * # Run at 1:00 PM UTC (5:00 AM PST, 6:00 AM PDT)
- cron: 10 11 * * * # Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v3
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -26,7 +21,6 @@ jobs:
with:
readonly: ${{ github.event.inputs.readonly }}
labels: by design,debugger
ignoreLabels: Language Service,internal
ignoreLabels: language service,internal
closeDays: 0
closeComment: "This issue has been closed because the described behavior was determined to be by design."
+1 -7
View File
@@ -8,17 +8,12 @@ on:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v3
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -31,4 +26,3 @@ jobs:
closeComment: "This issue has been closed because the described behavior was determined to be by design."
pingDays: 80
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if it is no longer relevant."
+2 -12
View File
@@ -5,20 +5,10 @@ on:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
inputs:
target-ref:
description: Branch, tag, or SHA to test
required: true
default: main
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
job:
uses: ./.github/workflows/job-compile-and-test.yml
with:
runner-env: ubuntu-24.04
platform: linux
checkout-ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target-ref || github.ref }}
runner-env: ubuntu-22.04
platform: linux
+2 -12
View File
@@ -5,21 +5,11 @@ on:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
inputs:
target-ref:
description: Branch, tag, or SHA to test
required: true
default: main
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
job:
uses: ./.github/workflows/job-compile-and-test.yml
with:
runner-env: macos-15
runner-env: macos-12
platform: mac
checkout-ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target-ref || github.ref }}
yarn-args: --network-timeout 100000
yarn-args: --network-timeout 100000
+1 -11
View File
@@ -5,20 +5,10 @@ on:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
inputs:
target-ref:
description: Branch, tag, or SHA to test
required: true
default: main
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
job:
uses: ./.github/workflows/job-compile-and-test.yml
with:
runner-env: windows-2025
runner-env: windows-2022
platform: windows
checkout-ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target-ref || github.ref }}
-97
View File
@@ -1,97 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ "main", "insiders", "release", "vs" ]
pull_request:
branches: [ "main", "insiders", "release", "vs" ]
schedule:
- cron: '29 4 * * 3'
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
# only required for workflows in private repositories
actions: read
contents: read
strategy:
fail-fast: false
matrix:
include:
- language: javascript-typescript
build-mode: none
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v5
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
+1 -7
View File
@@ -8,17 +8,12 @@ on:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -31,4 +26,3 @@ jobs:
closeComment: "This issue has been closed because it is a duplicate of another issue we are tracking."
pingDays: 80
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if it is no longer relevant."
@@ -1,24 +1,19 @@
name: Enhancement Closer (no milestone)
on:
schedule:
- cron: 40 12 * * * # Run at 12:40 PM UTC (4:40 AM PST, 5:40 AM PDT)
- cron: 50 11 * * * # Run at 11:50 AM UTC (3:50 AM PST, 4:50 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -33,4 +28,3 @@ jobs:
closeComment: "This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
setMilestoneId: 30
ignoreMilestoneNames: "*"
@@ -1,24 +1,19 @@
name: Enhancement Closer (Triage)
on:
schedule:
- cron: 30 12 * * * # Run at 12:30 PM UTC (4:30 AM PST, 5:30 AM PDT)
- cron: 40 11 * * * # Run at 11:40 AM UTC (3:40 AM PST, 4:40 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -33,4 +28,3 @@ jobs:
closeComment: "This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
milestoneName: Triage
milestoneId: 30
+2 -8
View File
@@ -1,24 +1,19 @@
name: Enhancement Reopener
on:
schedule:
- cron: 0 11 * * * # Run at 11:00 AM UTC (3:00 AM PST, 4:00 AM PDT)
- cron: 20 12 * * * # Run at 12:20 PM UTC (4:20 AM PST, 5:20 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Run Reopener
@@ -34,4 +29,3 @@ jobs:
milestoneName: Triage
setMilestoneId: 28
removeLabels: more votes needed
@@ -1,24 +1,19 @@
name: External closer - debugger
on:
schedule:
- cron: 10 13 * * * # Run at 1:10 PM UTC (5:10 AM PST, 6:10 AM PDT)
- cron: 10 11 * * * # Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -26,7 +21,6 @@ jobs:
with:
readonly: ${{ github.event.inputs.readonly }}
labels: external,debugger
ignoreLabels: Language Service,internal
ignoreLabels: language service,internal
closeDays: 0
closeComment: "This issue has been closed because it is external or not applicable to the extension."
@@ -8,17 +8,12 @@ on:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -33,4 +28,3 @@ jobs:
closeComment: "This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
setMilestoneId: 30
ignoreMilestoneNames: "*"
@@ -8,17 +8,12 @@ on:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -33,4 +28,3 @@ jobs:
closeComment: "This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
milestoneName: Triage
milestoneId: 30
@@ -1,33 +0,0 @@
name: Feature Request - debugger
on:
schedule:
- cron: 20 13 * * * # Run at 1:20 PM UTC (5:20 AM PST, 6:20 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Add Comment
uses: ./.github/actions/AddComment
with:
readonly: ${{ github.event.inputs.readonly }}
labels: Feature Request,debugger
ignoreLabels: "investigate: costing,investigate,external,by design,question,more info needed,Language Service,internal"
createdAfter: "2024-07-22"
addComment: "Thank you for your feature request. While we may not be able to implement it immediately, we will monitor community reactions to see how it fits into our backlog. Additionally, if you're working with GDB/LLDB, please note that the code is open source at https://github.com/microsoft/MIEngine/wiki/Contributing-Code . Your contributions are always welcome and appreciated."
addLabels: help wanted
@@ -8,17 +8,12 @@ on:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Run Reopener
@@ -34,4 +29,3 @@ jobs:
milestoneName: Triage
setMilestoneId: 28
removeLabels: more votes needed
@@ -1,24 +1,19 @@
name: Investigate closer - debugger
on:
schedule:
- cron: 30 13 * * * # Run at 1:30 PM UTC (5:30 AM PST, 6:30 AM PDT)
- cron: 10 11 * * * # Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -26,7 +21,6 @@ jobs:
with:
readonly: ${{ github.event.inputs.readonly }}
labels: investigate,debugger
ignoreLabels: Language Service,internal
ignoreLabels: language service,internal
closeDays: 180
closeComment: "This issue has been closed as lower priority. We're sorry if this issue still impacts you but unfortunately we're not able to address this. We will accept a pull request from the community if it's applicable for this issue."
@@ -1,24 +1,19 @@
name: Investigate Costing closer - debugger
on:
schedule:
- cron: 40 13 * * * # Run at 1:40 PM UTC (5:40 AM PST, 6:40 AM PDT)
- cron: 10 11 * * * # Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -26,7 +21,6 @@ jobs:
with:
readonly: ${{ github.event.inputs.readonly }}
labels: "investigate: costing,debugger"
ignoreLabels: Language Service,internal
ignoreLabels: language service,internal
closeDays: 180
closeComment: "This issue has been closed as lower priority. We're sorry if this issue still impacts you but unfortunately we're not able to address this. We will accept a pull request from the community if it's applicable for this issue."
+5 -34
View File
@@ -11,28 +11,20 @@ on:
# Expects 'mac', 'linux', or 'windows'
required: true
type: string
checkout-ref:
required: false
type: string
yarn-args:
type: string
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
build:
runs-on: ${{ inputs.runner-env }}
steps:
- uses: actions/checkout@v5
with:
ref: ${{ inputs.checkout-ref }}
- uses: actions/checkout@v3
- name: Use Node.js 24
uses: actions/setup-node@v4
- name: Use Node.js 16
uses: actions/setup-node@v3
with:
node-version: 24
node-version: 16
- name: Install Dependencies
run: yarn install ${{ inputs.yarn-args }}
@@ -50,14 +42,6 @@ jobs:
run: yarn test
working-directory: Extension
# These tests don't require the binary.
# On Linux, it is failing (before the tests actually run) with: Test run terminated with signal SIGSEGV.
# But it works on Linux during the E2E test.
- name: Run SingleRootProject tests
if: ${{ inputs.platform != 'linux' }}
run: yarn test --scenario=SingleRootProject --skipCheckBinaries
working-directory: Extension
# NOTE : We can't run the test that require the native binary files
# yet -- there will be an update soon that allows the tester to
# acquire them on-the-fly
@@ -71,11 +55,6 @@ jobs:
# run: yarn test --scenario=MultirootDeadlockTest
# working-directory: Extension
# - name: Run E2E IntelliSense features tests
# if: ${{ inputs.platform == 'windows' }}
# run: yarn test --scenario=RunWithoutDebugging
# working-directory: Extension
# NOTE: For mac/linux run the tests with xvfb-action for UI support.
# Another way to start xvfb https://github.com/microsoft/vscode-test/blob/master/sample/azure-pipelines.yml
@@ -91,12 +70,4 @@ jobs:
# uses: coactions/setup-xvfb@v1
# with:
# run: yarn test --scenario=MultirootDeadlockTest
# working-directory: Extension
# - name: Run E2E IntelliSense features tests (xvfb)
# if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
# uses: coactions/setup-xvfb@v1
# with:
# run: yarn test --scenario=RunWithoutDebugging
# working-directory: Extension
# working-directory: Extension
+1 -7
View File
@@ -8,17 +8,12 @@ on:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Run Locker
@@ -28,4 +23,3 @@ jobs:
daysSinceClose: 45
daysSinceUpdate: 3
ignoreLabels: more votes needed,debugger,internal
@@ -1,24 +1,19 @@
name: More Info Needed Closer - debugger
on:
schedule:
- cron: 50 13 * * * # Run at 1:50 PM UTC (5:50 AM PST, 6:50 AM PDT)
- cron: 10 11 * * * # Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -26,10 +21,9 @@ jobs:
with:
readonly: ${{ github.event.inputs.readonly }}
labels: more info needed,debugger
ignoreLabels: Language Service,internal
ignoreLabels: language service,internal
involves: wardengnaw,pieandcakes,calgagi
closeDays: 14
closeComment: "This issue has been closed because it needs more information and has not had recent activity."
pingDays: 7
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the problem no longer exists, or adding more information."
@@ -8,17 +8,12 @@ on:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -27,8 +22,7 @@ jobs:
readonly: ${{ github.event.inputs.readonly }}
labels: more info needed
ignoreLabels: debugger,internal
closeDays: 30
closeDays: 60
closeComment: "This issue has been closed because it needs more information and has not had recent activity."
pingDays: 14
pingDays: 80
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the problem no longer exists, or adding more information."
@@ -1,24 +1,19 @@
name: Question Closer - debugger
on:
schedule:
- cron: 0 14 * * * # Run at 2:00 PM UTC (6:00 AM PST, 7:00 AM PDT)
- cron: 20 11 * * * # Run at 11:20 AM UTC (3:20 AM PST, 4:20 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -26,10 +21,9 @@ jobs:
with:
readonly: ${{ github.event.inputs.readonly }}
labels: question,debugger
ignoreLabels: Language Service,internal
ignoreLabels: language service,internal
involves: wardengnaw,pieandcakes,calgagi
closeDays: 14
closeComment: "This issue has been closed because it is a question and has not had recent activity."
pingDays: 7
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the question has been answered."
+1 -7
View File
@@ -8,17 +8,12 @@ on:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v5
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -31,4 +26,3 @@ jobs:
closeComment: "This issue has been closed because it is a question and has not had recent activity."
pingDays: 80
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the question has been answered."
-120
View File
@@ -1,120 +0,0 @@
name: $(date:yyyyMMdd)$(rev:.r)
trigger:
branches:
include:
- main
- release
- insiders
schedules:
- cron: 30 5 * * 0
branches:
include:
- main
always: true
resources:
repositories:
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
variables:
- name: Codeql.Enabled
value: true
- name: Codeql.Language
value: javascript
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2025
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2025
os: windows
binskim:
preReleaseVersion: '4.3.1'
tsa:
enabled: true
config:
tsaVersion: TsaV2
codebase: NewOrUpdate
codebaseName: vscode-cpptools
tsaStamp: $(TsaProjectName)
tsaEnvironment: PROD
notificationAliases: $(TsaNotificationAlias)
codebaseAdmins: $(TsaCodebaseAdmins)
instanceUrl: $(TsaInstanceUrl)
projectName: $(TsaProjectName)
areaPath: $(TsaAreaPath)
iterationPath: $(TsaIterationPath)
alltools: true
repositoryName: vscode-cpptools
policheck:
enabled: true
featureFlags:
autoBaseline: false
settings:
networkIsolationPolicy: Permissive,CFSClean,CFSClean2,CFSClean3
stages:
- stage: build
jobs:
- job: Phase_1
displayName: Build cpptools.vsix
timeoutInMinutes: 60
cancelTimeoutInMinutes: 1
templateContext:
outputs:
- output: pipelineArtifact
displayName: 'cpptools.vsix'
condition: succeeded()
targetPath: $(Build.ArtifactStagingDirectory)\Extension
artifactName: cpptools.vsix
steps:
- checkout: self
- task: UseNode@1
displayName: Use Node 22.x
inputs:
version: 22.x
- script: IF EXIST %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc del %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc
displayName: Delete .npmrc if it exists
- script: mkdir $(Build.ArtifactStagingDirectory)\Extension
displayName: Create Extension Staging Directory
- task: Bash@3
displayName: Build files
inputs:
targetType: 'inline'
script: |
export SRC_DIR=$(echo $BUILD_SOURCESDIRECTORY | sed 's|\\|/|g')
cd "$SRC_DIR/Extension"
npm run vsix-prepublish
if [ $? -ne 0 ]; then
echo "npm run vsix-prepublish failed, sleeping for 30s before retrying..."
sleep 30
exit 1
fi
retryCountOnTaskFailure: 3
- script: yarn install --frozen-lockfile
displayName: Install dependencies with yarn
workingDirectory: $(Build.SourcesDirectory)\Extension
- script: if not exist node_modules\@vscode\vsce-sign\bin\vsce-sign.exe (echo Missing vsce-sign.exe && exit 1)
displayName: Verify vsce-sign binary exists
workingDirectory: $(Build.SourcesDirectory)\Extension
- script: npx vsce package --yarn -o $(Build.ArtifactStagingDirectory)\Extension\cpptools.vsix
displayName: Run VSCE to package vsix
workingDirectory: $(Build.SourcesDirectory)\Extension
+3 -3
View File
@@ -19,7 +19,7 @@ parameters:
# Note: Make sure lldb_mi_commit is the same as the one in Extension/cgmanifest.json
# 'CommitHash' for lldb-mi.
lldb_mi_commit: 2388bd74133bc21eac59b2e2bf97f2a30770a315
lldb_mi_commit: 4fe9c663edce2447e114c71851694d8c529b982d
lldb_mi_additional_parameters: "-DUSE_LLDB_FRAMEWORK=1"
@@ -28,9 +28,9 @@ jobs:
timeoutInMinutes: 360
pool:
${{if eq(parameters['llvm_arch'], 'arm64')}}:
name: cpptoolsMacM1pool
vmImage: macos-13-arm64
${{ else }}:
vmImage: macOS-latest
vmImage: macOS-13
steps:
- task: CmdLine@2
displayName: 'Install Dependencies'
+37 -67
View File
@@ -2,14 +2,11 @@
# Pipeline for VsCodeExtension-Localization build definition
# Runs OneLocBuild task to localize xlf file
# ==================================================================================
resources:
repositories:
- repository: self
clean: true
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
trigger: none
pr: none
@@ -21,72 +18,45 @@ schedules:
- main
always: true
variables:
TeamName: cpptools
Codeql.Language: javascript
pool:
name: 'AzurePipelines-EO'
demands:
- ImageOverride -equals AzurePipelinesWindows2022compliant
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2025
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2025
os: windows
stages:
- stage: stage
jobs:
- job: job
templateContext:
outputs:
- output: pipelineArtifact
targetPath: '$(Build.ArtifactStagingDirectory)'
artifactName: 'drop'
publishLocation: 'Container'
steps:
- task: NodeTool@0
inputs:
versionSpec: '22.x'
displayName: 'Install Node.js'
steps:
- task: NodeTool@0
inputs:
versionSpec: '16.x'
displayName: 'Install Node.js'
- task: CmdLine@2
inputs:
script: 'cd Extension && yarn install'
- task: CmdLine@2
inputs:
script: 'cd Extension && yarn install'
- task: CmdLine@2
inputs:
script: 'cd ./Extension && yarn run translations-export && cd ..'
- task: CmdLine@2
inputs:
script: 'cd ./Extension && yarn run translations-export && cd ..'
# Requires Azure client 2.x
- task: AzureCLI@2
displayName: 'Set OneLocBuildToken'
enabled: true
inputs:
azureSubscription: '$(AzureSubscription)' # Azure DevOps service connection
scriptType: 'pscore'
scriptLocation: 'inlineScript'
inlineScript: |
$token = az account get-access-token --query accessToken --resource $(AzureGuid) -o tsv
Write-Host "##vso[task.setvariable variable=AzDO.OneLocBuildToken;issecret=true]${token}"
- task: OneLocBuild@2
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
inputs:
locProj: 'Build/loc/LocProject.json'
outDir: '$(Build.ArtifactStagingDirectory)'
isCreatePrSelected: false
prSourceBranchPrefix: 'locfiles'
packageSourceAuth: 'patAuth'
patVariable: '$(OneLocBuildPat)'
LclSource: lclFilesfromPackage
LclPackageId: 'LCL-JUNO-PROD-VCPP'
lsBuildXLocPackageVersion: '7.0.30510'
- task: OneLocBuild@2
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
inputs:
locProj: 'Build/loc/LocProject.json'
outDir: '$(Build.ArtifactStagingDirectory)'
isCreatePrSelected: false
prSourceBranchPrefix: 'locfiles'
packageSourceAuth: 'patAuth'
patVariable: '$(AzDO.OneLocBuildToken)'
LclSource: lclFilesfromPackage
LclPackageId: 'LCL-JUNO-PROD-VCPP'
lsBuildXLocPackageVersion: '7.0.30510'
- task: CmdLine@2
inputs:
script: 'cd Extension && node ./translations_auto_pr.js microsoft vscode-cpptools csigs $(csigsPat) csigs [email protected] "$(Build.ArtifactStagingDirectory)/loc" vscode-extensions-localization-export/vscode-extensions && cd ..'
- task: CmdLine@2
inputs:
script: 'cd Extension && node ./translations_auto_pr.js microsoft vscode-cpptools csigs $(csigsPat) csigs [email protected] "$(Build.ArtifactStagingDirectory)/loc" vscode-extensions-localization-export/vscode-extensions && cd ..'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
-50
View File
@@ -1,50 +0,0 @@
name: $(date:yyyyMMdd)$(rev:.r)
trigger: none
pr: none
parameters:
- name: verifyVersion
displayName: Attest version in package.json is correct
type: boolean
default: false
- name: verifyReadme
displayName: Attest README.md is updated
type: boolean
default: false
resources:
repositories:
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2025
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2025
os: windows
settings:
networkIsolationPolicy: Permissive,CFSClean,CFSClean2,CFSClean3
stages:
- stage: package
jobs:
# Introduce pipeline compilation errors to block scheduling if the requisite parameters are not set
- ${{ if not(eq(parameters.verifyVersion, true)) }}:
- 'The version in package.json should be updated before scheduling the pipeline.'
- ${{ if not(eq(parameters.verifyReadme, true)) }}:
- 'README.md should be updated before scheduling the pipeline.'
- template: /Build/package/jobs_package_vsix.yml@self
parameters:
vsixName: cpptools-extension-pack
srcDir: ExtensionPack
-50
View File
@@ -1,50 +0,0 @@
name: $(date:yyyyMMdd)$(rev:.r)
trigger: none
pr: none
parameters:
- name: verifyVersion
displayName: Attest version in package.json is correct
type: boolean
default: false
- name: verifyReadme
displayName: Attest README.md is updated
type: boolean
default: false
resources:
repositories:
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2025
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2025
os: windows
settings:
networkIsolationPolicy: Permissive,CFSClean,CFSClean2,CFSClean3
stages:
- stage: package
jobs:
# Introduce pipeline compilation errors to block scheduling if the requisite parameters are not set
- ${{ if not(eq(parameters.verifyVersion, true)) }}:
- 'The version in package.json should be updated before scheduling the pipeline.'
- ${{ if not(eq(parameters.verifyReadme, true)) }}:
- 'README.md should be updated before scheduling the pipeline.'
- template: /Build/package/jobs_package_vsix.yml@self
parameters:
vsixName: cpptools-themes
srcDir: Themes
-95
View File
@@ -1,95 +0,0 @@
parameters:
- name: vsixName
type: string
default: ''
- name: srcDir
type: string
default: ''
- name: signType
type: string
default: 'real'
jobs:
- job: package
displayName: Build ${{ parameters.vsixName }}.vsix
timeoutInMinutes: 30
cancelTimeoutInMinutes: 1
templateContext:
mb: # Enable the MicroBuild Signing toolset
signing:
enabled: true
signType: ${{ parameters.signType }}
zipSources: false
${{ if eq(parameters.signType, 'real') }}:
signWithProd: true
featureFlags:
autoBaseline: false
outputs:
- output: pipelineArtifact
displayName: '${{ parameters.vsixName }}.vsix'
targetPath: $(Build.ArtifactStagingDirectory)\vsix
artifactName: vsix
steps:
- checkout: self
- task: UseNode@1
displayName: Use Node 22.x
inputs:
version: 22.x
- script: IF EXIST %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc del %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc
displayName: Delete .npmrc if it exists
- task: Bash@3
displayName: Build files
inputs:
targetType: 'inline'
script: |
export SRC_DIR=$(echo $BUILD_SOURCESDIRECTORY | sed 's|\\|/|g')
cd "$SRC_DIR/${{ parameters.srcDir }}"
npm install
if [ $? -ne 0 ]; then
echo "npm install failed, sleeping for 30s before retrying..."
sleep 30
exit 1
fi
retryCountOnTaskFailure: 3
- script: mkdir $(Build.ArtifactStagingDirectory)\vsix
displayName: Create Staging Directory
- script: npm install --no-save --ignore-scripts=false --include=optional --force @vscode/[email protected]
displayName: Install vsce
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
- script: npm rebuild @vscode/vsce-sign --ignore-scripts=false
displayName: Rebuild vsce-sign binary
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
- script: if not exist node_modules\@vscode\vsce-sign\bin\vsce-sign.exe (echo Missing vsce-sign.exe && exit 1)
displayName: Verify vsce-sign binary exists
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
- script: npx vsce package -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.vsix
displayName: Run VSCE to package vsix
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
# sign the vsix
- script: npx vsce generate-manifest -i $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.vsix -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.manifest
displayName: generate manifest
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
- script: copy $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.manifest $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.signature.p7s
displayName: prepare manifest for signing
workingDirectory: $(Build.SourcesDirectory)\${{ parameters.srcDir }}
- task: NuGetToolInstaller@1
displayName: Install NuGet
- task: NuGetAuthenticate@1
displayName: Authenticate NuGet
- script: nuget restore $(Build.SourcesDirectory)\Build\signing\SignVsix.proj -PackagesDirectory $(Build.SourcesDirectory)\Build\signing\packages -ConfigFile $(Build.SourcesDirectory)\Build\signing\NuGet.config
displayName: Restore MicroBuild Core
- task: MSBuild@1
displayName: Sign the vsix
inputs:
solution: $(Build.SourcesDirectory)\Build\signing\SignVsix.proj
msbuildArguments: /p:SignType=${{ parameters.signType }}
-43
View File
@@ -1,43 +0,0 @@
name: $(Date:yyyyMMdd)$(rev:.r)
trigger: none
pr: none
resources:
repositories:
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
pipelines:
- pipeline: vsixBuild
source: '\VC\VSCode\CpptoolsVSIX\Package cpptools-extension-pack'
trigger: true
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2025
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2025
os: windows
stages:
- stage: Validate
jobs:
- template: /Build/publish/jobs_manual_validation.yml@self
parameters:
notifyUsers: $(NotifyUsers)
releaseBuildUrl: $(ReleaseBuildUrl)
- stage: Release
dependsOn: Validate
jobs:
- template: /Build/publish/jobs_publish_vsix.yml@self
parameters:
vsixName: cpptools-extension-pack
-43
View File
@@ -1,43 +0,0 @@
name: $(Date:yyyyMMdd)$(rev:.r)
trigger: none
pr: none
resources:
repositories:
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
pipelines:
- pipeline: vsixBuild
source: '\VC\VSCode\CpptoolsVSIX\Package cpptools-themes'
trigger: true
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2025
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2025
os: windows
stages:
- stage: Validate
jobs:
- template: /Build/publish/jobs_manual_validation.yml@self
parameters:
notifyUsers: $(NotifyUsers)
releaseBuildUrl: $(ReleaseBuildUrl)
- stage: Release
dependsOn: Validate
jobs:
- template: /Build/publish/jobs_publish_vsix.yml@self
parameters:
vsixName: cpptools-themes
-19
View File
@@ -1,19 +0,0 @@
parameters:
- name: notifyUsers
type: string
default: ''
- name: releaseBuildUrl
type: string
default: ''
jobs:
- job: WaitForValidation
displayName: Wait for VSIX validation
pool: server
steps:
- task: ManualValidation@0
displayName: "Manual Validation"
inputs:
notifyUsers: $(notifyUsers)
instructions: |
Download and test the vsix from the latest release build: $(releaseBuildUrl)
-46
View File
@@ -1,46 +0,0 @@
parameters:
- name: vsixName
type: string
default: ''
jobs:
- job: Publish
displayName: Publish to Marketplace
templateContext:
type: releaseJob
isProduction: true
inputs:
- input: pipelineArtifact
pipeline: vsixBuild
artifactName: vsix
targetPath: $(Build.StagingDirectory)\vsix
steps:
- task: NodeTool@0
displayName: Use Node 22.x
inputs:
versionSpec: 22.x
- task: AzureCLI@2
displayName: Generate AAD_TOKEN
inputs:
azureSubscription: $(AzureSubscription)
scriptType: ps
scriptLocation: inlineScript
inlineScript: |
$aadToken = az account get-access-token --query accessToken --resource $(AzureGuid) -o tsv
Write-Host "##vso[task.setvariable variable=AAD_TOKEN;issecret=true]$aadToken"
- script: npm install --no-save --ignore-scripts=false --include=optional --force @vscode/[email protected]
displayName: Install vsce
- script: npm rebuild @vscode/vsce-sign --ignore-scripts=false
displayName: Rebuild vsce-sign binary
- script: if not exist node_modules\@vscode\vsce-sign\bin\vsce-sign.exe (echo Missing vsce-sign.exe && exit 1)
displayName: Verify vsce-sign binary exists
- script: npx vsce publish --skip-duplicate -i $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}.vsix --manifestPath $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}.manifest --signaturePath $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}.signature.p7s
displayName: Publish to Marketplace
env:
VSCE_PAT: $(AAD_TOKEN)
-7
View File
@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="Engineering" value="https://pkgs.dev.azure.com/devdiv/_packaging/MicroBuildToolset/nuget/v3/index.json" />
</packageSources>
</configuration>
-21
View File
@@ -1,21 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="SignFiles" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="packages\Microsoft.VisualStudioEng.MicroBuild.Core.0.4.1\build\Microsoft.VisualStudioEng.MicroBuild.Core.props" />
<PropertyGroup>
<BaseOutputDirectory>$(BUILD_STAGINGDIRECTORY)/Extension</BaseOutputDirectory>
<!-- These properties are required by MicroBuild, which only signs files that are under these paths -->
<IntermediateOutputPath>$(BaseOutputDirectory)</IntermediateOutputPath>
<OutDir>$(BaseOutputDirectory)</OutDir>
</PropertyGroup>
<ItemGroup>
<!-- Because of Webpack bundling, these are the only shipping Javascript files.
There are no third-party files to sign because they've all been bundled. -->
<FilesToSign Include="$(OutDir)\dist\src\main.js;$(OutDir)\dist\ui\settings.js">
<Authenticode>Microsoft400</Authenticode>
</FilesToSign>
</ItemGroup>
<Import Project="packages\Microsoft.VisualStudioEng.MicroBuild.Core.0.4.1\build\Microsoft.VisualStudioEng.MicroBuild.Core.targets" />
</Project>
-19
View File
@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="SignFiles" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="packages\Microsoft.VisualStudioEng.MicroBuild.Core.0.4.1\build\Microsoft.VisualStudioEng.MicroBuild.Core.props" />
<PropertyGroup>
<BaseOutputDirectory>$(BUILD_STAGINGDIRECTORY)</BaseOutputDirectory>
<!-- These properties are required by MicroBuild, which only signs files that are under these paths -->
<IntermediateOutputPath>$(BaseOutputDirectory)</IntermediateOutputPath>
<OutDir>$(BaseOutputDirectory)</OutDir>
</PropertyGroup>
<ItemGroup>
<FilesToSign Include="$(OutDir)\vsix\cpptools-*.signature.p7s">
<Authenticode>VSCodePublisher</Authenticode>
</FilesToSign>
</ItemGroup>
<Import Project="packages\Microsoft.VisualStudioEng.MicroBuild.Core.0.4.1\build\Microsoft.VisualStudioEng.MicroBuild.Core.targets" />
</Project>
-4
View File
@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.VisualStudioEng.MicroBuild.Core" version="0.4.1" developmentDependency="true" />
</packages>
-8
View File
@@ -1,8 +0,0 @@
# Each line is a file pattern followed by one or more owners.
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# @microsoft/cpptools-maintainers will be requested for
# review when someone opens a pull request.
* @microsoft/cpptools-maintainers
+1 -2
View File
@@ -6,5 +6,4 @@ Resources:
- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
- Contact [[email protected]](mailto:[email protected]) with questions or concerns
- Employees can reach out at [aka.ms/opensource/moderation-support](https://aka.ms/opensource/moderation-support)
- Contact [[email protected]](mailto:[email protected]) with questions or concerns
+1 -22
View File
@@ -5,7 +5,7 @@
* [Build and debug the extension](Documentation/Building%20the%20Extension.md).
* File an [issue](https://github.com/Microsoft/vscode-cpptools/issues) and a [pull request](https://github.com/Microsoft/vscode-cpptools/pulls) with the change and we will review it.
* If the change affects functionality, add a line describing the change to [**CHANGELOG.md**](Extension/CHANGELOG.md).
* Try and add a test in [**test/extension.test.ts**](Extension/test/scenarios/SingleRootProject/tests/extension.test.ts).
* Try and add a test in [**test/extension.test.ts**](Extension/test/unitTests/extension.test.ts).
* Run tests via opening the [**Extension**](https://github.com/Microsoft/vscode-cpptools/tree/main/Extension) folder in Visual Studio Code, selecting the "Launch Tests" configuration in the Debug pane, and choosing "Start Debugging".
## About the Code
@@ -33,24 +33,3 @@ const localize: nls.LocalizeFunc = nls.loadMessageBundle();
const readmeMessage: string = localize("refer.read.me", "Please refer to {0} for troubleshooting information. Issues can be created at {1}", readmePath, "https://github.com/Microsoft/vscode-cpptools/issues");
```
* The first parameter to localize should be a unique key for that string, not used by any other call to localize() in the file unless representing the same string. The second parameter is the string to localize. Both of these parameters must be string literals. Tokens such as {0} and {1} are supported in the localizable string, with replacement values passed as additional parameters to localize().
## Contributor License Agreement
This project welcomes contributions and suggestions. Most contributions require you to
agree to a Contributor License Agreement (CLA) declaring that you have the right to,
and actually do, grant us the rights to use your contribution. For details, visit
https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need
to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the
instructions provided by the bot. You will only need to do this once across all repositories using our CLA.
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
or contact [[email protected]](mailto:[email protected]) with any additional questions or comments.
### Adding/Updating package.json dependencies
We maintain a public Azure Artifacts feed that we point the package manager to in .npmrc files. If you want to add a dependency or update a version in package.json, you may need to contact us so we can add it to our feed. Please ping our team in a PR or new issue if you experience this issue.
For local development, you can delete the .npmrc file and the matching `yarn.lock` file while you wait for us to update the feed. However, these changes will need to be reverted in your branch before we will accept a PR.
@@ -1 +1 @@
The documentation for c_cpp_properties.json has moved to https://code.visualstudio.com/docs/cpp/customize-cpp-settings.
The documentation for c_cpp_properties.json has moved to https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference.
+4
View File
@@ -0,0 +1,4 @@
*.js
dist/
vscode*.d.ts
+166
View File
@@ -0,0 +1,166 @@
module.exports = {
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/strict",
],
"env": {
"browser": true,
"es6": true,
"node": true
},
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": ["tsconfig.json", ".scripts/tsconfig.json"],
"ecmaVersion": 2022,
"sourceType": "module",
"warnOnUnsupportedTypeScriptVersion": false,
},
"plugins": [
"@typescript-eslint",
"eslint-plugin-jsdoc",
"@typescript-eslint/eslint-plugin",
"eslint-plugin-import",
"eslint-plugin-header"
],
"rules": {
"indent": [
"warn",
4,
{
"SwitchCase": 1,
"ObjectExpression": "first"
}
],
"@typescript-eslint/indent": [
"error", 4
],
"@typescript-eslint/adjacent-overload-signatures": "error",
"@typescript-eslint/array-type": "error",
"@typescript-eslint/await-thenable": "error",
"camelcase": "off",
"@typescript-eslint/naming-convention": [
"error",
{
"selector": "typeLike",
"format": ["PascalCase"]
}
],
"@typescript-eslint/member-delimiter-style": [
"error",
{
"multiline": {
"delimiter": "semi",
"requireLast": true
},
"singleline": {
"delimiter": "semi",
"requireLast": false
}
}
],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extraneous-class": "off",
"no-case-declarations": "off",
"no-useless-escape": "off",
"no-floating-decimal": "error",
"keyword-spacing": ["error", { "before": true, "overrides": { "this": { "before": false } } }],
"arrow-spacing": ["error", { "before": true, "after": true }],
"semi-spacing": ["error", { "before": false, "after": true }],
"no-extra-parens": ["error", "all", { "nestedBinaryExpressions": false, "ternaryOperandBinaryExpressions": false }],
"@typescript-eslint/no-array-constructor": "error",
"@typescript-eslint/no-useless-constructor": "error",
"@typescript-eslint/no-for-in-array": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-misused-promises": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-non-null-assertion": "error",
"@typescript-eslint/no-extra-non-null-assertion": "error",
"@typescript-eslint/no-this-alias": "error",
"@typescript-eslint/no-unnecessary-qualifier": "error",
"@typescript-eslint/no-unnecessary-type-arguments": "error",
"@typescript-eslint/no-var-requires": "error",
"@typescript-eslint/prefer-function-type": "error",
"@typescript-eslint/prefer-namespace-keyword": "error",
"@typescript-eslint/semi": "error",
"@typescript-eslint/triple-slash-reference": "error",
"@typescript-eslint/type-annotation-spacing": "error",
"@typescript-eslint/unified-signatures": "error",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/method-signature-style": ["error", "method"],
"@typescript-eslint/space-infix-ops": "error",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
"arrow-body-style": "error",
"comma-dangle": "error",
"comma-spacing": "off",
"@typescript-eslint/comma-spacing": "error",
"constructor-super": "error",
"curly": "error",
"eol-last": "error",
"eqeqeq": [
"error",
"always"
],
"import/no-default-export": "error",
"import/no-unassigned-import": "error",
"jsdoc/no-types": "error",
"new-parens": "error",
"no-bitwise": "error",
"no-caller": "error",
"no-cond-assign": "error",
"no-debugger": "error",
"no-duplicate-case": "error",
"no-duplicate-imports": "error",
"no-eval": "error",
"no-fallthrough": "error",
"no-invalid-this": "error",
"no-irregular-whitespace": "error",
"rest-spread-spacing": ["error", "never"],
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 1, "maxBOF": 0 }],
"no-new-wrappers": "error",
"no-return-await": "error",
"no-sequences": "error",
"no-sparse-arrays": "error",
"no-trailing-spaces": "error",
"no-multi-spaces": "error",
"no-undef-init": "error",
"no-unsafe-finally": "error",
"no-unused-expressions": "error",
"no-unused-labels": "error",
"space-before-blocks": "error",
"no-var": "error",
"one-var": [
"error",
"never"
],
"prefer-const": "error",
"prefer-object-spread": "error",
"space-in-parens": [
"error",
"never"
],
"spaced-comment": [
"off",
"always",
{ "line": { "exceptions": ["/"] } } // triple slash directives
],
"use-isnan": "error",
"valid-typeof": "error",
"yoda": "error",
"space-infix-ops": "error",
"header/header": [
"warn",
"block",
[
" --------------------------------------------------------------------------------------------",
" * Copyright (c) Microsoft Corporation. All Rights Reserved.",
" * See 'LICENSE' in the project root for license information.",
" * ------------------------------------------------------------------------------------------ "
],
],
}
};
-1
View File
@@ -10,7 +10,6 @@ server
debugAdapters
LLVM
bin/cpptools*
bin/libc.so
bin/*.dll
bin/.vs
bin/LICENSE.txt
-3
View File
@@ -1,3 +0,0 @@
registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/
# Disable postinstall scripts for supply chain security. Allowlist exceptions with npm trust: https://docs.npmjs.com/cli/v11/commands/npm-trust
ignore-scripts=true
+6 -9
View File
@@ -18,20 +18,18 @@ export async function main() {
}
export async function all() {
await rimraf(...(await getModifiedIgnoredFiles()).filter((each): each is string => each !== undefined && !each.includes('node_modules')));
await rimraf(...(await getModifiedIgnoredFiles()).filter(each => !each.includes('node_modules')));
}
export async function reset() {
verbose(`Resetting all .gitignored files in extension`);
await rimraf(...(await getModifiedIgnoredFiles()).filter((each): each is string => each !== undefined));
await rimraf(...await getModifiedIgnoredFiles());
}
async function details(files: string[]) {
const results = await Promise.all(files.filter(each => each).map(async (each) => {
const [, stats] = await filepath.stats(each);
if (!stats) {
return null;
}
let all = await Promise.all(files.filter(each => each).map(async (each) => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const [filename, stats ] = await filepath.stats(each);
return {
filename: stats.isDirectory() ? cyan(`${each}${sep}**`) : brightGreen(`${each}`),
date: stats.mtime.toLocaleDateString().replace(/\b(\d)\//g, '0$1\/'),
@@ -39,7 +37,6 @@ async function details(files: string[]) {
modified: stats.mtime
};
}));
let all = results.filter((each): each is NonNullable<typeof each> => each !== null);
all = all.sort((a, b) => a.modified.getTime() - b.modified.getTime());
// print a formatted table so the date and time are aligned
const max = all.reduce((max, each) => Math.max(max, each.filename.length), 0);
@@ -59,7 +56,7 @@ export async function show(opt?: string) {
case 'ignored':
case 'untracked':
console.log(cyan('\n\nUntracked+Ignored files:'));
return details((await getModifiedIgnoredFiles()).filter((each): each is string => each !== undefined));
return details(await getModifiedIgnoredFiles());
default:
return error(`Unknown option '${opt}'`);
+3 -5
View File
@@ -33,10 +33,8 @@ export async function main() {
//verbose(`Installing release version of 'ms-vscode.cpptools'`);
//spawnSync(cli, [...args, '--install-extension', 'ms-vscode.cpptools'], { encoding: 'utf-8', stdio: 'ignore' })
verbose(green('Launch VSCode'));
const ARGS = [...args, ...options.launchArgs.filter(each => !each.startsWith('--extensions-dir=') && !each.startsWith('--user-data-dir=')), `--extensionDevelopmentPath=${$root}`, ...$args ].map(each => (each.indexOf(' ') > -1) && (each.indexOf('"') === -1) ? `"${each}"` : each);
const CLI = cli.indexOf(' ') > -1 && cli.indexOf('"') === -1 ? `"${cli}"` : cli;
const ARGS = [...args, ...options.launchArgs.filter(each => !each.startsWith('--extensions-dir=') && !each.startsWith('--user-data-dir=')), `--extensionDevelopmentPath=${$root}`, ...$args ];
verbose(gray(`${cli}\n ${ [...ARGS ].join('\n ')}`));
verbose(gray(`${CLI}\n ${ [...ARGS ].join('\n ')}`));
spawnSync(CLI, ARGS, { encoding: 'utf-8', stdio: 'ignore', env: { ...process.env, DONT_PROMPT_WSL_INSTALL:"1" }, shell: true });
spawnSync(cli, ARGS, { encoding: 'utf-8', stdio: 'ignore', env: { ...process.env, DONT_PROMPT_WSL_INSTALL:"1" } });
}
+6 -25
View File
@@ -48,29 +48,28 @@ export const Git = async (...args: Parameters<Awaited<CommandFunction>>) => (awa
export const GitClean = async (...args: Parameters<Awaited<CommandFunction>>) => (await new Command(await git, 'clean'))(...args);
export async function getModifiedIgnoredFiles() {
const { code, error, stdio } = await GitClean('-Xd', '-n');
const {code, error, stdio } = await GitClean('-Xd', '-n');
if (code) {
throw new Error(`\n${error.all().join('\n')}`);
}
// return the full path of files that would be removed.
// eslint-disable-next-line @typescript-eslint/no-misused-promises
return Promise.all(stdio.filter("Would remove").map((s) => filepath.exists(s.replace(/^Would remove /, ''), $root)).filter(p => p));
}
export async function rimraf(...paths: string[]) {
const all: Promise<void>[] = [];
const all = [];
for (const each of paths) {
if (!each) {
continue;
}
if (await filepath.isFolder(each)) {
verbose(`Removing folder ${red(each)}`);
all.push(rm(each, { recursive: true, force: true }));
all.push(rm(each, {recursive: true, force: true}));
continue;
}
verbose(`Removing file ${red(each)}`);
all.push(rm(each, { force: true }));
all.push(rm(each, {force: true}));
}
await Promise.all(all);
}
@@ -83,9 +82,6 @@ export async function mkdir(filePath: string) {
}
throw new Error(`Cannot create directory '${filePath}' because there is a file there.`);
}
if (!fullPath) {
throw new Error(`Cannot create directory '${filePath}' because the path is invalid.`);
}
await md(fullPath, { recursive: true });
return fullPath;
@@ -262,7 +258,7 @@ export function position(text: string) {
return gray(`${text}`);
}
export async function assertAnyFolder(oneOrMoreFolders: string | string[], errorMessage?: string): Promise<string | undefined> {
export async function assertAnyFolder(oneOrMoreFolders: string | string[], errorMessage?: string): Promise<string> {
oneOrMoreFolders = is.array(oneOrMoreFolders) ? oneOrMoreFolders : [oneOrMoreFolders];
for (const each of oneOrMoreFolders) {
const result = await filepath.isFolder(each, $root);
@@ -279,7 +275,7 @@ export async function assertAnyFolder(oneOrMoreFolders: string | string[], error
}
}
export async function assertAnyFile(oneOrMoreFiles: string | string[], errorMessage?: string): Promise<string | undefined> {
export async function assertAnyFile(oneOrMoreFiles: string | string[], errorMessage?: string): Promise<string> {
oneOrMoreFiles = is.array(oneOrMoreFiles) ? oneOrMoreFiles : [oneOrMoreFiles];
for (const each of oneOrMoreFiles) {
const result = await filepath.isFile(each, $root);
@@ -337,9 +333,6 @@ export async function checkDTS() {
}
export async function checkBinaries() {
if ($switches.includes('--skipCheckBinaries')) {
return false;
}
let failing = false;
failing = !await assertAnyFile(['bin/cpptools.exe', 'bin/cpptools']) && (quiet || warn(`The native binary files are not present. You should either build or install the native binaries\n\n.`)) || failing;
@@ -348,15 +341,3 @@ export async function checkBinaries() {
}
return failing;
}
export async function checkProposals() {
let failing = false;
await rm(`${$root}/vscode.proposed.chatParticipantAdditions.d.ts`);
failing = await assertAnyFile('vscode.proposed.chatParticipantAdditions.d.ts') && (quiet || warn(`The VSCode import file '${$root}/vscode.proposed.chatParticipantAdditions.d.ts' should not be present.`)) || failing;
if (!failing) {
verbose('VSCode proposals appear to be in place.');
}
return failing;
}
-113
View File
@@ -1,113 +0,0 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { cp, readdir, rm, stat } from 'node:fs/promises';
import { homedir } from 'node:os';
import { join } from 'node:path';
import { $args, $root, green, heading, note } from './common';
const extensionPrefix = 'ms-vscode.cpptools-';
const foldersToCopy = ['bin', 'debugAdapters', 'LLVM'] as const;
type InstalledExtension = {
path: string;
version: number[];
modified: number;
};
function compareVersions(left: number[], right: number[]): number {
const maxLength: number = Math.max(left.length, right.length);
for (let i = 0; i < maxLength; i++) {
const diff: number = (left[i] ?? 0) - (right[i] ?? 0);
if (diff !== 0) {
return diff;
}
}
return 0;
}
function tryParseVersion(folderName: string): number[] | undefined {
if (!folderName.startsWith(extensionPrefix)) {
return undefined;
}
const versionText: string | undefined = folderName.substring(extensionPrefix.length).match(/^\d+\.\d+\.\d+/)?.[0];
return versionText?.split('.').map(each => Number(each));
}
async function getInstalledExtensions(root: string): Promise<InstalledExtension[]> {
try {
const entries = await readdir(root, { withFileTypes: true });
const candidates: Promise<InstalledExtension | undefined>[] = entries.map(async (entry) => {
if (!entry.isDirectory()) {
return undefined;
}
const version: number[] | undefined = tryParseVersion(entry.name);
if (!version) {
return undefined;
}
const extensionPath: string = join(root, entry.name);
for (const folder of foldersToCopy) {
const info = await stat(join(extensionPath, folder)).catch(() => undefined);
if (!info?.isDirectory()) {
return undefined;
}
}
const info = await stat(extensionPath);
return {
path: extensionPath,
version,
modified: info.mtimeMs
};
});
const found = await Promise.all(candidates);
return found.filter((entry): entry is InstalledExtension => entry !== undefined);
} catch {
return [];
}
}
async function findLatestInstalledExtension(providedPath?: string): Promise<string> {
if (providedPath) {
return providedPath;
}
const searchRoots: string[] = [
join(homedir(), '.vscode', 'extensions'),
join(homedir(), '.vscode-insiders', 'extensions'),
join(homedir(), '.vscode-server', 'extensions'),
join(homedir(), '.vscode-server-insiders', 'extensions')
];
const installed: InstalledExtension[] = (await Promise.all(searchRoots.map(each => getInstalledExtensions(each)))).flat();
if (!installed.length) {
throw new Error(`Unable to find an installed C/C++ extension under ${searchRoots.join(' or ')}.`);
}
installed.sort((left, right) => compareVersions(right.version, left.version) || right.modified - left.modified);
return installed[0].path;
}
export async function main(sourcePath = $args[0]) {
console.log(heading('Copy installed extension binaries'));
const installedExtensionPath: string = await findLatestInstalledExtension(sourcePath);
note(`Using installed extension at ${installedExtensionPath}`);
for (const folder of foldersToCopy) {
const source: string = join(installedExtensionPath, folder);
const destination: string = join($root, folder);
console.log(`Copying ${green(folder)} from ${source}`);
await rm(destination, { recursive: true, force: true });
await cp(source, destination, { recursive: true, force: true });
}
note(`Copied installed binaries into ${$root}`);
}
+1 -1
View File
@@ -19,7 +19,7 @@ export async function watch() {
verbose(`Watching ${source} folder for changes.`);
console.log('Press Ctrl+C to exit.');
// eslint-disable-next-line @typescript-eslint/no-unused-vars
for await (const event of watchFiles(source, { recursive: true })) {
for await (const event of watchFiles(source, {recursive: true })) {
await main();
}
}
@@ -3,6 +3,8 @@
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
/* eslint-disable no-prototype-builtins */
import { resolve } from 'path';
import { $root, read, write } from './common';
+5 -6
View File
@@ -75,7 +75,7 @@ filterStdio();
async function unitTests() {
await assertAnyFolder('dist/test/unit', `The folder '${$root}/dist/test/unit is missing. You should run ${brightGreen("yarn compile")}\n\n`);
const mocha = await assertAnyFile(["node_modules/.bin/mocha.cmd", "node_modules/.bin/mocha"], `Can't find the mocha testrunner. You might need to run ${brightGreen("yarn install")}\n\n`);
const result = spawnSync(mocha, [`${$root}/dist/test/unit/**/*.test.js`, '--timeout', '30000'], { stdio: 'inherit', shell: true });
const result = spawnSync(mocha, [`${$root}/dist/test/unit/**/*.test.js`, '--timeout', '30000'], { stdio:'inherit'});
verbose(`\n${green("NOTE:")} If you want to run a scenario test (end-to-end) use ${cmdSwitch('scenario=<NAME>')} \n\n`);
return result.status;
}
@@ -161,24 +161,23 @@ interface Input {
id: string;
type: string;
description: string;
options: CommentArray<{ label: string; value: string }>;
options: CommentArray<{label: string; value: string}>;
}
export async function getScenarioNames() {
return (await readdir(`${$root}/test/scenarios`).catch(returns.none)).filter(each => each !== 'Debugger');
}
export async function getScenarioFolder(scenarioName: string | undefined) {
export async function getScenarioFolder(scenarioName: string) {
return scenarioName ? resolve(`${$root}/test/scenarios/${(await getScenarioNames()).find(each => each.toLowerCase() === scenarioName.toLowerCase())}`) : undefined;
}
export async function list() {
console.log(`\n${cyan("Scenarios: ")}\n`);
const names = await getScenarioNames();
const max = names.reduce((max, each) => Math.max(max, each.length), 0);
const max = names.reduce((max, each) => Math.max(max, each), 0);
for (const each of names) {
const folder = await getScenarioFolder(each);
console.log(` ${green(each.padEnd(max))}: ${gray(folder || '')}`);
console.log(` ${green(each.padEnd(max))}: ${gray(await getScenarioFolder(each))}`);
}
}
+1 -2
View File
@@ -7,7 +7,6 @@
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"esModuleInterop": true,
"strictNullChecks": true
"esModuleInterop": true
}
}
+1 -10
View File
@@ -3,7 +3,7 @@
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { checkBinaries, checkCompiled, checkDTS, checkPrep, checkProposals, error, green } from './common';
import { checkBinaries, checkCompiled, checkDTS, checkPrep, error, green } from './common';
const quiet = process.argv.includes('--quiet');
export async function main() {
@@ -50,12 +50,3 @@ export async function dts() {
process.exit(1);
}
}
export async function proposals() {
let failing = false;
failing = (await checkProposals() && (quiet || error(`Issue with VSCode proposals. Run ${green('yarn prep')} to fix it.`))) || failing;
if (failing) {
process.exit(1);
}
}
-4
View File
@@ -97,10 +97,6 @@
"label": "MultirootDeadlockTest ",
"value": "${workspaceFolder}/test/scenarios/MultirootDeadlockTest/assets/test.code-workspace"
},
{
"label": "RunWithoutDebugging ",
"value": "${workspaceFolder}/test/scenarios/RunWithoutDebugging/assets/"
},
{
"label": "SimpleCppProject ",
"value": "${workspaceFolder}/test/scenarios/SimpleCppProject/assets/simpleCppProject.code-workspace"
+4 -4
View File
@@ -27,7 +27,7 @@
"editor.formatOnSave": true,
"editor.defaultFormatter": "vscode.json-language-features",
"editor.tabSize": 4,
"files.insertFinalNewline": false
"files.insertFinalNewline": true
},
"[jsonc]": {
"editor.formatOnSave": true,
@@ -37,12 +37,12 @@
},
"[typescript]": {
"editor.tabSize": 4,
"editor.defaultFormatter": "vscode.typescript-language-features",
"editor.defaultFormatter": "dbaeumer.vscode-eslint",
"editor.formatOnSave": true,
"files.insertFinalNewline": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "explicit"
"source.fixAll.eslint": true,
"source.organizeImports": true
},
},
"eslint.format.enable": true,
+11 -12
View File
@@ -29,24 +29,23 @@ jobs/**
cgmanifest.json
# ignore development files
eslint.config.js
tsconfig.json
test.tsconfig.json
ui.tsconfig.json
tslint.json
.eslintrc.js
webpack.config.js
tscCompileList.txt
gulpfile.js
.gitattributes
.gitignore
gulpfile.js
localized_string_ids.h
readme.developer.md
test.tsconfig.json
translations_auto_pr.js
tsconfig.json
tslint.json
tscCompileList.txt
ui.tsconfig.json
webpack.config.js
CMakeLists.txt
debugAdapters/install.lock*
typings/**
**/*.map
*.d.ts
import_edge_strings.js
localized_string_ids.h
translations_auto_pr.js
# ignore i18n language files
i18n/**
-31
View File
@@ -1,31 +0,0 @@
{
"name": "cpptools-yarn-bootstrap",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "cpptools-yarn-bootstrap",
"version": "1.0.0",
"license": "SEE LICENSE IN LICENSE.txt",
"devDependencies": {
"yarn": "1.22.22"
}
},
"node_modules/yarn": {
"version": "1.22.22",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/yarn/-/yarn-1.22.22.tgz",
"integrity": "sha1-rDRUnmqo5+rUY6dAfhxzkPYaZhA=",
"dev": true,
"hasInstallScript": true,
"license": "BSD-2-Clause",
"bin": {
"yarn": "bin/yarn.js",
"yarnpkg": "bin/yarn.js"
},
"engines": {
"node": ">=4.0.0"
}
}
}
}
-10
View File
@@ -1,10 +0,0 @@
{
"name": "cpptools-yarn-bootstrap",
"private": true,
"version": "1.0.0",
"description": "Install Yarn from internal npm feed for repository bootstrap.",
"license": "SEE LICENSE IN LICENSE.txt",
"devDependencies": {
"yarn": "1.22.22"
}
}
+1074 -669
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -61,7 +61,7 @@ File questions, issues, or feature requests for the extension.
If someone has already filed an issue that encompasses your feedback, please leave a 👍 or 👎 reaction on the issue to upvote or downvote it to help us prioritize the issue.
<br>
**[Quick survey](https://aka.ms/vcvscodesurvey)**
**[Quick survey](https://www.research.net/r/VBVV6C6)**
<br>
Let us know what you think of the extension by taking the quick survey.
@@ -75,4 +75,4 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
## Data and telemetry
This extension collects usage data and sends it to Microsoft to help improve our products and services. Collection of telemetry is controlled via the same setting provided by Visual Studio Code: `"telemetry.enableTelemetry"`. Read our [privacy statement](https://go.microsoft.com/fwlink/?LinkId=521839) to learn more.
This extension collects usage data and sends it to Microsoft to help improve our products and services. Collection of telemetry is controlled via the same setting provided by Visual Studio Code: `"telemetry.enableTelemetry"`. Read our [privacy statement](https://privacy.microsoft.com/en-us/privacystatement) to learn more.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+33
View File
@@ -0,0 +1,33 @@
{
"defaults": [
"cpfe",
"--wchar_t_keyword",
"--no_warnings",
"--rtti",
"--edge",
"--exceptions",
"--error_limit",
"25000",
"-D_EDG_COMPILER",
"-D_USE_DECLSPECS_FOR_SAL=1"
],
"source_file_format": "-f %s",
"expressions": [
{
"match": "^/I(.*)",
"replace": "-I\n$1"
},
{
"match": "^/D(.*)",
"replace": "-D$1"
},
{
"match": "^/AI(.*)",
"replace": "--using_directory\n$1"
},
{
"match": "^/dE--(.*)",
"replace": "--$1"
}
]
}
+15
View File
@@ -0,0 +1,15 @@
{
"defaults": [
"--pack_alignment",
"8",
"-Dunix=1",
"-D__unix__=1",
"-D__linux__=1",
"-D__arm__=1",
"-D__ARM_32BIT_STATE=1",
"-D__PTRDIFF_TYPE__=int",
"-D__SIZE_TYPE__=unsigned int",
"-D__WCHAR_TYPE__=long int"
],
"defaults_op" : "merge"
}
+15
View File
@@ -0,0 +1,15 @@
{
"defaults": [
"--pack_alignment",
"8",
"-Dunix=1",
"-D__unix__=1",
"-D__linux__=1",
"-D__aarch64__=1",
"-D__ARM_64BIT_STATE=1",
"-D__PTRDIFF_TYPE__=long int",
"-D__SIZE_TYPE__=long unsigned int",
"-D__WCHAR_TYPE__=int"
],
"defaults_op" : "merge"
}
+15
View File
@@ -0,0 +1,15 @@
{
"defaults": [
"--pack_alignment",
"8",
"-Dunix=1",
"-D__unix__=1",
"-D__linux__=1",
"-D__x86_64=1",
"-D__x86_64__=1",
"-D__PTRDIFF_TYPE__=long int",
"-D__SIZE_TYPE__=long unsigned int",
"-D__WCHAR_TYPE__=int"
],
"defaults_op" : "merge"
}
+15
View File
@@ -0,0 +1,15 @@
{
"defaults": [
"--pack_alignment",
"8",
"-Dunix=1",
"-D__unix__=1",
"-D__linux__=1",
"-D__i386=1",
"-D__i386__=1",
"-D__PTRDIFF_TYPE__=int",
"-D__SIZE_TYPE__=unsigned int",
"-D__WCHAR_TYPE__=long int"
],
"defaults_op" : "merge"
}
+15
View File
@@ -0,0 +1,15 @@
{
"defaults": [
"--pack_alignment",
"8",
"-Dunix=1",
"-D__unix__=1",
"-D__linux__=1",
"-D__arm__=1",
"-D__ARM_32BIT_STATE=1",
"-D__PTRDIFF_TYPE__=int",
"-D__SIZE_TYPE__=unsigned int",
"-D__WCHAR_TYPE__=long int"
],
"defaults_op" : "merge"
}
+15
View File
@@ -0,0 +1,15 @@
{
"defaults": [
"--pack_alignment",
"8",
"-Dunix=1",
"-D__unix__=1",
"-D__linux__=1",
"-D__aarch64__=1",
"-D__ARM_64BIT_STATE=1",
"-D__PTRDIFF_TYPE__=long int",
"-D__SIZE_TYPE__=long unsigned int",
"-D__WCHAR_TYPE__=int"
],
"defaults_op" : "merge"
}
+15
View File
@@ -0,0 +1,15 @@
{
"defaults": [
"--pack_alignment",
"8",
"-Dunix=1",
"-D__unix__=1",
"-D__linux__=1",
"-D__x86_64=1",
"-D__x86_64__=1",
"-D__PTRDIFF_TYPE__=long int",
"-D__SIZE_TYPE__=long unsigned int",
"-D__WCHAR_TYPE__=int"
],
"defaults_op" : "merge"
}
+15
View File
@@ -0,0 +1,15 @@
{
"defaults": [
"--pack_alignment",
"8",
"-Dunix=1",
"-D__unix__=1",
"-D__linux__=1",
"-D__i386=1",
"-D__i386__=1",
"-D__PTRDIFF_TYPE__=int",
"-D__SIZE_TYPE__=unsigned int",
"-D__WCHAR_TYPE__=long int"
],
"defaults_op" : "merge"
}
+14
View File
@@ -0,0 +1,14 @@
{
"defaults": [
"--pack_alignment",
"8",
"-D__APPLE__=1",
"-D__MACH__=1",
"-D__arm__=1",
"-D__ARM_32BIT_STATE=1",
"-D__PTRDIFF_TYPE__=int",
"-D__SIZE_TYPE__=unsigned int",
"-D__WCHAR_TYPE__=long int"
],
"defaults_op" : "merge"
}
+14
View File
@@ -0,0 +1,14 @@
{
"defaults": [
"--pack_alignment",
"8",
"-D__APPLE__=1",
"-D__MACH__=1",
"-D__aarch64__=1",
"-D__ARM_64BIT_STATE=1",
"-D__PTRDIFF_TYPE__=long int",
"-D__SIZE_TYPE__=long unsigned int",
"-D__WCHAR_TYPE__=int"
],
"defaults_op" : "merge"
}
+14
View File
@@ -0,0 +1,14 @@
{
"defaults": [
"--pack_alignment",
"8",
"-D__APPLE__=1",
"-D__MACH__=1",
"-D__x86_64=1",
"-D__x86_64__=1",
"-D__PTRDIFF_TYPE__=long int",
"-D__SIZE_TYPE__=long unsigned int",
"-D__WCHAR_TYPE__=int"
],
"defaults_op" : "merge"
}
+14
View File
@@ -0,0 +1,14 @@
{
"defaults": [
"--pack_alignment",
"8",
"-D__APPLE__=1",
"-D__MACH__=1",
"-D__i386=1",
"-D__i386__=1",
"-D__PTRDIFF_TYPE__=int",
"-D__SIZE_TYPE__=unsigned int",
"-D__WCHAR_TYPE__=long int"
],
"defaults_op" : "merge"
}
+14
View File
@@ -0,0 +1,14 @@
{
"defaults": [
"--pack_alignment",
"8",
"-D__APPLE__=1",
"-D__MACH__=1",
"-D__arm__=1",
"-D__ARM_32BIT_STATE=1",
"-D__PTRDIFF_TYPE__=int",
"-D__SIZE_TYPE__=unsigned int",
"-D__WCHAR_TYPE__=long int"
],
"defaults_op" : "merge"
}
+14
View File
@@ -0,0 +1,14 @@
{
"defaults": [
"--pack_alignment",
"8",
"-D__APPLE__=1",
"-D__MACH__=1",
"-D__aarch64__=1",
"-D__ARM_64BIT_STATE=1",
"-D__PTRDIFF_TYPE__=long int",
"-D__SIZE_TYPE__=long unsigned int",
"-D__WCHAR_TYPE__=int"
],
"defaults_op" : "merge"
}
+14
View File
@@ -0,0 +1,14 @@
{
"defaults": [
"--pack_alignment",
"8",
"-D__APPLE__=1",
"-D__MACH__=1",
"-D__x86_64=1",
"-D__x86_64__=1",
"-D__PTRDIFF_TYPE__=long int",
"-D__SIZE_TYPE__=long unsigned int",
"-D__WCHAR_TYPE__=int"
],
"defaults_op" : "merge"
}
+14
View File
@@ -0,0 +1,14 @@
{
"defaults": [
"--pack_alignment",
"8",
"-D__APPLE__=1",
"-D__MACH__=1",
"-D__i386=1",
"-D__i386__=1",
"-D__PTRDIFF_TYPE__=int",
"-D__SIZE_TYPE__=unsigned int",
"-D__WCHAR_TYPE__=long int"
],
"defaults_op" : "merge"
}
+60 -251
View File
@@ -3,7 +3,7 @@
"poslední řádek souboru končí bez nového řádku",
"poslední řádek souboru končí zpětným lomítkem",
"Soubor #include %sq obsahuje sám sebe.",
"Nedostatek paměti. Zvažte povolení 64bitového modulu IntelliSense a zvýšení limitu paměti IntelliSense v nastaveních.",
"nedostatek paměti",
null,
"nezavřený komentář na konci souboru",
"Nerozpoznaný token",
@@ -69,7 +69,7 @@
"očekával se znak }",
"převod celého čísla vedl ke změně znaménka",
"převod celého čísla vedl ke zkrácení",
"Neúplný typ %t není dovolený.",
"neúplný typ není dovolený",
"operand sizeof nesmí být bitové pole",
null,
null,
@@ -163,7 +163,7 @@
"Nerozpoznaná direktiva #pragma",
null,
"Nepodařilo se otevřít dočasný soubor %sq: %s2",
null,
"Název adresáře dočasných souborů je moc dlouhý (%sq).",
"příliš málo argumentů ve volání funkce",
"neplatná plovoucí konstanta",
"Argument typu %t1 je nekompatibilní s parametrem typu %t2.",
@@ -301,7 +301,7 @@
"Nedá se určit, která instance %n byla zamýšlená.",
"Ukazatel na vázanou funkci se dá použít jenom k volání funkce.",
"Název typedef už je deklarovaný (se stejným typem).",
null,
"%n už je definovaný.",
null,
"Žádná instance %n neodpovídá seznamu argumentů.",
"Definice typu není povolená v deklaraci návratového typu funkce.",
@@ -392,7 +392,7 @@
"Funkce main se zřejmě nevolala nebo nedošlo k převzetí její adresy.",
"Nový inicializátor se nedá specifikovat pro pole.",
"Členská funkce %no se nemůže deklarovat mimo svoji třídu.",
null,
"Ukazatel na nekompletní typ třídy %t není povolený.",
"Odkaz na místní proměnnou vnější funkce není povolený.",
"Funkce s jedním argumentem se použila pro příponu %sq (anachronizmus).",
null,
@@ -832,7 +832,7 @@
"%n nemá žádný odpovídající operátor delete%s (který se má volat, pokud dojde k výjimce během inicializace přiděleného objektu).",
"Podpora pro umístění operátoru delete je vypnutá.",
"Žádný odpovídající operátor delete není viditelný.",
"Ukazatel nebo odkaz na nekompletní typ %t není povolený.",
"Ukazatel nebo odkaz na nekompletní typ není povolený.",
"Neplatná částečná specializace %n už je plně specializovaný.",
"nekompatibilní specifikace výjimek",
"Vrací se odkaz na místní proměnnou.",
@@ -853,7 +853,7 @@
"Typ přetypování musí být aritmetický, výčtový nebo ukazatel.",
"Výraz musí být ukazatelem na kompletní typ objektu.",
null,
null,
"Netypový argument částečné specializace musí být názvem netypového parametru nebo konstantou.",
"Návratový typ není stejný jako návratový typ %t přepsané virtuální funkce %no.",
"Možnost guiding_decls se dá použít jenom při kompilaci C++.",
"Částečná specializace šablony třídy se musí deklarovat v oboru názvů, kterého je členem.",
@@ -1134,7 +1134,7 @@
"Prázdný seznam přepisovačů se musí kompletně vynechat.",
"Očekával se operand asm.",
"Očekávalo se přepsání registru.",
"Atribut format vyžaduje parametr ellipsis (tři tečky) nebo sadu parametrů.",
"Atribut format vyžaduje parametr tři tečky.",
"První argument náhrady není prvním argumentem proměnné.",
"Index argumentu formátu je větší než počet parametrů.",
"Argument formátu není řetězcového typu.",
@@ -1410,7 +1410,7 @@
"Striktní režim je nekompatibilní se zpracováním oboru názvů std jako aliasu pro globální obor názvů.",
"v rozšíření makra %s %p",
"<NEZNÁMÝ>",
null,
"",
"[rozšíření makra %d není zobrazené]",
"v rozšíření makra v %p",
"neplatný název symbolického operandu %sq",
@@ -1444,7 +1444,7 @@
"__real a __imag se dají použít jenom u komplexních hodnot.",
"__real/__imag se použilo na reálnou hodnotu.",
"%n se deklarovalo jako zastaralé (%sq)",
null,
"neplatná změna definice %nd",
"Došlo k použití dllimport/dllexport u člena nepojmenovaného oboru názvů.",
"Klíčové slovo __thiscall se může vyskytovat jenom u deklarací nestatických členských funkcí.",
"Klíčové slovo __thiscall není u funkce s parametrem tři tečky povolené.",
@@ -1828,7 +1828,7 @@
"Funkce auto vyžaduje ukončovací návratový typ.",
"Šablona člena nemůže mít specifikátor pure.",
"Řetězcový literál je příliš dlouhý nadpočetné znaky se ignorují.",
null,
"Možnost řízení klíčového slova nullptr se dá použít jenom při kompilaci C++.",
"Došlo k převodu std::nullptr_t na bool.",
null,
null,
@@ -2641,7 +2641,7 @@
"inicializátor pole %nd není konstantní výraz",
"počet omezení operandů musí být v každém řetězci omezení stejný",
"řetězec omezení obsahuje příliš alternativních omezení, takže nešlo zkontrolovat všechna",
null,
"volání prostřednictvím nekompletní třídy %t povede vždycky k chybě při vytváření instance",
"k decltype(auto) nejde přidat kvalifikátory typu",
"init-capture %nod se tu nedá zachytit",
"neplatný netypový argument šablony typu %t",
@@ -2711,7 +2711,7 @@
"Pokus o přístup přes nulový ukazatel na člen (datový člen)",
"Porovnání ukazatele s hodnotou void nebo ukazatelem na funkci není standardní.",
"Nepovedlo se inicializovat metadata.",
"Neplatné přetypování mezi základní a odvozenou třídou (skutečný typ odvozené třídy je %t)",
"Neplatné přetypování mezi základní a odvozenou třídou (úplný typ třídy je %t).",
"Neplatný přístup k %n v objektu s úplným typem %t.",
"__auto_type tady není povolený.",
"__auto_type nepovoluje víc deklarátorů.",
@@ -2953,9 +2953,9 @@
"Neplatná hodnota sady pragma %s pro funkci s omezením AMP",
"Překrývající se specifikátory omezení nejsou povolené.",
"Specifikátory omezení destruktoru musejí pokrývat sjednocení specifikátorů omezení všech konstruktorů.",
"error",
null,
"Pro nostdlib se vyžaduje aspoň jedno nucené použití.",
"typ chyby",
null,
null,
null,
null,
@@ -3209,7 +3209,7 @@
"Explicitní volání destruktoru není povolené v konstantním výrazu.",
"Operátor čárky nezadané v závorkách ve výrazu dolního indexu pole je zastaralý.",
"Počet dynamicky přidělených elementů (%d) pro inicializátor je moc malý.",
null,
"Nestálý operand pro výraz %s je zastaralý.",
"Použití výsledku přiřazení do nestálého skalárního objektu je zastaralé.",
"Nestálý cílový typ pro složený výraz přiřazení je zastaralý.",
"Nestálý parametr funkce je zastaralý.",
@@ -3230,8 +3230,8 @@
"druhá shoda je %t",
"Atribut availability, který se tady používá, se ignoruje.",
"Výraz inicializátoru podle C++20 v příkazu for založeném na rozsahu není v tomto režimu standardní.",
"co_await se může vztahovat jen na příkaz for založený na rozsahu",
"nelze odvodit typ rozsahu v příkazu for založeném na rozsahu",
"co_await se může vztahovat jen na příkaz for založený na rozsahu.",
"Typ rozsahu ve smyčce for založené na rozsahu se nedá vyvodit.",
"Vložené proměnné jsou funkce standardu C++17.",
"Destrukční operátor delete vyžaduje jako první parametr %t.",
"Destrukční operátor delete nemůže mít parametry jiné než std::size_t a std::align_val_t.",
@@ -3249,7 +3249,7 @@
"Nepovedlo se nahradit argumenty %T pro concept-id.",
"Pro argumenty %T je koncept false.",
"Klauzule requires tady není povolena (nejedná se o funkci se šablonami).",
"koncept",
"Šablona konceptu",
"Klauzule requires není kompatibilní s %nfd.",
"Očekával se atribut.",
null,
@@ -3272,17 +3272,17 @@
"%sq není importovatelné záhlaví.",
"Nelze importovat modul bez názvu.",
"Modul nemůže mít závislost rozhraní sám na sebe.",
"%m už je naimportovaný",
"Modul %sq je importovaný.",
"Soubor modulu",
"Nepodařilo se najít soubor modulu pro modul %sq.",
"Soubor modulu %sq se nepovedlo naimportovat.",
null,
"Očekávalo se %s1, ale našlo se %s2.",
"Při otevírání souboru modulu %sq",
"Neznámý název oddílu %sq",
null,
null,
null,
null,
"neznámý soubor modulu",
"soubor modulu s importovatelnou hlavičkou",
"soubor modulu EDG",
"soubor modulu IFC",
"neočekávaný soubor modulu",
"Typ druhého operandu %t2 musí mít stejnou velikost jako %t1.",
"Typ musí být možné triviálně kopírovat.",
@@ -3347,7 +3347,7 @@
"nejde najít záhlaví %s, které se má importovat",
"více než jeden soubor v seznamu souborů modulu odpovídá %s",
"soubor modulu, který se našel pro %s, je pro jiný modul",
null,
"libovolný druh souboru modulu",
"nejde přečíst soubor modulu",
"předdefinovaná funkce není k dispozici, protože typ char8_t se nepodporuje s aktuálními možnostmi",
null,
@@ -3364,15 +3364,15 @@
"Výraz musí mít aritmetický typu, typ nevymezeného výčtu nebo typ ukazatele, má ale typ %t.",
"Výraz musí mít typ ukazatele, má ale typ %t.",
"Operátor -> nebo ->* se používá pro %t namísto typu ukazatele.",
null,
"Nekompletní typ třídy %t není povolený.",
"Nepovedlo se interpretovat rozložení bitů pro tento cíl kompilace.",
"Žádný odpovídající operátor pro operátor IFC %sq",
"Žádná odpovídající konvence volání pro konvenci volání IFC %sq",
"%m obsahuje nepodporované konstruktory",
"Modul %sq obsahuje nepodporované konstrukce.",
"Nepodporovaná konstrukce IFC: %sq",
"__is_signed už není klíčové slovo.",
"Rozměr pole musí mít konstantní celočíselnou hodnotu bez znaménka.",
null,
"Soubor IFC %sq má nepodporovanou verzi %d1.%d2.",
"Moduly se v tomto režimu nepovolily.",
"Název modulu nesmí obsahovat slovo import.",
"Název modulu nesmí obsahovat slovo module.",
@@ -3417,35 +3417,35 @@
"Příkazy if consteval a if not consteval nejsou v tomto režimu standardní.",
"Vynechání () v deklarátoru výrazu lambda je v tomto režimu nestandardní.",
"Když se vynechá seznam parametrů výrazu lambda, nepodporuje se klauzule requires na konci.",
"požádáno o neplatný oddíl %m",
"byl požadován %m nedefinovaný oddíl (pravděpodobně %sq)",
"Požádalo se o neplatný oddíl modulu %sq.",
"Požádalo se nedefinovaný oddíl modulu %sq1 (předpokládalo se, že je to %sq2).",
null,
null,
"pozice %u1 v souboru %m (relativní pozice %u2) požadovaná pro oddíl %sq, která přetéká konec svého oddílu",
"pozice %u1 v souboru %m (relativní pozice %u2) požadována pro oddíl %sq, která je nesprávně zarovnána s elementy oddílů",
"z dílčího pole %sq (relativní pozice k uzlu %u)",
"Modul %sq1 pozice souboru %u1 (relativní pozice %u2) požadovaná pro oddíl %sq2, který přetéká konec svého oddílu",
"Modul %sq1 pozice souboru %u1 (relativní pozice %u2) požadována pro oddíl %sq2, který je nesprávně zarovnán s elementy oddílů",
"z dílčího pole %sq (relativní pozice k uzlu %d)",
"Z oddílu %sq elementu %u1 (pozice souboru %u2, relativní pozice %u3)",
"Atributy výrazů lambda jsou funkcí C++23.",
"Atributy výrazu lambda tady nejsou standardní.",
"Identifikátor %sq by bylo možné zaměnit za vizuálně podobné %p.",
"Tento komentář obsahuje podezřelé řídicí znaky formátování Unicode.",
"Tento řetězec obsahuje řídicí znaky formátování Unicode. To může způsobit neočekávané chování modulu runtime.",
"při zpracovávání %m došlo k potlačení %u upozornění",
"při zpracování %m došlo k potlačení %u upozornění",
"při zpracování %m došlo k %u potlačené chybě",
"při zpracování %m došlo k(e) %u potlačeným chybám",
"Došlo k potlačení %d1 upozornění při zpracovávání modulu %sq1.",
"Došlo k potlačení %d1 upozornění při zpracovávání modulu %sq1.",
"Došlo k potlačení %d1 chyby při zpracovámodulu %sq1.",
"Došlo k potlačení %d1 chyb při zpracovávání modulu %sq1.",
"včetně",
"potlačeno",
"Virtuální členská funkce nemůže mít explicitní parametr this.",
"Převzetí adresy funkce s explicitním this vyžaduje kvalifikovaný název.",
"Vytvoření adresy funkce s explicitním this vyžaduje operátor &.",
"řetězcový literál nelze použít k inicializaci člena flexibilního pole.",
"Reprezentace IFC definice funkce %sq je neplatná.",
null,
null,
null,
null,
null,
null,
"chybí reprezentace IFC definice funkce %sq",
"graf UniLevel IFC se nepoužil k zadání parametrů.",
"V grafu definice parametrů IFC byl zadán tento počet parametrů: %d1, zatímco deklarace IFC určovala tento počet parametrů: %d2.",
"V grafu definice parametrů IFC byl zadán %d1 parametr, zatímco deklarace IFC určovala tento počet parametrů: %d2.",
"V grafu definice parametrů IFC byl zadán tento počet parametrů: %d1, zatímco deklarace IFC určovala %d2 parametr.",
"Chybí reprezentace IFC definice funkce %sq.",
"modifikátor funkce se nevztahuje na deklaraci členské šablony.",
"výběr člena zahrnuje příliš mnoho vnořených anonymních typů",
"mezi operandy není žádný společný typ",
@@ -3466,23 +3466,23 @@
"duplicitní kvalifikátor asm",
"bitové pole s nekompletním typem výčtu nebo neprůhledný výčet s neplatným základním typem",
"došlo k pokusu o vytvoření elementu z oddílu IFC %sq pomocí indexu do oddílu IFC %sq2.",
"oddíl %sq určil svou velikost položky jako %u1, když bylo očekáváno %u2.",
"při zpracování %m byl zjištěn neočekávaný požadavek IFC",
"oddíl %sq určil svou velikost položky jako %d1, když bylo očekáváno %d2.",
"při zpracování modulu %sq1 byl zjištěn neočekávaný požadavek IFC.",
"podmínka selhala na řádku %d v %s1: %sq2",
"atomické omezení závisí na sobě",
"Funkce noreturn má návratový typ, který není void.",
"oprava byla provedena vyřazením parametru %sq (v relativním indexu %u).",
"oprava byla provedena vyřazením parametru %sq (v relativním indexu %d).",
"výchozí argument šablony nelze zadat pro definici členské šablony mimo její třídu.",
"při rekonstrukci entity se zjistil neplatný název identifikátoru IFC %sq.",
null,
"neplatná hodnota řazení %m",
"neplatná hodnota řazení modulu %sq",
"šablona funkce načtená z modulu IFC byla nesprávně parsována jako %nd.",
"nepodařilo se načíst odkaz na entitu IFC v %m",
"nepovedlo se načíst odkaz na entitu IFC v modulu %sq.",
"Z oddílu %sq elementu %u1 (pozice souboru %u2, relativní pozice %u3)",
"zřetězené specifikátory nejsou povolené pro typ třídy s netriviálním destruktorem.",
"Explicitní deklarace specializace nemůže být deklarací typu friend.",
"typ std::float128_t se nepodporuje. místo toho se použije std::float64_t",
null,
"typ std::bfloat16_t se nepodporuje. místo toho se použije std::float32_t",
"vodítko pro dedukce se nedá deklarovat pro šablonu aliasu %no",
"%n bylo deklarováno jako nedostupné.",
"%n bylo deklarováno jako nedostupné (%sq).",
@@ -3501,14 +3501,14 @@
"nerozpoznaný režim výstupu (musí to být text, sarif): %s",
"možnost c23_typeof se dá použít jenom při kompilaci C",
"neplatné číslo verze Clang: %s",
null,
null,
null,
"řetězec IFC obsahuje neočekávaný znak null (nula) v modulu %sq",
"bylo použito %d1 z %d2 bajtů",
"z informací o řetězci v oddílu %sq, elementu %u1 (pozice souboru %u2, relativní pozice %u3)",
"nejde vyhodnotit inicializátor pro člena flexibilního pole",
"výchozí inicializátor bitového pole je funkce C++20",
"příliš mnoho argumentů v seznamu argumentů šablony v %m",
"příliš mnoho argumentů v seznamu argumentů šablony v modulu %sq",
"zjištěno pro argument šablony reprezentovaný %sq elementem %u1 (pozice souboru %u2, relativní pozice %u3)",
"příliš málo argumentů v seznamu argumentů šablony v %m",
"příliš málo argumentů v seznamu argumentů šablony v modulu %sq",
"zjištěno při zpracování seznamu argumentů šablony reprezentovaného %sq elementem %u1 (pozice souboru %u2, relativní pozice %u3)",
"převod z vymezeného výčtového typu %t je nestandardní",
"zrušení přidělení se neshoduje s druhem přidělení (jedno je pro pole a druhé ne)",
@@ -3517,8 +3517,8 @@
"__make_unsigned je kompatibilní jenom s typem integer a výčtovým typem, které nejsou typu bool",
"vnitřní název %sq bude odsud považován za běžný identifikátor",
"přístup k neinicializovanému podobjektu v indexu %d",
"číslo řádku IFC (%u1) přeteče maximální povolenou hodnotu (%u2) %m",
"%m požaduje element %u oddílu %sq; tato pozice v souboru překračuje maximální reprezentovatelnou hodnotu",
"Číslo řádku IFC (%u1) přetéká maximální povolenou hodnotu (%u2), modul %sq.",
"Modul %sq1 požadoval element %u oddílu %sq2. Tato pozice souboru překračuje maximální reprezentovatelnou hodnotu.",
"nesprávný počet argumentů",
"Omezení kandidáta %n není splněno.",
"Počet parametrů %n neodpovídá volání.",
@@ -3551,201 +3551,10 @@
"Soubor IFC %sq nejde zpracovat.",
"Verze IFC %u1.%u2 není podporována.",
"Architektura IFC %sq není kompatibilní s aktuální cílovou architekturou.",
"%m žádá o index %u nepodporovaného oddílu odpovídajícího %sq",
"Modul %sq1 požaduje index %u nepodporovaného oddílu odpovídajícího %sq2.",
"Číslo parametru %d z %n má typ %t, který nelze dokončit.",
"Číslo parametru %d z %n má neúplný typ %t.",
"Číslo parametru %d z %n má abstraktní typ %t.",
"Strukturované vazby jsou funkcí C++17.",
"Zachycení strukturovaných vazeb je funkce C++20.",
"Operand splicer má typ %t místo std::meta::info.",
"operand (odraz pro %r) není reflexe typu",
"nekonstantní operand spliceru",
"použití %t namísto std::string_view (= std::basic_string_view<char>)",
"std::string_view, který se tady používá, není konzistentní s použitím v jiných vnitřních funkcích",
"definice std::string_view neodpovídá předpokladům reflexe (žádné základní třídy a datoví členové pro ukazatele a délku)",
"reflexe není reflexe konstantní hodnoty",
"pole s nulovou délkou se nedá vytvořit",
"délka (%d1) předaná make_constexpr_array je větší než počet dostupných elementů (%d2)",
"definice std::meta::infovec neodpovídá předpokladům reflexe (žádné základní třídy a datoví členové pro ukazatele, délku a kapacitu)",
"chybná reflexe (%r) pro spojení výrazů",
"%n již byl definován (předchozí definice %p)",
"objekt infovec není inicializovaný",
"extrakce typu %t1 není kompatibilní s danou odezvou (entita s typem %t2)",
"reflektování sady přetížení není v tuto chvíli povolené",
"tato vnitřní funkce vyžaduje reflexi pro instanci šablony",
"nekompatibilní typy %t1 a %t2 pro operátora",
"neplatná reflexe pro vnitřní metafunkce",
"vnitřní metafunkce vyžaduje reflexi pro člena třídy",
"třída se nedá odvodit ze sjednocení",
"nejde odvodit z třídy s flexibilním členem pole",
"reflexe null",
"alias oboru názvů",
"reflexe (podrobnosti nejsou k dispozici)",
"chybná reflexe (%r) pro argument šablony v std::meta::substitute",
"volání std::meta::substitute (pro %r) bylo neúspěšné",
"hodnota reflexe odkazuje na neaktivní entitu",
"spojení výrazů musí spojovat konstantní hodnotu, proměnnou nebo funkci",
"spojení členského přístupu musí spojovat datový člen nebo členská funkce",
"člen %nd není přímým ani nepřímým členem %t",
"název %sq neurčuje známý znak Unicode",
"neukončený pojmenovaný znak Unicode řídicí sekvence",
"Znak se nemůže vyskytovat v názvu Unicode.",
"prázdný pojmenovaný znak Unicode řídicí sekvence",
"očekávalo se '[:'",
"očekávalo se ':]'",
"Výraz lambda nemůže být současně mutable i static.",
"Výraz lambda static je nestandardní.",
"Výraz lambda static musí mít prázdnou specifikaci zachycení.",
"Jednotka hlavičky EDG IFC",
"EDG IFC",
"Pro aktuální jednotku překladu se nepovedlo vygenerovat soubor IFC.",
"Jedna nebo více entit se v tuto chvíli nedá zapsat do souboru IFC.",
"explicit(bool) je funkcí C++20",
"prvním argumentem musí být ukazatel na celé číslo (integer), výčet (enum) nebo podporovaný typ s plovoucí desetinnou čárkou",
"moduly C++ nelze použít při kompilaci více jednotek překladu",
"Moduly C++ se nedají použít s funkcí export před C++11",
"token IFC %sq se nepodporuje",
"atribut pass_object_size je platný pouze pro parametry deklarací funkce",
"argument %sq atributu %d1 musí být hodnota mezi 0 a %d2",
"ref-qualifier se tady ignoruje",
"neplatný typ elementu NEON vector %t",
"neplatný typ elementu NEON polyvector %t",
"neplatný typ elementu škálovatelného vektoru %t",
"neplatný počet elementů řazené kolekce členů pro typ škálovatelného vektoru",
"NEON vector/polyvector musí mít šířku 64 nebo 128 bitů",
"typ %t bez velikosti není povolený",
"objekt bez velikosti typu %t nemůže být inicializovaný hodnotou",
"v rámci oboru %u byl nalezen neočekávaný index deklarace null",
"musí být zadán název modulu pro mapování souboru modulu odkazující na soubor %sq",
"přijata hodnota null indexu, kde byl očekáván uzel v oddílu IFC %sq",
"%nd nemůže mít typ %t.",
"kvalifikátor ref je v tomto režimu nestandardní",
"příkaz for založený na rozsahu není v tomto režimu standardní",
"auto jako specifikátor typu je v tomto režimu nestandardní",
"soubor modulu %sq se nepovedlo naimportovat kvůli poškození souboru",
"IFC",
"tokeny cizího původu vloženy po deklaraci člena",
"chybný obor vkládání (%r)",
"očekávala se hodnota typu std::string_view, ale získala se hodnota %t",
"tokeny cizího původu vloženy po příkazu",
"tokeny cizího původu vloženy po deklaraci",
"přetečení hodnoty indexu řazené kolekce členů (%d)",
">> výstup z std::meta::__report_tokens",
">> koncový výstup z std::meta::__report_tokens",
"není v kontextu s proměnnými parametrů",
"řídicí sekvence s oddělovači musí mít aspoň jeden znak",
"neukončená řídicí sekvence s oddělovači",
"konstanta obsahuje adresu místní proměnné",
"strukturovanou vazbu nejde deklarovat jako consteval",
"%no konfliktů s importovanou deklarací %nd",
"znak nelze reprezentovat ve zvoleném typu znaku",
"poznámka se nemůže objevit v kontextu předpony atributu using",
"typ poznámky %t není literálový typ",
"Atribut ext_vector_type se vztahuje pouze na logické hodnoty (bool), celočíselné typy (integer) nebo typy s plovoucí desetinnou čárkou (floating-point).",
"více specifikátorů do stejného sjednocení není povoleno",
"testovací zpráva",
"Aby se dalo použít --ms_c++23, musí být verze Microsoftu, která se emuluje, aspoň 1943.",
"neplatný aktuální pracovní adresář: %s",
"atribut cleanup v rámci funkce constexpr se v současné době nepodporuje",
"atribut assume se dá použít jenom na příkaz null",
"předpoklad selhal",
"šablony proměnných jsou funkcí C++14",
"nelze přijmout adresu funkce s parametrem deklarovaným atributem pass_object_size",
"všechny argumenty musí mít stejný typ",
"konečné porovnání bylo %s1 %s2 %s3",
"příliš mnoho argumentů pro atribut %sq",
"řetězec mantissa neobsahuje platné číslo",
"chyba v pohyblivé desetinné čárce při vyhodnocování konstanty",
"ignorován dědičný konstruktor %n pro operace podobné kopírování/přesouvání",
"Nelze určit velikost souboru %s.",
"%s nejde přečíst.",
"vložit",
"Nerozpoznaný název parametru",
"Parametr byl zadán více než jednou.",
"__has_embed se nemůže objevit mimo #if",
"Národní prostředí LC_NUMERIC nelze nastavit na C.",
"Direktivy elifdef a elifndef nejsou v tomto režimu povolené a v textu, který se přeskočí, se ignorují.",
"Deklarace aliasu je v tomto kontextu nestandardní.",
"Cílová sada instrukcí ABI může přidělit nestatické členy v pořadí, které neodpovídá jejich pořadí deklarací, což není v jazyce C++23 a novějších standardní.",
"Jednotka rozhraní modulu EDG IFC",
"Jednotka oddílu modulu EDG IFC",
"Deklaraci modulu nelze z této jednotky překladu exportovat, pokud není vytvořen soubor rozhraní modulu.",
"Deklarace modulu se musí exportovat z této jednotky překladu, aby se vytvořil soubor rozhraní modulu.",
"Bylo požadováno generování souboru modulu, ale v jednotce překladu nebyl deklarován žádný modul.",
"nahrazení %T za %n neúspěšných omezení",
"%n není splněno pro %T",
"rozšíření #embed je příliš dlouhé pro inicializaci entity typu %t",
"operátor defined tady není povolený",
"%n není členem %t",
"zužující převod na podepsaný znak v datech #embed",
"operátor není povolený pro typy „vector of bool“",
"objekt je pro vyhodnocení konstanty příliš velký",
"dočasný objekt odkazující sám na sebe",
"lambda v tomto kontextu nemůže odkazovat na místní proměnnou nebo init-capture",
"parametr lambda nemůže skrýt explicitní zachycení",
"parametr šablony lambda nemůže skrýt explicitní zachycení",
"pro zpracování této jednotky překladu není k dispozici dostatek adresního prostoru",
"<undetermined type>",
"<undetermined constant>",
"<undetermined template>",
"nakonfigurovaná velikost %s je pro zadaný počet bitů řetězce mantissa a exponentu příliš malá",
"výraz",
"<expression>",
"bez názvu",
"<unnamed>",
"<error-type>",
"<unknown-type>",
"<something>",
"<null-type>",
"<no-init>",
"<zero-init>",
"bitová kopie: ",
"<bitwise-copy>",
"výsledek třídy přes konstruktor: ",
"<constructor-call>",
"<NULL expression>",
"<error>",
"<NULL routine>",
"<default>",
"parametr #",
" (o jednu úroveň výš)",
" o úroveň výše",
"dynamic-init: ",
"<error-constant>",
"stack-offset-of:",
"<implicit element> ",
" opakování ",
"celé číslo",
"výčet",
"vymezený výčet",
"aritmetické",
"non-bool arithmetic",
"ukazatel",
"typ nullptr",
"popisovač",
"handle-to-CLI-array",
"pointer-to-object",
"pointer-to-function",
"pointer-to-member",
"bool",
"bool-equivalent",
"třída",
"nestálý operand pro inkrementační výraz je zastaralý",
"nestálý operand pro dekrementační výraz je zastaralý",
"%n dřív deklarované bez atributu „indeterminate“",
"výchozí konstruktor pro %t je explicitní",
"nepodařilo se načíst definici %n v %m",
"nepodařilo se načíst inicializátor pro %n v %m",
"třída s názvem typedef pro účely propojení nemůže mít základní třídu",
"třída s názvem typedef pro účely propojení nemůže mít členskou funkci",
"třída s názvem typedef pro účely propojení nemůže mít vnořený typ jiný než typ výčtu nebo typ třídy bez uzávěru",
"třída s názvem typedef pro účely propojení nemůže obsahovat výraz lambda",
"třída s názvem typedef pro účely propojení nemůže mít nestatický datový člen s výchozím inicializátorem",
"deklarace člena statických dat není v anonymní třídě povolená",
"výsledek inicializátoru odkazuje na proměnnou dllimport",
"šablona s atributem no_specializations nemůže být specializovaná",
"„static“ je zde nestandardní",
"%nd byl dříve deklarován bez explicitního základu výčtu",
"Chybějící typename je tady nestandardní.",
"Zkrácená syntaxe šablony funkce není standardní pro vodítka dedukce"
"Zachycení strukturovaných vazeb je funkce C++20."
]
+61 -252
View File
@@ -3,7 +3,7 @@
"Die letzte Zeile von Dateien endet ohne Zeilenvorschub.",
"Die letzte Zeile von Dateien endet mit einem umgekehrten Schrägstrich.",
"Die #include-Datei \"%sq\" schließt sich selbst ein.",
"Es ist nicht genügend Arbeitsspeicher vorhanden. Erwägen Sie, die 64-Bit-IntelliSense-Engine zu aktivieren und das IntelliSense-Arbeitsspeicherlimit in den Einstellungen zu erhöhen.",
"Nicht genügend Arbeitsspeicher.",
null,
"Nicht geschlossener Kommentar am Ende der Datei",
"Unbekanntes Token",
@@ -69,7 +69,7 @@
"Es wurde eine \"}\" erwartet.",
"Die Ganzzahlkonvertierung führte zu einer Änderung des Vorzeichens.",
"Die Ganzzahlkonvertierung führte zu einer Kürzung.",
"Der unvollständige Typ „%t“ ist nicht zulässig.",
"Ein unvollständiger Typ ist nicht zulässig.",
"Der Operand von sizeof darf kein Bitfeld sein.",
null,
null,
@@ -163,7 +163,7 @@
"Unbekanntes #pragma.",
null,
"Die temporäre Datei \"%sq\" konnte nicht geöffnet werden: %s2",
null,
"Der Name des Verzeichnisses für temporäre Dateien ist zu lang (%sq).",
"Zu wenig Argumente im Funktionsaufruf.",
"Ungültige Gleitkommakonstante.",
"Das Argument vom Typ \"%t1\" ist mit dem Parameter vom Typ \"%t2\" inkompatibel.",
@@ -301,7 +301,7 @@
"Es kann nicht ermittelt werden, welche Instanz von \"%n\" beabsichtigt ist.",
"Ein Zeiger auf eine gebundene Funktion darf nur zum Aufrufen der Funktion verwendet werden.",
"Der typedef-Name wurde bereits deklariert (mit demselben Typ).",
null,
"%n wurde bereits definiert.",
null,
"Keine Instanz von %n stimmt mit der Argumentliste überein.",
"Die Typdefinition ist in der Deklaration des Funktionsrückgabetyps nicht zulässig.",
@@ -392,7 +392,7 @@
"Die Main-Funktion darf nicht aufgerufen werden, und ihre Adresse darf nicht verwendet werden.",
"Für ein Array darf keine neue Initialisierung angegeben werden.",
"Die Memberfunktion \"%no\" darf nicht außerhalb ihrer Klasse neu deklariert werden.",
null,
"Der Typ eines Zeigers auf eine unvollständige Klasse (%t) ist nicht zulässig.",
"Ein Verweis auf eine lokale Variable der einschließenden Funktion ist nicht zulässig.",
"Für Postfix \"%sq\" wird eine Funktion mit einem Argument verwendet (Anachronismus).",
null,
@@ -832,7 +832,7 @@
"\"%n\" weist keinen entsprechenden \"delete%s\"-Operator auf (der aufgerufen wird, wenn während der Initialisierung eines zugeordneten Objekts eine Ausnahme ausgelöst wird).",
"Die Unterstützung für das Löschen der Platzierung ist deaktiviert.",
"Es ist kein passender \"delete\"-Operator sichtbar.",
"Ein Zeiger oder Verweis auf den unvollständigen Typ „%t“ ist nicht zulässig.",
"Ein Zeiger oder Verweis auf einen unvollständigen Typ ist nicht zulässig.",
"Ungültige teilweise Spezialsierung; \"%n\" ist bereits vollständig spezialisiert.",
"Inkompatible Ausnahmespezifizierungen.",
"Ein Verweis auf die lokale Variable wird zurückgegeben.",
@@ -853,7 +853,7 @@
"Der Typ der Umwandlung muss arithmetisch, eine Enumeration oder ein Zeiger sein.",
"Der Ausdruck muss ein Zeiger auf einen vollständigen Objekttyp sein.",
null,
null,
"Ein Nichttyp-Argument mit einer teilweisen Spezialisierung muss der Name eines Nichttyp-Parameters oder einer Nichttyp-Konstante sein.",
"Der Rückgabetyp ist nicht identisch mit dem Rückgabetyp %t der überschriebenen virtuellen Funktion %no",
"Die guiding_decls-Option kann nur beim Kompilieren von C++ verwendet werden.",
"Eine teilweise Spezialisierung einer Klassenvorlage muss im Namespace deklariert sein, in dem diese Member ist.",
@@ -1134,7 +1134,7 @@
"Eine leere Überschreibungsliste muss komplett ausgelassen werden.",
"Es wurde ein ASM-Operand erwartet.",
"Es wurde eine zu überschreibende Registrierung erwartet.",
"Das Attribut „Format“ erfordert einen Auslassungspunkte-Parameter oder ein Parameterpaket",
"Das format-Attribut erfordert einen Auslassungszeichenparameter.",
"Das erste Ersetzungsargument ist nicht das erste Variablenargument.",
"Der Formatargumentindex ist größer als die Anzahl von Parametern.",
"Das Formatargument weist keinen Zeichenfolgentyp auf.",
@@ -1410,7 +1410,7 @@
"Der Strict-Modus ist mit dem Behandeln des Namespaces \"std\" als Alias für den globalen Namespace inkompatibel.",
"In Erweiterung von Makro \"%s\" %p",
"<UNBEKANNT>",
null,
"",
"[%d Makroerweiterungen werden nicht angezeigt.]",
"In Makroerweiterung bei %p",
"Ungültiger symbolischer Operandname \"%sq\".",
@@ -1444,7 +1444,7 @@
"__real und __imag können nur auf komplexe Werte angewendet werden.",
"__real/__imag wurde auf den tatsächlichen Wert angewendet.",
"%n wurde als veraltet deklariert (%sq)",
null,
"Ungültige Neudefinition von \"%nd\".",
"dllimport/dllexport wurde auf ein Member eines unbenannten Namespaces angewendet.",
"__thiscall kann nur in nicht statischen Memberfunktionsdeklarationen vorkommen.",
"__thiscall ist in einer Funktion mit Auslassungszeichenparameter nicht zulässig.",
@@ -1828,7 +1828,7 @@
"Für die auto-Funktion ist ein nachstehender Rückgabetyp erforderlich.",
"Eine Membervorlage kann nicht über einen reinen Spezifizierer verfügen",
"Zeichenfolgenliteral zu lang -- überschüssige Zeichen werden ignoriert",
null,
"Die Option zum Steuern des nullptr-Schlüsselworts kann nur beim Kompilieren von C++ verwendet werden.",
"std::nullptr_t wird in einen booleschen Wert konvertiert.",
null,
null,
@@ -2641,7 +2641,7 @@
"Der Feldinitialisierer für %nd ist kein konstanter Ausdruck.",
"Die Anzahl von Operandeneinschränkungen muss in jeder Einschränkungszeichenfolge gleich sein.",
"Die Einschränkungszeichenfolge enthält zu viele alternative Einschränkungen; es wurden nicht alle Einschränkungen überprüft.",
null,
"Der Aufruf über die unvollständige Klasse %t verursacht bei der Instanziierung immer einen Fehler.",
"\"decltype(auto)\" darf keine hinzugefügten Typqualifizierer aufweisen.",
"init-capture %nod kann hier nicht erfasst werden.",
"Ungültiges Nichttyp-Vorlagenargument vom Typ \"%t\".",
@@ -2711,7 +2711,7 @@
"Es wurde versucht, eine Pointer-to-Member-Funktion mit dem Wert NULL (Datenmember) zu dereferenzieren.",
"Das Vergleichen eines Zeigers mit \"void\" und eines Zeigers mit einer Funktion ist kein Standardvorgehen.",
"Fehler bei der Metadateninitialisierung.",
"Ungültige Umwandlung vom Basistyp zum abgeleiteten Typ (tatsächlicher abgeleiteter Klassentyp ist %t)",
"Ungültige Umwandlung aus Basis in abgeleitete Klasse (der vollständige Klassentyp ist \"%t\").",
"Ungültiger Zugriff auf %n im Objekt des vollständigen Typs %t.",
"\"__auto_type\" ist hier unzulässig.",
"\"__auto_type\" erlaubt nicht mehrere Deklaratoren.",
@@ -2953,9 +2953,9 @@
"Unzulässiger Wert für Pragmapaket \"%s\" für die auf AMP begrenzte Funktion.",
"Überlappende Einschränkungsspezifizierer sind unzulässig.",
"Die Einschränkungsspezifizierer des Destruktors müssen die Union der Einschränkungsspezifizierer für alle Konstruktoren abdecken.",
"Fehler",
null,
"Für \"nostdlib\" ist mindestens eine erzwungene Verwendung erforderlich.",
"Fehlertyp",
null,
null,
null,
null,
@@ -3209,7 +3209,7 @@
"Ein expliziter Destruktoraufruf ist in einem Konstantenausdruck nicht zulässig.",
"Ein nicht in Klammern gesetzter Kommaoperator im Unterskriptausdruck eines Arrays ist veraltet.",
"Die Anzahl dynamisch zugeordneter Elemente (%d) ist zu klein für den Initialisierer.",
null,
"Ein volatile-Operand für einen %s-Ausdruck ist veraltet.",
"Die Verwendung des Ergebnisses einer Zuweisung zu einem volatile-Skalarobjekt ist veraltet.",
"Ein volatile-Zieltyp für einen Verbundzuweisungsausdruck ist veraltet.",
"Ein volatile-Funktionsparameter ist veraltet.",
@@ -3230,8 +3230,8 @@
"Die andere Übereinstimmung lautet \"%t\".",
"Das hier verwendete Attribut \"availability\" wird ignoriert.",
"Die C++20-Initialisierungsanweisung in einer bereichsbasierten for-Anweisung entspricht in diesem Modus nicht dem Standard.",
"co_await kann nur auf eine bereichsbasierte for-Anweisung angewendet werden",
"Der Typ des Bereichs kann in einer bereichsbasierten for“-Anweisung nicht abgeleitet werden",
"co_await kann nur auf eine bereichsbasierte for-Anweisung angewendet werden.",
"Der Typ des Bereichs kann in einer bereichsbasierten for-Schleife nicht abgeleitet werden.",
"Inlinevariablen sind ein C++17-Feature.",
"Für eine \"operator delete\"-Funktion mit Zerstörung wird \"%t\" als erster Parameter benötigt.",
"Eine \"operator delete\"-Funktion mit Zerstörung kann nur die Parameter \"std::size_t\" und \"std::align_val_t\" aufweisen.",
@@ -3249,7 +3249,7 @@
"Fehler beim Ersetzen von Argumenten \"%T\" für \"concept-id\".",
"Das Konzept für die Argumente \"%T\" ist FALSE.",
"Eine requires-Klausel ist hier nicht zulässig (keine Funktion mit Vorlagen).",
"Konzept",
"Konzeptvorlage",
"Die requires-Klausel ist nicht mit \"%nfd\" kompatibel.",
"Es wurde ein Attribut erwartet.",
null,
@@ -3272,17 +3272,17 @@
"\"%sq\" ist kein importierbarer Header.",
"Ein Modul ohne Namen kann nicht importiert werden.",
"Ein Modul kann keine Schnittstellenabhängigkeit von sich selbst aufweisen.",
"%m wurde bereits importiert",
"Das Modul \"%sq\" wurde bereits importiert.",
"Moduldatei",
"Die Moduldatei für das Modul \"%sq\" wurde nicht gefunden.",
"Die Moduldatei \"%sq\" konnte nicht importiert werden.",
null,
"Erwartet wurde \"%s1\", stattdessen gefunden: \"%s2\".",
"beim Öffnen der Moduldatei \"%sq\"",
"Unbekannter Partitionsname \"%sq\".",
null,
null,
null,
null,
"Unbekannte Moduldatei",
"Importierbare Headermoduldatei",
"EDG-Moduldatei",
"IFC-Moduldatei",
"Unerwartete Moduldatei",
"Der Typ des zweiten Operanden, \"%t2\", muss die gleiche Größe aufweisen wie \"%t1\".",
"Der Typ muss trivial kopierbar sein.",
@@ -3347,7 +3347,7 @@
"Der zu importierende Header \"%s\" wurde nicht gefunden.",
"Mehrere Dateien in der Moduldateiliste stimmen mit \"%s\" überein.",
"Die für \"%s\" gefundene Moduldatei ist für ein anderes Modul bestimmt.",
null,
"Beliebige Art von Moduldatei",
"Die Moduldatei kann nicht gelesen werden.",
"Die integrierte Funktion ist nicht verfügbar, weil der char8_t-Typ mit den aktuellen Optionen nicht unterstützt wird.",
null,
@@ -3364,15 +3364,15 @@
"Der Ausdruck muss einen arithmetischen Typ, einen Enumerationstyp ohne eigenen Gültigkeitsbereich oder einen Zeigertyp aufweisen, ist jedoch vom Typ \"%t\".",
"Der Ausdruck muss vom Typ \"Zeiger\" sein, weist jedoch den Typ \"%t\" auf.",
"Der Operator \"->\" oder \"->*\" wurde auf \"%t\" statt auf einen Zeigertyp angewendet.",
null,
"Der unvollständige Klassentyp \"%t\" ist nicht zulässig.",
"Das Bitlayout für dieses Kompilierungsziel kann nicht interpretiert werden.",
"Kein entsprechender Operator für IFC-Operator \"%sq\".",
"Keine entsprechende Aufrufkonvention für IFC-Aufrufkonvention \"%sq\".",
"%m enthält nicht unterstützte Konstrukte",
"Das Modul \"%sq\" enthält nicht unterstützte Konstrukte.",
"Nicht unterstütztes IFC-Konstrukt: %sq",
"\"__is_signed\" kann ab jetzt nicht mehr als Schlüsselwort verwendet werden.",
"Eine Arraydimension muss einen konstanten ganzzahligen Wert ohne Vorzeichen aufweisen.",
null,
"Die IFC-Datei \"%sq\" weist eine nicht unterstützte Version %d1.%d2 auf.",
"Module sind in diesem Modus nicht aktiviert.",
"\"Import\" ist in einem Modulnamen unzulässig.",
"\"Modul\" ist in einem Modulnamen unzulässig.",
@@ -3417,35 +3417,35 @@
"„wenn consteval“ und „wenn nicht consteval“ sind in diesem Modus nicht Standard",
"das Weglassen von „()“ in einem Lambda-Deklarator ist in diesem Modus nicht der Standard",
"eine „trailing-requires“-Klausel ist nicht zulässig, wenn die Lambda-Parameterliste ausgelassen wird",
"%m ungültige Partition angefordert",
"%m undefinierte Partition (könnte %sq sein) wurde angefordert",
"Modul %sq ungültige Partition angefordert",
"Modul %sq1 undefinierte Partition (könnte %sq2 sein) wurde angefordert",
null,
null,
"Die %m-Dateiposition %u1 (relative Position %u2) wurde für die %sq-Partition angefordert. Dadurch wird das Ende der Partition überschritten",
"Die %m-Dateiposition %u1 (relative Position %u2) wurde für die Partition %sq angefordert, die mit den Partitionselementen falsch ausgerichtet ist",
"von Unterfeld %sq (relative Position zum Knoten %u)",
"Die %sq1-Dateiposition %u1 (relative Position %u2) des Moduls wurde für die %sq2-Partition angefordert. Dadurch wird das Ende der Partition überschritten",
"Modul %sq1 Dateiposition %u1 (relative Position %u2) wurde für die Partition %sq2 angefordert, welche mit dessen Partitionselementen falsch ausgerichtet ist",
"von Unterfeld %sq (relative Position zum Knoten %d)",
"von Partition %sq Element %u1 (Dateiposition %u2, relative Position %u3)",
"Attribute für Lambdas sind ein C++23-Feature",
"Lambda-Attribute entsprechen hier nicht dem Standard",
"der Bezeichner %sq könnte mit einem visuell ähnlichen Bezeichner verwechselt werden, der %p angezeigt wird",
"dieser Kommentar enthält verdächtige Unicode-Formatierungssteuerzeichen",
"diese Zeichenfolge enthält Unicode-Formatierungssteuerzeichen, die zu unerwartetem Laufzeitverhalten führen könnten",
"%u unterdrückte Warnung wurde bei der Verarbeitung von %m festgestellt",
"%u unterdrückte Warnungen wurden bei der Verarbeitung von %m festgestellt",
"%u unterdrückter Fehler wurde beim Verarbeiten von %m festgestellt",
"%u unterdrückte Fehler wurden bei der Verarbeitung von %m festgestellt",
"%d1 unterdrückte Warnung wurde bei der Verarbeitung des Moduls %sq1 festgestellt",
"%d1 unterdrückte Warnungen wurden bei der Verarbeitung des Moduls %sq1 festgestellt",
"%d1 unterdrückter Fehler wurde beim Verarbeiten des Moduls %sq1 festgestellt",
"%d1 unterdrückte Fehler wurden beim Verarbeiten des Moduls %sq1 festgestellt",
"einschließlich",
"Unterdrückt",
"eine virtuelle Memberfunktion darf keinen expliziten „dies“-Parameter aufweisen",
"das Übernehmen der Adresse einer expliziten „dies“-Funktion erfordert einen qualifizierten Namen.",
"das Formatieren der Adresse einer expliziten „dies“-Funktion erfordert den Operator „&“",
"Ein Zeichenfolgenliteral kann nicht zum Initialisieren eines flexiblen Arraymembers verwendet werden.",
"Die IFC-Darstellung der Definition der Funktion %sq ist ungültig.",
null,
null,
null,
null,
null,
null,
"Die IFC-Darstellung der Definition der Funktion %sq fehlt",
"Ein UniLevel-IFC-Chart wurde nicht zum Angeben von Parametern verwendet.",
"%d1 Parameter wurden im IFC-Parameterdefinitionschart angegeben, während %d2 Parameter in der IFC-Deklaration angegeben wurden.",
"%d1 Parameter wurde im IFC-Parameterdefinitionschart angegeben, während %d2 Parameter in der IFC-Deklaration angegeben wurden.",
"%d1 Parameter wurden im IFC-Parameterdefinitionschart angegeben, während %d2 Parameter in der IFC-Deklaration angegeben wurde.",
"Die IFC-Darstellung der Definition der Funktion %sq fehlt.",
"Funktionsmodifizierer gilt nicht für eine statische Mitgliedervorlagendeklaration",
"Die Mitgliederauswahl umfasst zu viele geschachtelte anonyme Typen",
"Es gibt keinen gemeinsamen Typ zwischen den Operanden",
@@ -3466,23 +3466,23 @@
"Doppelter „ASM“-Qualifizierer",
"entweder ein Bitfeld mit einem unvollständigen Enumerationstyp oder eine opake Enumeration mit einem ungültigen Basistyp",
"Es wurde versucht, ein Element aus der IFC-Partition %sq mithilfe eines Indexes in der IFC-Partition %sq2 zu erstellen",
"Die Partition %sq hat ihre Eintragsgröße mit %u1 angegeben, obwohl %u2 erwartet wurde",
"Unerwartete IFC-Anforderung beim Verarbeiten von %m",
"Die Partition %sq hat ihre Eintragsgröße mit %d1 angegeben, obwohl %d2 erwartet wurde",
"Unerwartete IFC-Anforderung beim Verarbeiten des Moduls %sq1",
"Bedingungsfehler in Zeile %d in %s1: %sq2",
"Die atomische Einschränkung hängt von sich selbst ab",
"Die Funktion \"noreturn\" weist den Rückgabetyp \"nicht void\" auf.",
"Eine Korrektur wurde vorgenommen, indem der Parameter %sq (beim relativen Index %u) weggelassen wurde",
"Eine Korrektur wurde vorgenommen, indem der Parameter %sq (beim relativen Index %d) weggelassen wurde",
"ein Standardvorlagenargument kann nicht für die Definition einer Membervorlage außerhalb seiner Klasse angegeben werden",
"Ungültiger IFC-Bezeichnername %sq bei der Rekonstruktion der Entität gefunden",
null,
"%m ungültiger Sortierwert",
"Modul %sq ungültiger Sortierwert",
"Eine aus einem IFC-Modul geladene Funktionsvorlage wurde fälschlicherweise als %nd analysiert",
"Fehler beim Laden eines IFC-Entitätsverweises in %m",
"Fehler beim Laden eines IFC-Entitätsverweises im Modul \"%sq\"",
"von Partition %sq Element %u1 (Dateiposition %u2, relative Position %u3)",
"verkettete Kennzeichner sind für einen Klassentyp mit einem nichttrivialen Destruktor nicht zulässig",
"Eine explizite Spezialisierungsdeklaration darf keine Frienddeklaration sein",
"der Typ „std::float128_t“ wird nicht unterstützt. Stattdessen wird „std::float64_t“ verwendet",
null,
"der Typ „std::bfloat16_t“ wird nicht unterstützt. Stattdessen wird „std::float32_t“ verwendet",
"Für die Aliasvorlage %no darf keine Deduktionsanleitung deklariert werden.",
"%n wurde als nicht verfügbar deklariert.",
"%n wurde als nicht verfügbar deklariert (%sq).",
@@ -3501,14 +3501,14 @@
"nicht erkannter Ausgabemodus (muss einer von text, sarif sein): %s",
"Die Option \"c23_typeof\" kann nur beim Kompilieren von C verwendet werden",
"ungültige Clang-Versionsnummer: %s",
null,
null,
null,
"die IFC-Zeichenfolge enthält ein unerwartetes NULL-Zeichen (null) im Modul %sq",
"%d1 von %d2 Bytes wurden verwendet",
"aus Zeichenfolgeninformationen in Partition %sq Element %u1 (Dateiposition %u2, relative Position %u3)",
"ein Initialisierer für einen flexiblen Arraymember kann nicht ausgewertet werden",
"ein Standard-Bitfeldinitialisierer ist ein C++20-Feature",
"Zu viele Argumente in der Vorlagenargumentliste in %m",
"zu viele Argumente in der Vorlagenargumentliste im Modul %sq",
"für das Vorlagenargument erkannt, das durch das %sq-Element %u1 dargestellt wird (Dateiposition %u2, relative Position %u3)",
"Zu wenige Argumente in der Vorlagenargumentliste in %m",
"zu wenige Argumente in der Vorlagenargumentliste im Modul %sq",
"wurde beim Verarbeiten der Vorlagenargumentliste erkannt, die durch das %sq-Element %u1 (Dateiposition %u2, relative Position %u3) dargestellt wird",
"die Konvertierung vom bereichsbezogenen Enumerationstyp \"%t\" entspricht nicht dem Standard",
"die Zuordnungsfreigabe stimmt nicht mit der Zuordnungsart überein (eine ist für ein Array und die andere nicht)",
@@ -3517,8 +3517,8 @@
"__make_unsigned ist nur mit nicht booleschen Integer- und Enumerationstypen kompatibel",
"der systeminterne Name\"%sq wird von hier aus als gewöhnlicher Bezeichner behandelt.",
"Zugriff auf nicht initialisiertes Teilobjekt bei Index %d",
"IFC-Zeilennummer (%u1) überschreitet maximal zulässigen Wert (%u2) %m",
"%m hat das Element %u der Partition %sq angefordert. Diese Dateiposition überschreitet den maximal darstellbaren Wert",
"IFC-Zeilennummer (%u1) überläuft maximal zulässigen Wert (%u2) Modul %sq",
"Das Modul %sq1 hat das Element %u der Partition %sq2 angefordert. Diese Dateiposition überschreitet den maximal darstellbaren Wert",
"Falsche Anzahl von Argumenten",
"Einschränkung für Kandidat %n nicht erfüllt",
"Die Anzahl der Parameter von %n stimmt nicht mit dem Aufruf überein",
@@ -3551,201 +3551,10 @@
"IFC-Datei %sq kann nicht verarbeitet werden",
"IFC-Version %u1.%u2 wird nicht unterstützt",
"Die IFC-Architektur \"%sq\" ist nicht mit der aktuellen Zielarchitektur kompatibel",
"%m fordert den Index %u einer nicht unterstützten Partition an, die %sq entspricht",
"Das Modul %sq1 fordert den Index %u einer nicht unterstützten Partition an, die %sq2 entspricht",
"Die Parameternummer %d von %n weist den Typ %t auf, der nicht abgeschlossen werden kann",
"Die Parameternummer %d von %n weist den unvollständigen Typ %t auf",
"Die Parameternummer %d von %n weist den abstrakten Typ %t auf",
"Strukturierte Bindungen sind ein C++17-Feature",
"Das Erfassen strukturierter Bindungen ist ein C++20-Feature",
"Der Operand des Splicers weist den Typ %t anstelle von std::meta::info auf.",
"Der Operand (Reflektion für %r) ist nicht die Reflexion eines Typs.",
"Nicht konstanter Operand von Splice",
"Verwendung von %t anstelle von std::string_view (= std::basic_string_view<char>)",
"Die hier verwendete std::string_view ist inkonsistent mit der Verwendung in anderen systeminternen Funktionen.",
"Die Definition von std::string_view stimmt nicht mit den Annahmen der Reflexion überein (keine Basisklassen und Datenmember für Zeiger und Länge).",
"Die Reflexion ist nicht von einem konstanten Wert.",
"kann kein Array der Länge 0 (null) erstellen",
"Die an make_constexpr_array übergebene Länge (%d1) ist größer als die Anzahl der verfügbaren Elemente (%d2).",
"Die Definition von std::meta::infovec stimmt nicht mit den Annahmen der Reflexion überein (keine Basisklassen und Datenmember für Zeiger, Länge und Kapazität).",
"Ungültige Reflexion (%r) für Ausdrucks-Splice",
"%n wurde bereits definiert (vorherige Definition %p)",
"Infovec-Objekt nicht initialisiert",
"Extrakt von Typ „%t1“ ist nicht mit der angegebenen Reflexion kompatibel (Entität vom Typ „%t2“)",
"Das Reflektieren eines Überladungssatzes ist derzeit nicht zulässig.",
"Diese systeminterne Funktion erfordert eine Reflexion für eine Vorlageninstanz.",
"Inkompatible Typen %t1 und %t2 für Operator",
"Ungültige Reflexion für systeminterne Metafunktion",
"Systeminterne Metafunktion erfordert eine Reflexion für einen Klassenmember",
"Eine Klasse kann nicht von einer Union abgeleitet werden.",
"kann nicht von einer Klasse mit einem flexiblen Arraymember abgeleitet werden",
"NULL-Reflexion",
"Namespacealias",
"Reflexion (Details nicht verfügbar)",
"Ungültige Reflexion (%r) für Vorlagenargument in std::meta::substitute",
"Fehler beim Aufruf von std::meta::substitute (für %r).",
"Reflexionswert bezieht sich auf inaktive Entität",
"Eine Ausdrucks-Splice muss einen konstanten Wert, eine Variable oder eine Funktion aufteilen.",
"Eine Memberzugriffs-Splice muss einen Datenmember oder eine Memberfunktion unterstützen.",
"Der Member \"%nd\" ist kein direkter oder indirekter Member von \"%t\".",
"Der Name \"%sq\" bezeichnet kein bekanntes Unicode-Zeichen.",
"Nicht abgeschlossenes benanntes Unicode-Escapezeichen",
"Zeichen darf nicht in einem UnicodeNamen verwendet werden.",
"Leeres benanntes Unicode-Escapezeichen",
"Erwartet wurde \"[:\"",
"Erwartet wurde \":]\"",
"Ein Lambdaausdruck darf nicht gleichzeitig \"mutable\" und \"static\" sein.",
"Ein Lambdaausdruck \"static\" entspricht nicht dem Standard.",
"Ein Lambdaausdruck \"static\" muss eine leere Erfassungsspezifikation aufweisen.",
"EDG IFC-Headereinheit",
"EDG IFC",
"Für die aktuelle Übersetzungseinheit konnte keine IFC-Datei erstellt werden.",
"Mindestens eine Entität kann derzeit nicht in eine IFC-Datei geschrieben werden.",
"\"explicit(bool)\" ist ein C++20-Feature",
"Das erste Argument muss ein Zeiger auf eine Ganzzahl, enum oder unterstützte Gleitkommazahl sein",
"C++-Module können beim Kompilieren mehrerer Übersetzungseinheiten nicht verwendet werden",
"C++-Module können nicht mit dem vor C++11 verfügbaren „export“-Feature verwendet werden",
"Das IFC-Token %sq wird nicht unterstützt",
"Das Attribut „pass_object_size“ ist nur für Parameter von Funktionsdeklarationen gültig",
"Das Argument des %sq-Attributs %d1 muss einen Wert zwischen 0 und %d2 haben",
"Ein Verweisqualifizierer (ref-qualifier) hier wird ignoriert",
"Ungültiger NEON-Vektorelementtyp %t",
"Ungültiger NEON-Polyvektorelementtyp %t",
"Ungültiger skalierbarer Vektorelementtyp %t",
"Ungültige Anzahl von Tupelelementen für den skalierbaren Vektortyp",
"Ein NEON-Vektor oder Polyvektor muss entweder 64 oder 128 Bit groß sein",
"Der Typ „%t“ ohne Größe ist nicht zulässig",
"Ein Objekt des Typs %t ohne Größe kann nicht mit einem Wert initialisiert werden",
"Im Bereich %u wurde ein unerwarteter Nulldeklarationsindex gefunden",
"Für die Moduldateizuordnung, die auf die Datei \"%sq\" verweist, muss ein Modulname angegeben werden.",
"Es wurde ein NULL-Indexwert empfangen, bei dem ein Knoten in der IFC-Partition „%sq“ erwartet wurde.",
"%nd darf nicht den Typ „%t“ aufweisen",
"Ein Ref-Qualifizierer entspricht in diesem Modus nicht dem Standard.",
"Eine bereichsbasierte „for“-Anweisung entspricht in diesem Modus nicht dem Standard",
"„auto“ als Typspezifizierer entspricht in diesem Modus nicht dem Standard.",
"Die Moduldatei „%sq“ konnte aufgrund einer Dateibeschädigung nicht importiert werden.",
"IFC",
"Fremde Token, die nach der Memberdeklaration eingefügt wurden",
"Ungültiger Einschleusungsbereich (%r)",
"Es wurde ein Wert vom Typ „std::string_view“ erwartet, aber %t erhalten.",
"Fremde Token, die nach der Anweisung eingefügt wurden",
"Fremde Token, die nach der Deklaration eingefügt wurden",
"Überlauf des Tupelindexwerts (%d)",
">> Ausgabe von std::meta::__report_tokens",
">> Endausgabe von std::meta::__report_tokens",
"Nicht in einem Kontext mit Parametervariablen",
"Eine Escapesequenz mit Trennzeichen muss mindestens ein Zeichen enthalten.",
"Nicht beendete Escapesequenz mit Trennzeichen",
"Die Konstante enthält die Adresse einer lokalen Variablen.",
"eine strukturierte Bindung kann nicht als „consteval“ deklariert werden",
"%nkeine Konflikte mit der importierten Deklaration „%nd“",
"Das Zeichen kann nicht im angegebenen Zeichentyp dargestellt werden.",
"Eine Anmerkung kann nicht im Kontext eines „using“-Attributpräfixes angezeigt werden.",
"Der Typ „%t“ der Anmerkung ist kein Literaltyp.",
"Das Attribut „ext_vector_type“ gilt nur für boolesche, ganzzahlige oder Gleitkommatypen",
"Mehrere Bezeichner in derselben Union sind nicht zulässig.",
"Testnachricht",
"Die zu emulierende Microsoft-Version muss mindestens 1943 sein, damit \"--ms_c++23\" verwendet werden kann.",
"Ungültiges aktuelles Arbeitsverzeichnis: %s",
"das „cleanup“-Attribut innerhalb einer constexpr-Funktion wird derzeit nicht unterstützt",
"das „assume“-Attribut kann nur auf eine Nullanweisung angewendet werden",
"Fehler bei Annahme",
"Variablenvorlagen sind ein C++14-Feature",
"die Adresse einer Funktion mit einem Parameter, der mit dem Attribut „pass_object_size“ deklariert wurde, kann nicht übernommen werden",
"Alle Argumente müssen denselben Typ aufweisen",
"Der letzte Vergleich war %s1 %s2 %s3",
"Zu viele Argumente für %sq-Attribut",
"Die Zeichenfolge der Mantisse enthält keine gültige Zahl",
"Gleitkommafehler während der Konstantenauswertung",
"Der vererbende Konstruktor %n wird bei einem Vorgang wie Kopieren/Verschieben ignoriert",
"Die Größe der Datei \"%s\" kann nicht bestimmt werden.",
"\"%s\" kann nicht gelesen werden.",
"Einbetten",
"Unbekannter Parametername",
"Der Parameter wurde mehrfach angegeben.",
"__has_embed kann nicht außerhalb von \"#if\" vorkommen.",
"Das LC_NUMERIC-Gebietsschema konnte nicht auf C festgelegt werden.",
"\"elifdef\" und \"elifndef\" sind in diesem Modus nicht aktiviert und werden ignoriert, wenn Text übersprungen wird.",
"Eine Alias-Deklaration entspricht in diesem Kontext nicht dem Standard.",
"Die Ziel-ABI kann nicht-statische Mitglieder in einer Reihenfolge zuweisen, die nicht mit ihrer Deklarationsreihenfolge übereinstimmt, was in C++23 und später nicht standardkonform ist.",
"EDG-IFC-Modulschnittstelleneinheit",
"EDG-IFC-Modulpartitionseinheit",
"Die Moduldeklaration kann aus dieser Übersetzungseinheit exportiert werden, wenn eine Modulschnittstellendatei erstellt werden.",
"Die Moduldeklaration muss aus dieser Übersetzungseinheit exportiert werden, um eine Modulschnittstellendatei zu erstellen.",
"Die Moduldateigenerierung wurde angefordert, aber in der Übersetzungseinheit wurde kein Modul deklariert.",
"Ersetzen von %T durch %n fehlgeschlagene Einschränkungen",
"%n nicht zufrieden für %T",
"die #embed Erweiterung ist zu lang, um eine Entität des Typs zu initialisieren %t",
"Der „defined“-Operator ist hier nicht zulässig",
"%n ist kein Member von %t",
"Einschränken der Konvertierung in signiertes Zeichen in #embed Daten",
"Der Operator ist für „Vektor-of-bool“-Typen nicht zulässig",
"Objekt zu groß für konstanten Auswertung",
"Temporäres Objekt, das auf sich selbst verweist",
"Ein Lambda kann in diesem Kontext nicht auf eine lokale Variable oder init-capture verweisen",
"Ein Lambdaparameter kann eine explizite Erfassung nicht ausblenden",
"Ein Lambdavorlagenparameter kann eine explizite Erfassung nicht ausblenden",
"Es ist nicht genügend Adressraum vorhanden, um diese Übersetzungseinheit zu verarbeiten",
"<bestimmter Typ>",
"<bestimmte Konstante>",
"<bestimmte Vorlage>",
"die konfigurierte Größe von %s ist zu klein für die angegebene Anzahl von Mantisse + Exponentenbits",
"Ausdruck",
"<Ausdruck>",
"Unbenannt",
"<Unbenannt>",
"<fehlertyp>",
"<unbekannter-typ>",
"<etwas>",
"<null-typ>",
"<kein-init>",
"<null-init>",
"bitweise Kopie von: ",
"<bitwise-kopie>",
"Klassenergebnis über ctor: ",
"<konstruktor-aufruf>",
"<NULL-Ausdruck>",
"<Fehler>",
"<NULL-Routine>",
"<Standard>",
"Parameternr.",
" (eine Ebene höher)",
" Stufen nach oben",
"dynamische-init: ",
"<Fehlerkonstante>",
"Stack-Offset-von:",
"<implizites-Element> ",
" Wiederholungen von ",
"Integer",
"Enumeration",
"Bereichsenumeration",
"arithmetisch",
"nicht boolesche Arithmetik",
"Zeiger",
"nullptr-Typ",
"Handle",
"Handle-to-CLI-Array",
"Pointer-zum-Objekt",
"Pointer-auf-Funktion",
"pointer-to-member",
"bool",
"bool-äquivalent",
"Klasse",
"Ein flüchtiger Operand zu einem Inkrementausdruck ist veraltet",
"Ein flüchtiger Operand zu einem Dekrementausdruck ist veraltet",
"%n zuvor ohne das Attribut „unbestimmt“ deklariert",
"der Standardkonstruktor für %t ist explizit",
"Fehler beim Laden der Definition von %n in %m",
"Fehler beim Laden des Initialisierers für %n in %m",
"Eine Klasse mit einem typedef-Namen zu Verknüpfungszwecken darf keine Basisklasse aufweisen",
"Eine Klasse mit einem typedef-Namen zu Verknüpfungszwecken darf keine Memberfunktion aufweisen",
"Eine Klasse mit einem typedef-Namen für Verknüpfungszwecke darf keinen geschachtelten Typ aufweisen, außer einem Enumerationstyp oder einem Klassentyp ohne Abschluss",
"Eine Klasse mit einem typedef-Namen zu Verknüpfungszwecken darf keinen Lambdaausdruck enthalten",
"eine Klasse mit einem typedef-Namen zu Verknüpfungszwecken darf keinen nicht statischen Datenmember mit einem Standardmemberinitialisierer aufweisen",
"Eine statische Datenmemberdeklaration ist in einer unbenannten Klasse nicht zulässig",
"Initialisiererergebnis behebt eine dllimport-Variable",
"Vorlage mit dem Attribut „no_specializations“ kann nicht spezialisiert werden",
"„static“ entspricht hier nicht dem Standard",
"%nd wurde zuvor ohne explizite Enumerationsbasis deklariert",
"Fehlender „typename“ entspricht hier nicht dem Standard.",
"Die abgekürzte Funktionsvorlagensyntax entspricht nicht dem Standard für Deduktionsleitfäden."
]
"Das Erfassen strukturierter Bindungen ist ein C++20-Feature"
]

Some files were not shown because too many files have changed in this diff Show More