Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
66fd5af
Update IntelliSense loc strings. (#14131)
sean-mcmanus Jan 9, 2026
9771ca6
Update changelog for 1.30.1 (#14133)
sean-mcmanus Jan 12, 2026
f862493
Fix locked string for c_cpp.configuration.autocomplete.markdownDescri…
sean-mcmanus Jan 15, 2026
4221a90
Update changelog and version for 1.30.2 (#14146)
sean-mcmanus Jan 23, 2026
4015e0f
Update sinon and diff. (#14148)
sean-mcmanus Jan 29, 2026
ea2540f
Update GitHub Actions. (#14149)
sean-mcmanus Jan 29, 2026
c3b4190
Update IntelliSense loc strings. (#14151)
sean-mcmanus Jan 29, 2026
980cccb
Update the changelog for 1.30.3. (#14152)
sean-mcmanus Jan 30, 2026
19a86b5
Update changelog and version for 1.30.4. (#14165)
sean-mcmanus Feb 3, 2026
05d57e1
Update eslint from 8 to 9. (#14157)
sean-mcmanus Feb 5, 2026
920997d
Update changelog for 1.30.5 (#14171)
sean-mcmanus Feb 6, 2026
11b6366
Check unified Copilot API before legacy API (#14167)
benmcmorran Feb 9, 2026
5ad75b4
Bump axios from 1.13.4 to 1.13.5 in /.github/actions (#14179)
dependabot[bot] Feb 11, 2026
d9fe0c8
Update webpack. (#14180)
sean-mcmanus Feb 12, 2026
e23c418
Bump fast-xml-parser and @aws-sdk/xml-builder in /.github/actions (#1…
dependabot[bot] Feb 12, 2026
1cd186b
co-install the new C++ Dev Tools extension (#14197)
bobbrow Feb 18, 2026
f681142
feat: Support program parameter in attach configurations (#14046) (#1…
Subham-KRLX Feb 18, 2026
ea1fbea
Update changelog for 1.31.0. (#14195)
sean-mcmanus Feb 18, 2026
5bbac4e
update the url for the privacy statement (#14198)
bobbrow Feb 18, 2026
ca81d00
Fix signing for extension pack and themes extensions. (#14202)
sean-mcmanus Feb 19, 2026
b977587
Update the C/C++ extension pack to 1.5.1. (#14203)
sean-mcmanus Feb 19, 2026
a5d00e3
Switch vsix packing to use Nuget.config (#14209)
sean-mcmanus Feb 23, 2026
e80bd3b
Bump minimatch from 4.2.3 to 4.2.4 in /Extension (#14213)
dependabot[bot] Feb 25, 2026
adb6bcf
Bump fast-xml-parser and @aws-sdk/xml-builder in /.github/actions (#1…
dependabot[bot] Feb 25, 2026
e0cf47d
Update minimatch. (#14217)
sean-mcmanus Feb 26, 2026
6bddc0f
Update minimatch again. (#14219)
sean-mcmanus Feb 27, 2026
6de78e2
Update ajv. (#14221)
sean-mcmanus Feb 27, 2026
fc04891
Bump minimatch in /.github/actions (#14222)
dependabot[bot] Feb 27, 2026
597f29c
Update licenses. (#14225)
sean-mcmanus Mar 2, 2026
8ff42d0
Update more dependencies. (#14224)
sean-mcmanus Mar 2, 2026
40e39ac
Revert the shell-quote update. (#14229)
sean-mcmanus Mar 3, 2026
a8cb537
Update to clang-tidy 22. (#14230)
sean-mcmanus Mar 4, 2026
df350e6
Update msvc versions. (#14231)
sean-mcmanus Mar 4, 2026
c5fe03c
Update loc. (#14232)
sean-mcmanus Mar 4, 2026
74dd1a2
Merge branch 'main' into seanmcm/vs1_31_1
sean-mcmanus Mar 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,426 changes: 1,295 additions & 1,131 deletions .github/actions/package-lock.json

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions .github/actions/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
"keywords": [],
"author": "",
"dependencies": {
"@actions/core": "^1.9.1",
"@actions/github": "^6.0.0",
"@actions/core": "^2.0.3",
"@actions/github": "^8.0.1",
"@octokit/rest": "^21.1.1",
"@slack/web-api": "^6.9.1",
"applicationinsights": "^2.5.1",
"axios": "^1.12.1",
"axios": "^1.13.5",
"uuid": "^8.3.2"
},
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion Build/package/cpptools_extension_pack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,5 @@ extends:

- template: /Build/package/jobs_package_vsix.yml@self
parameters:
vsixName: cpptools-extension-pack.vsix
vsixName: cpptools-extension-pack
srcDir: ExtensionPack
2 changes: 1 addition & 1 deletion Build/package/cpptools_themes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,5 @@ extends:

- template: /Build/package/jobs_package_vsix.yml@self
parameters:
vsixName: cpptools-themes.vsix
vsixName: cpptools-themes
srcDir: Themes
36 changes: 25 additions & 11 deletions Build/package/jobs_package_vsix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ parameters:

jobs:
- job: package
displayName: Build ${{ parameters.vsixName }}
displayName: Build ${{ parameters.vsixName }}.vsix
timeoutInMinutes: 30
cancelTimeoutInMinutes: 1
templateContext:
Expand All @@ -26,7 +26,7 @@ jobs:
autoBaseline: false
outputs:
- output: pipelineArtifact
displayName: '${{ parameters.vsixName }}'
displayName: '${{ parameters.vsixName }}.vsix'
targetPath: $(Build.ArtifactStagingDirectory)\vsix
artifactName: vsix

Expand All @@ -38,10 +38,8 @@ jobs:
inputs:
version: 22.x

- task: Npm@0
displayName: Install vsce
inputs:
arguments: --global @vscode/vsce
- script: npm install --global @vscode/vsce@3.1.1
displayName: install vsce@3.1.1

- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
displayName: Use Yarn 1.x
Expand All @@ -51,11 +49,27 @@ jobs:

- script: |
cd $(Build.SourcesDirectory)\${{ parameters.srcDir }}
vsce package -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}
vsce package -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}.vsix
displayName: Run VSCE to package vsix

- task: Npm@0
displayName: Uninstall vsce
# sign the vsix
- script: 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:
command: uninstall
arguments: --global @vscode/vsce
solution: $(Build.SourcesDirectory)\Build\signing\SignVsix.proj
msbuildArguments: /p:SignType=${{ parameters.signType }}

- script: npm uninstall --global @vscode/vsce
displayName: uninstall vsce
2 changes: 1 addition & 1 deletion Build/publish/cpptools_extension_pack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,5 @@ extends:
jobs:
- template: /Build/publish/jobs_publish_vsix.yml@self
parameters:
vsixName: cpptools-extension-pack.vsix
vsixName: cpptools-extension-pack

2 changes: 1 addition & 1 deletion Build/publish/cpptools_themes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,5 @@ extends:
jobs:
- template: /Build/publish/jobs_publish_vsix.yml@self
parameters:
vsixName: cpptools-themes.vsix
vsixName: cpptools-themes

2 changes: 1 addition & 1 deletion Build/publish/jobs_publish_vsix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
Write-Host "##vso[task.setvariable variable=AAD_TOKEN;issecret=true]$aadToken"

- script: |
vsce publish --packagePath $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}
npx @vscode/vsce@latest publish -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)
Expand Down
7 changes: 7 additions & 0 deletions Build/signing/NuGet.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?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>
4 changes: 0 additions & 4 deletions Extension/.eslintignore

This file was deleted.

155 changes: 0 additions & 155 deletions Extension/.eslintrc.js

This file was deleted.

15 changes: 9 additions & 6 deletions Extension/.scripts/clean.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,28 @@ export async function main() {
}

export async function all() {
await rimraf(...(await getModifiedIgnoredFiles()).filter(each => !each.includes('node_modules')));
await rimraf(...(await getModifiedIgnoredFiles()).filter((each): each is string => each !== undefined && !each.includes('node_modules')));
}

export async function reset() {
verbose(`Resetting all .gitignored files in extension`);
await rimraf(...await getModifiedIgnoredFiles());
await rimraf(...(await getModifiedIgnoredFiles()).filter((each): each is string => each !== undefined));
}

async function details(files: string[]) {
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);
const results = await Promise.all(files.filter(each => each).map(async (each) => {
const [, stats] = await filepath.stats(each);
if (!stats) {
return null;
}
return {
filename: stats.isDirectory() ? cyan(`${each}${sep}**`) : brightGreen(`${each}`),
date: stats.mtime.toLocaleDateString().replace(/\b(\d)\//g, '0$1\/'),
time: stats.mtime.toLocaleTimeString().replace(/^(\d)\:/g, '0$1:'),
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);
Expand All @@ -56,7 +59,7 @@ export async function show(opt?: string) {
case 'ignored':
case 'untracked':
console.log(cyan('\n\nUntracked+Ignored files:'));
return details(await getModifiedIgnoredFiles());
return details((await getModifiedIgnoredFiles()).filter((each): each is string => each !== undefined));

default:
return error(`Unknown option '${opt}'`);
Expand Down
11 changes: 7 additions & 4 deletions Extension/.scripts/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,12 @@ export async function getModifiedIgnoredFiles() {
}

// 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 = [];
const all: Promise<void>[] = [];
for (const each of paths) {
if (!each) {
continue;
Expand All @@ -82,6 +83,9 @@ 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;
Expand Down Expand Up @@ -258,7 +262,7 @@ export function position(text: string) {
return gray(`${text}`);
}

export async function assertAnyFolder(oneOrMoreFolders: string | string[], errorMessage?: string): Promise<string> {
export async function assertAnyFolder(oneOrMoreFolders: string | string[], errorMessage?: string): Promise<string | undefined> {
oneOrMoreFolders = is.array(oneOrMoreFolders) ? oneOrMoreFolders : [oneOrMoreFolders];
for (const each of oneOrMoreFolders) {
const result = await filepath.isFolder(each, $root);
Expand All @@ -275,7 +279,7 @@ export async function assertAnyFolder(oneOrMoreFolders: string | string[], error
}
}

export async function assertAnyFile(oneOrMoreFiles: string | string[], errorMessage?: string): Promise<string> {
export async function assertAnyFile(oneOrMoreFiles: string | string[], errorMessage?: string): Promise<string | undefined> {
oneOrMoreFiles = is.array(oneOrMoreFiles) ? oneOrMoreFiles : [oneOrMoreFiles];
for (const each of oneOrMoreFiles) {
const result = await filepath.isFile(each, $root);
Expand Down Expand Up @@ -325,7 +329,6 @@ export async function checkDTS() {
let failing = false;
failing = !await assertAnyFile('vscode.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.d.ts is missing.`)) || failing;
failing = !await assertAnyFile('vscode.proposed.terminalDataWriteEvent.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.proposed.terminalDataWriteEvent.d.ts is missing.`)) || failing;
failing = !await assertAnyFile('vscode.proposed.lmTools.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.proposed.lmTools.d.ts is missing.`)) || failing;

if (!failing) {
verbose('VSCode d.ts files appear to be in place.');
Expand Down
2 changes: 1 addition & 1 deletion Extension/.scripts/copyWalkthruMedia.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
}
Expand Down
Loading
Loading