Update all of our samples to target VSCode 1.100 or newer

This makes sure that if folks get a relatively recent `vscode.d.ts`. It also lets us safely bump up the target to es2024 so you can use all the latest lib additions
This commit is contained in:
Matt Bierner
2025-08-07 07:57:14 -07:00
parent 0b0bb2b6b8
commit 2ee6b0b7b9
258 changed files with 14028 additions and 15244 deletions

View File

@ -22,13 +22,13 @@
"@types/mkdirp": "^0.5.2",
"@types/node": "^22",
"@types/rimraf": "^2.0.2",
"@types/vscode": "^1.73.0",
"@types/vscode": "^1.100.0",
"eslint": "^9.13.0",
"typescript": "^5.9.2",
"typescript-eslint": "^8.39.0"
},
"engines": {
"vscode": "^1.74.0"
"vscode": "^1.100.0"
}
},
"node_modules/@eslint-community/eslint-utils": {
@ -379,10 +379,11 @@
}
},
"node_modules/@types/vscode": {
"version": "1.73.1",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.73.1.tgz",
"integrity": "sha512-eArfOrAoZVV+Ao9zQOCaFNaeXj4kTCD+bGS2gyNgIFZH9xVMuLMlRrEkhb22NyxycFWKV1UyTh03vhaVHmqVMg==",
"dev": true
"version": "1.102.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.102.0.tgz",
"integrity": "sha512-V9sFXmcXz03FtYTSUsYsu5K0Q9wH9w9V25slddcxrh5JgORD14LpnOA7ov0L9ALi+6HrTjskLJ/tY5zeRF3TFA==",
"dev": true,
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "8.39.0",
@ -2143,9 +2144,9 @@
}
},
"@types/vscode": {
"version": "1.73.1",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.73.1.tgz",
"integrity": "sha512-eArfOrAoZVV+Ao9zQOCaFNaeXj4kTCD+bGS2gyNgIFZH9xVMuLMlRrEkhb22NyxycFWKV1UyTh03vhaVHmqVMg==",
"version": "1.102.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.102.0.tgz",
"integrity": "sha512-V9sFXmcXz03FtYTSUsYsu5K0Q9wH9w9V25slddcxrh5JgORD14LpnOA7ov0L9ALi+6HrTjskLJ/tY5zeRF3TFA==",
"dev": true
},
"@typescript-eslint/eslint-plugin": {

View File

@ -11,7 +11,7 @@
"url": "https://github.com/Microsoft/vscode-extension-samples"
},
"engines": {
"vscode": "^1.74.0"
"vscode": "^1.100.0"
},
"categories": [
"Other"
@ -229,7 +229,7 @@
"@types/mkdirp": "^0.5.2",
"@types/node": "^22",
"@types/rimraf": "^2.0.2",
"@types/vscode": "^1.73.0",
"@types/vscode": "^1.100.0",
"eslint": "^9.13.0",
"typescript": "^5.9.2",
"typescript-eslint": "^8.39.0"

View File

@ -12,7 +12,7 @@ export function activate(context: vscode.ExtensionContext) {
? vscode.workspace.workspaceFolders[0].uri.fsPath : undefined;
// Samples of `window.registerTreeDataProvider`
const nodeDependenciesProvider = new DepNodeProvider(rootPath);
const nodeDependenciesProvider = new DepNodeProvider(context, rootPath);
vscode.window.registerTreeDataProvider('nodeDependencies', nodeDependenciesProvider);
vscode.commands.registerCommand('nodeDependencies.refreshEntry', () => nodeDependenciesProvider.refresh());
vscode.commands.registerCommand('extension.openPackageOnNpm', moduleName => vscode.commands.executeCommand('vscode.open', vscode.Uri.parse(`https://www.npmjs.com/package/${moduleName}`)));

View File

@ -12,7 +12,9 @@ export class JsonOutlineProvider implements vscode.TreeDataProvider<number> {
private editor: vscode.TextEditor | undefined;
private autoRefresh = true;
constructor(private context: vscode.ExtensionContext) {
constructor(
private readonly context: vscode.ExtensionContext
) {
vscode.window.onDidChangeActiveTextEditor(() => this.onActiveEditorChanged());
vscode.workspace.onDidChangeTextDocument(e => this.onDocumentChanged(e));
this.autoRefresh = vscode.workspace.getConfiguration('jsonOutline').get('autorefresh', false);

View File

@ -7,8 +7,10 @@ export class DepNodeProvider implements vscode.TreeDataProvider<Dependency> {
private _onDidChangeTreeData: vscode.EventEmitter<Dependency | undefined | void> = new vscode.EventEmitter<Dependency | undefined | void>();
readonly onDidChangeTreeData: vscode.Event<Dependency | undefined | void> = this._onDidChangeTreeData.event;
constructor(private workspaceRoot: string | undefined) {
}
constructor(
private readonly context: vscode.ExtensionContext,
private readonly workspaceRoot: string | undefined
) { }
refresh(): void {
this._onDidChangeTreeData.fire();
@ -48,9 +50,9 @@ export class DepNodeProvider implements vscode.TreeDataProvider<Dependency> {
const toDep = (moduleName: string, version: string): Dependency => {
if (this.pathExists(path.join(workspaceRoot, 'node_modules', moduleName))) {
return new Dependency(moduleName, version, vscode.TreeItemCollapsibleState.Collapsed);
return new Dependency(this.context.extensionUri, moduleName, version, vscode.TreeItemCollapsibleState.Collapsed);
} else {
return new Dependency(moduleName, version, vscode.TreeItemCollapsibleState.None, {
return new Dependency(this.context.extensionUri, moduleName, version, vscode.TreeItemCollapsibleState.None, {
command: 'extension.openPackageOnNpm',
title: '',
arguments: [moduleName]
@ -84,6 +86,7 @@ export class DepNodeProvider implements vscode.TreeDataProvider<Dependency> {
export class Dependency extends vscode.TreeItem {
constructor(
extensionRoot: vscode.Uri,
public readonly label: string,
private readonly version: string,
public readonly collapsibleState: vscode.TreeItemCollapsibleState,
@ -93,12 +96,12 @@ export class Dependency extends vscode.TreeItem {
this.tooltip = `${this.label}-${this.version}`;
this.description = this.version;
}
iconPath = {
light: path.join(__filename, '..', '..', 'resources', 'light', 'dependency.svg'),
dark: path.join(__filename, '..', '..', 'resources', 'dark', 'dependency.svg')
};
this.iconPath = {
light: vscode.Uri.joinPath(extensionRoot, 'resources', 'light', 'dependency.svg'),
dark: vscode.Uri.joinPath(extensionRoot, 'resources', 'dark', 'dependency.svg')
};
}
contextValue = 'dependency';
}

View File

@ -1,8 +1,10 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "es2020",
"lib": ["es2020"],
"target": "ES2024",
"lib": [
"ES2024"
],
"outDir": "out",
"sourceMap": true,
"rootDir": "src",