Skip to content

Commit 119cc5a

Browse files
authored
Merge branch 'main' into copilot/fix-254721
2 parents 9a0a6ff + cebcc6f commit 119cc5a

File tree

676 files changed

+21619
-7719
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

676 files changed

+21619
-7719
lines changed

.config/guardian/.gdnbaselines

Lines changed: 1 addition & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -296,21 +296,6 @@
296296
"expirationDate": "2025-11-19 21:48:17Z",
297297
"justification": "This error is baselined with an expiration date of 180 days from 2025-06-02 21:48:17Z"
298298
},
299-
"216e2ac9cb596796224b47799f656570a01fa0d9b5f935608b47d15ab613c8e8": {
300-
"signature": "216e2ac9cb596796224b47799f656570a01fa0d9b5f935608b47d15ab613c8e8",
301-
"alternativeSignatures": [
302-
"07746898f43afab7cc50931b33154c2d9e1a35f82a649dbe8aecf785b3d5a813"
303-
],
304-
"target": "file:///D:/a/_work/1/vscode-server-win32-x64/node_modules/@vscode/vsce-sign/bin/vsce-sign.exe",
305-
"memberOf": [
306-
"default"
307-
],
308-
"tool": "binskim",
309-
"ruleId": "BA2008",
310-
"createdDate": "2025-06-02 21:46:49Z",
311-
"expirationDate": "2025-11-19 21:48:17Z",
312-
"justification": "This error is baselined with an expiration date of 180 days from 2025-06-02 21:48:17Z"
313-
},
314299
"1d4a48ebc63e3b652146bc16309b2d960a7168d299c7ac94cf794347c06265ef": {
315300
"signature": "1d4a48ebc63e3b652146bc16309b2d960a7168d299c7ac94cf794347c06265ef",
316301
"alternativeSignatures": [
@@ -326,21 +311,6 @@
326311
"expirationDate": "2025-11-19 21:48:17Z",
327312
"justification": "This error is baselined with an expiration date of 180 days from 2025-06-02 21:48:17Z"
328313
},
329-
"77797a3e44634bb2994bd13ccc95ff4575bba474585dbd2cf3068a1c16bc0624": {
330-
"signature": "77797a3e44634bb2994bd13ccc95ff4575bba474585dbd2cf3068a1c16bc0624",
331-
"alternativeSignatures": [
332-
"4a6cb67bd4b401e9669c13a2162660aaefc0a94a4122e5b50c198414db545672"
333-
],
334-
"target": "file:///D:/a/_work/1/vscode-server-win32-x64-web/node_modules/@vscode/vsce-sign/bin/vsce-sign.exe",
335-
"memberOf": [
336-
"default"
337-
],
338-
"tool": "binskim",
339-
"ruleId": "BA2008",
340-
"createdDate": "2025-06-02 21:46:49Z",
341-
"expirationDate": "2025-11-19 21:48:17Z",
342-
"justification": "This error is baselined with an expiration date of 180 days from 2025-06-02 21:48:17Z"
343-
},
344314
"21b8091cf937b1be55c7a300483182fec206bc0cd8e2666727b29c8c200aa101": {
345315
"signature": "21b8091cf937b1be55c7a300483182fec206bc0cd8e2666727b29c8c200aa101",
346316
"alternativeSignatures": [
@@ -416,21 +386,6 @@
416386
"expirationDate": "2025-11-19 21:48:17Z",
417387
"justification": "This error is baselined with an expiration date of 180 days from 2025-06-02 21:48:17Z"
418388
},
419-
"30418bcc5269eaeb2832a2404465784431d4e72a2af332320c2b1db4768902ad": {
420-
"signature": "30418bcc5269eaeb2832a2404465784431d4e72a2af332320c2b1db4768902ad",
421-
"alternativeSignatures": [
422-
"b7b9eb974d7d3a4ae14df8695ca5a62592c8c9d20b7eda70a6535d50cbda3e7f"
423-
],
424-
"target": "file:///D:/a/_work/1/VSCode-win32-x64/resources/app/node_modules/@vscode/vsce-sign/bin/vsce-sign.exe",
425-
"memberOf": [
426-
"default"
427-
],
428-
"tool": "binskim",
429-
"ruleId": "BA2008",
430-
"createdDate": "2025-06-02 21:46:49Z",
431-
"expirationDate": "2025-11-19 21:48:17Z",
432-
"justification": "This error is baselined with an expiration date of 180 days from 2025-06-02 21:48:17Z"
433-
},
434389
"d23a7cc83e649f9a9c5831255cb7569d363799adb5490ff7e299685ea7cf5000": {
435390
"signature": "d23a7cc83e649f9a9c5831255cb7569d363799adb5490ff7e299685ea7cf5000",
436391
"alternativeSignatures": [
@@ -462,4 +417,4 @@
462417
"justification": "This error is baselined with an expiration date of 180 days from 2025-06-02 21:48:17Z"
463418
}
464419
}
465-
}
420+
}

.eslint-plugin-local/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22
* Copyright (c) Microsoft Corporation. All rights reserved.
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
5+
// @ts-check
56
const glob = require('glob');
67
const path = require('path');
78

89
require('ts-node').register({ experimentalResolver: true, transpileOnly: true });
910

1011
// Re-export all .ts files as rules
12+
/** @type {Record<string, import('@typescript-eslint/utils/dist/ts-eslint').LooseRuleDefinition>} */
1113
const rules = {};
1214
glob.sync(`${__dirname}/*.ts`).forEach((file) => {
1315
rules[path.basename(file, '.ts')] = require(file);

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
---
22
name: Bug report
33
about: Create a report to help us improve
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
48
---
9+
510
<!-- ⚠️⚠️ Do Not Delete This! bug_report_template ⚠️⚠️ -->
611
<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
712
<!-- 🕮 Read our guide about submitting issues: https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions -->
@@ -19,4 +24,4 @@ Does this issue occur when all extensions are disabled?: Yes/No
1924
Steps to Reproduce:
2025

2126
1.
22-
2.
27+
2.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Copilot Bug report
3+
about: Create a report to help us improve Copilot's chat interface in VS Code
4+
title: ''
5+
labels: chat-ext-issue
6+
assignees: ''
7+
8+
---
9+
10+
<!-- Please search existing issues to avoid creating duplicates -->
11+
<!-- Please attach logs to help us diagnose your issue -->
12+
13+
- Copilot Chat Extension Version:
14+
- VS Code Version:
15+
- OS Version:
16+
- Feature (e.g. agent/edit/ask mode):
17+
- Selected model (e.g. GPT 4.1, Claude 3.7 Sonnet):
18+
- Logs:
19+
20+
Steps to Reproduce:
21+
22+
1.
23+
2.

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
---
22
name: Feature request
33
about: Suggest an idea for this project
4+
title: ''
5+
labels: ''
6+
assignees: ''
47

58
---
69

.github/chatmodes/learn.chatmode.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

.github/chatmodes/plan.chatmode.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.github/classifier.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@
5454
"editor-hover": {"assign": ["aiday-mar"]},
5555
"editor-indent-detection": {"assign": ["alexdima"]},
5656
"editor-indent-guides": {"assign": ["hediet"]},
57-
"editor-input": {"assign": ["alexdima"]},
58-
"editor-input-IME": {"assign": ["alexdima"]},
57+
"editor-input": {"assign": ["aiday-mar"]},
58+
"editor-input-IME": {"assign": ["aiday-mar"]},
5959
"editor-insets": {"assign": ["jrieken"]},
6060
"editor-minimap": {"assign": ["alexdima"]},
6161
"editor-multicursor": {"assign": ["alexdima"]},
@@ -75,7 +75,7 @@
7575
"emmet": {"assign": ["rzhao271"]},
7676
"emmet-parse": {"assign": ["rzhao271"]},
7777
"error-list": {"assign": ["sandy081"]},
78-
"extension-activation": {"assign": ["joyceerhl", "alexdima"]},
78+
"extension-activation": {"assign": ["alexdima"]},
7979
"extension-host": {"assign": ["alexdima"]},
8080
"extension-prerelease": {"assign": ["sandy081"]},
8181
"extension-recommendations": {"assign": ["sandy081"]},
@@ -263,7 +263,7 @@
263263
"user-profiles": {"assign": ["sandy081"]},
264264
"ux": {"assign": ["daviddossett"]},
265265
"variable-resolving": {"assign": ["alexr00"]},
266-
"VIM": {"assign": ["alexdima", "rebornix"]},
266+
"VIM": {"assign": ["rebornix"]},
267267
"virtual-workspaces": {"assign": []},
268268
"vscode.dev": {"assign": []},
269269
"vscode-build": {"assign": []},

.github/copilot-instructions.md

Lines changed: 90 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,116 @@
1-
# Coding Guidelines
2-
3-
## Introduction
4-
5-
These are VS Code coding guidelines. Please also review our [Source Code Organisation](https://github.com/microsoft/vscode/wiki/Source-Code-Organization) page.
6-
7-
## Indentation
1+
# VS Code Copilot Instructions
2+
3+
## Project Overview
4+
5+
Visual Studio Code is built with a layered architecture using TypeScript, web APIs and Electron, combining web technologies with native app capabilities. The codebase is organized into key architectural layers:
6+
7+
### Root Folders
8+
- `src/`: Main TypeScript source code with unit tests in `src/vs/*/test/` folders
9+
- `build/`: Build scripts and CI/CD tools
10+
- `extensions/`: Built-in extensions that ship with VS Code
11+
- `test/`: Integration tests and test infrastructure
12+
- `scripts/`: Development and build scripts
13+
- `resources/`: Static resources (icons, themes, etc.)
14+
- `out/`: Compiled JavaScript output (generated during build)
15+
16+
### Core Architecture (`src/` folder)
17+
- `src/vs/base/` - Foundation utilities and cross-platform abstractions
18+
- `src/vs/platform/` - Platform services and dependency injection infrastructure
19+
- `src/vs/editor/` - Text editor implementation with language services, syntax highlighting, and editing features
20+
- `src/vs/workbench/` - Main application workbench for web and desktop
21+
- `workbench/browser/` - Core workbench UI components (parts, layout, actions)
22+
- `workbench/services/` - Service implementations
23+
- `workbench/contrib/` - Feature contributions (git, debug, search, terminal, etc.)
24+
- `workbench/api/` - Extension host and VS Code API implementation
25+
- `src/vs/code/` - Electron main process specific implementation
26+
- `src/vs/server/` - Server specific implementation
27+
28+
The core architecture follows these principles:
29+
- **Layered architecture** - from `base`, `platform`, `editor`, to `workbench`
30+
- **Dependency injection** - Services are injected through constructor parameters
31+
- **Contribution model** - Features contribute to registries and extension points
32+
- **Cross-platform compatibility** - Abstractions separate platform-specific code
33+
34+
### Built-in Extensions (`extensions/` folder)
35+
The `extensions/` directory contains first-party extensions that ship with VS Code:
36+
- **Language support** - `typescript-language-features/`, `html-language-features/`, `css-language-features/`, etc.
37+
- **Core features** - `git/`, `debug-auto-launch/`, `emmet/`, `markdown-language-features/`
38+
- **Themes** - `theme-*` folders for default color themes
39+
- **Development tools** - `extension-editing/`, `vscode-api-tests/`
40+
41+
Each extension follows the standard VS Code extension structure with `package.json`, TypeScript sources, and contribution points to extend the workbench through the Extension API.
42+
43+
### Finding Related Code
44+
1. **Semantic search first**: Use file search for general concepts
45+
2. **Grep for exact strings**: Use grep for error messages or specific function names
46+
3. **Follow imports**: Check what files import the problematic module
47+
4. **Check test files**: Often reveal usage patterns and expected behavior
48+
49+
## Coding Guidelines
50+
51+
### Indentation
852

953
We use tabs, not spaces.
1054

11-
## Naming Conventions
55+
### Naming Conventions
56+
57+
- Use PascalCase for `type` names
58+
- Use PascalCase for `enum` values
59+
- Use camelCase for `function` and `method` names
60+
- Use camelCase for `property` names and `local variables`
61+
- Use whole words in names when possible
1262

13-
* Use PascalCase for `type` names
14-
* Use PascalCase for `enum` values
15-
* Use camelCase for `function` and `method` names
16-
* Use camelCase for `property` names and `local variables`
17-
* Use whole words in names when possible
63+
### Types
1864

19-
## Types
65+
- Do not export `types` or `functions` unless you need to share it across multiple components
66+
- Do not introduce new `types` or `values` to the global namespace
2067

21-
* Do not export `types` or `functions` unless you need to share it across multiple components
22-
* Do not introduce new `types` or `values` to the global namespace
68+
### Comments
2369

24-
## Comments
70+
- Use JSDoc style comments for `functions`, `interfaces`, `enums`, and `classes`
2571

26-
* When there are comments for `functions`, `interfaces`, `enums`, and `classes` use JSDoc style comments
72+
### Strings
2773

28-
## Strings
74+
- Use "double quotes" for strings shown to the user that need to be externalized (localized)
75+
- Use 'single quotes' otherwise
76+
- All strings visible to the user need to be externalized
2977

30-
* Use "double quotes" for strings shown to the user that need to be externalized (localized)
31-
* Use 'single quotes' otherwise
32-
* All strings visible to the user need to be externalized
78+
### UI labels
79+
- Use title-style capitalization for command labels, buttons and menu items (each word is capitalized).
80+
- Don't capitalize prepositions of four or fewer letters unless it's the first or last word (e.g. "in", "with", "for").
3381

34-
## Style
82+
### Style
3583

36-
* Use arrow functions `=>` over anonymous function expressions
37-
* Only surround arrow function parameters when necessary. For example, `(x) => x + x` is wrong but the following are correct:
84+
- Use arrow functions `=>` over anonymous function expressions
85+
- Only surround arrow function parameters when necessary. For example, `(x) => x + x` is wrong but the following are correct:
3886

39-
```javascript
87+
```typescript
4088
x => x + x
4189
(x, y) => x + y
4290
<T>(x: T, y: T) => x === y
4391
```
4492

45-
* Always surround loop and conditional bodies with curly braces
46-
* Open curly braces always go on the same line as whatever necessitates them
47-
* Parenthesized constructs should have no surrounding whitespace. A single space follows commas, colons, and semicolons in those constructs. For example:
93+
- Always surround loop and conditional bodies with curly braces
94+
- Open curly braces always go on the same line as whatever necessitates them
95+
- Parenthesized constructs should have no surrounding whitespace. A single space follows commas, colons, and semicolons in those constructs. For example:
4896

49-
```javascript
97+
```typescript
5098
for (let i = 0, n = str.length; i < 10; i++) {
5199
if (x < 10) {
52100
foo();
53101
}
54102
}
55-
56103
function f(x: number, y: string): void { }
57104
```
105+
106+
- Whenever possible, use in top-level scopes `export function x(…) {…}` instead of `export const x = (…) => {…}`. One advantage of using the `function` keyword is that the stack-trace shows a good name when debugging.
107+
108+
### Code Quality
109+
110+
- All files must include Microsoft copyright header
111+
- Prefer `async` and `await` over `Promise` and `then` calls
112+
- All user facing messages must be localized using the applicable localization framework (for example `nls.localize()` method)
113+
- Don't add tests to the wrong test suite (e.g., adding to end of file instead of inside relevant suite)
114+
- Look for existing test patterns before creating new structures
115+
- Use `describe` and `test` consistently with existing patterns
116+
- If you create any temporary new files, scripts, or helper files for iteration, clean up these files by removing them at the end of the task
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
applyTo: '**/*.ts'
3+
---
4+
5+
# VS Code Copilot Development Instructions for TypeScript
6+
7+
You MUST check compilation output before running ANY script or declaring work complete!
8+
9+
1. **ALWAYS** check the "Core - Build" task output for compilation errors
10+
2. **ALWAYS** check the "Ext - Build" task output for compilation errors
11+
3. **NEVER** run tests if there are compilation errors
12+
3. **NEVER** use `npm run compile` to compile TypeScript files, always check task output
13+
4. **FIX** all compilation errors before moving forward
14+
15+
## TypeScript compilation steps
16+
17+
Typescript compilation errors can be found by running the "Core - Build" and "Ext - Build" tasks:
18+
- **Core - Build**: Compiles the main VS Code TypeScript sources
19+
- **Ext - Build**: Compiles the built-in extensions
20+
- These background tasks may already be running from previous development sessions
21+
- If not already running, start them to get real-time compilation feedback
22+
- The tasks provide incremental compilation, so they will automatically recompile when files change
23+
24+
## TypeScript validation steps
25+
- Use `scripts/test.sh` (or `scripts\test.bat` on Windows) for unit tests (add `--grep <pattern>` to filter tests)
26+
- Use `scripts/test-integration.sh` (or `scripts\test-integration.bat` on Windows) for integration tests
27+
- Use `npm run valid-layers-check` to check for layering issues
28+

0 commit comments

Comments
 (0)