Skip to content

Commit c700d34

Browse files
authored
Merge branch 'main' into justin.increase-editor-stickyScroll-maxLineCount
2 parents 676d7ba + 01ce8d8 commit c700d34

File tree

1,753 files changed

+56107
-24120
lines changed

Some content is hidden

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

1,753 files changed

+56107
-24120
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { TSESTree } from '@typescript-eslint/typescript-estree';
7+
import * as eslint from 'eslint';
8+
import { dirname, join, relative } from 'path';
9+
import minimatch from 'minimatch';
10+
import { createImportRuleListener } from './utils';
11+
12+
export = new class implements eslint.Rule.RuleModule {
13+
14+
readonly meta: eslint.Rule.RuleMetaData = {
15+
messages: {
16+
layerbreaker: 'You are only allowed to import {{import}} from here using `import type ...`.'
17+
},
18+
schema: {
19+
type: "array",
20+
items: {
21+
type: "object",
22+
additionalProperties: {
23+
type: "array",
24+
items: {
25+
type: "string"
26+
}
27+
}
28+
}
29+
}
30+
};
31+
32+
create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
33+
let fileRelativePath = relative(dirname(__dirname), context.getFilename());
34+
if (!fileRelativePath.endsWith('/')) {
35+
fileRelativePath += '/';
36+
}
37+
const ruleArgs = <Record<string, string[]>>context.options[0];
38+
39+
const matchingKey = Object.keys(ruleArgs).find(key => fileRelativePath.startsWith(key) || minimatch(fileRelativePath, key));
40+
if (!matchingKey) {
41+
// nothing
42+
return {};
43+
}
44+
45+
const restrictedImports = ruleArgs[matchingKey];
46+
return createImportRuleListener((node, path) => {
47+
if (path[0] === '.') {
48+
path = join(dirname(context.getFilename()), path);
49+
}
50+
51+
if ((
52+
restrictedImports.includes(path) || restrictedImports.some(restriction => minimatch(path, restriction))
53+
) && !(
54+
(node.parent?.type === TSESTree.AST_NODE_TYPES.ImportDeclaration && node.parent.importKind === 'type') ||
55+
(node.parent && 'exportKind' in node.parent && node.parent.exportKind === 'type'))) { // the export could be multiple types
56+
context.report({
57+
loc: node.parent!.loc,
58+
messageId: 'layerbreaker',
59+
data: {
60+
import: path
61+
}
62+
});
63+
}
64+
});
65+
}
66+
};

.eslintrc.json

Lines changed: 13 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -148,128 +148,35 @@
148148
{
149149
// Files should (only) be removed from the list they adopt the leak detector
150150
"exclude": [
151-
"src/vs/base/parts/sandbox/test/electron-sandbox/globals.test.ts",
152151
"src/vs/base/test/browser/browser.test.ts",
153-
"src/vs/base/test/browser/comparers.test.ts",
154-
"src/vs/base/test/browser/hash.test.ts",
155-
"src/vs/base/test/browser/indexedDB.test.ts",
156-
"src/vs/base/test/browser/ui/menu/menubar.test.ts",
157152
"src/vs/base/test/browser/ui/scrollbar/scrollableElement.test.ts",
158153
"src/vs/base/test/browser/ui/scrollbar/scrollbarState.test.ts",
159-
"src/vs/base/test/common/arrays.test.ts",
160-
"src/vs/base/test/common/arraysFind.test.ts",
161-
"src/vs/base/test/common/cache.test.ts",
162-
"src/vs/base/test/common/charCode.test.ts",
163-
"src/vs/base/test/common/collections.test.ts",
164-
"src/vs/base/test/common/color.test.ts",
165-
"src/vs/base/test/common/decorators.test.ts",
166-
"src/vs/base/test/common/diff/diff.test.ts",
167-
"src/vs/base/test/common/errors.test.ts",
168-
"src/vs/base/test/common/filters.perf.test.ts",
169-
"src/vs/base/test/common/filters.test.ts",
170-
"src/vs/base/test/common/iconLabels.test.ts",
171-
"src/vs/base/test/common/iterator.test.ts",
172-
"src/vs/base/test/common/json.test.ts",
173-
"src/vs/base/test/common/jsonEdit.test.ts",
174-
"src/vs/base/test/common/jsonFormatter.test.ts",
175-
"src/vs/base/test/common/keybindings.test.ts",
176-
"src/vs/base/test/common/keyCodes.test.ts",
177-
"src/vs/base/test/common/linkedList.test.ts",
178-
"src/vs/base/test/common/linkedText.test.ts",
179-
"src/vs/base/test/common/map.test.ts",
180-
"src/vs/base/test/common/markdownString.test.ts",
181-
"src/vs/base/test/common/marshalling.test.ts",
182-
"src/vs/base/test/common/network.test.ts",
183-
"src/vs/base/test/common/observable.test.ts",
184-
"src/vs/base/test/common/path.test.ts",
185-
"src/vs/base/test/common/resources.test.ts",
186-
"src/vs/base/test/common/resourceTree.test.ts",
187-
"src/vs/base/test/common/scrollable.test.ts",
188-
"src/vs/base/test/common/skipList.test.ts",
189-
"src/vs/base/test/common/stripComments.test.ts",
190-
"src/vs/base/test/common/ternarySearchtree.test.ts",
191-
"src/vs/base/test/common/types.test.ts",
192-
"src/vs/base/test/common/uri.test.ts",
193-
"src/vs/base/test/common/uuid.test.ts",
194-
"src/vs/base/test/node/crypto.test.ts",
195-
"src/vs/base/test/node/css.build.test.ts",
196-
"src/vs/base/test/node/id.test.ts",
197-
"src/vs/base/test/node/snapshot.test.ts",
198-
"src/vs/editor/contrib/codeAction/test/browser/codeActionKeybindingResolver.test.ts",
199154
"src/vs/editor/contrib/codeAction/test/browser/codeActionModel.test.ts",
200-
"src/vs/editor/contrib/dropOrPasteInto/test/browser/editSort.test.ts",
201-
"src/vs/editor/contrib/folding/test/browser/foldingModel.test.ts",
202-
"src/vs/editor/contrib/folding/test/browser/foldingRanges.test.ts",
203-
"src/vs/editor/contrib/folding/test/browser/indentFold.test.ts",
204-
"src/vs/editor/contrib/folding/test/browser/indentRangeProvider.test.ts",
205-
"src/vs/editor/contrib/gotoSymbol/test/browser/referencesModel.test.ts",
206-
"src/vs/editor/contrib/smartSelect/test/browser/smartSelect.test.ts",
207-
"src/vs/editor/contrib/snippet/test/browser/snippetParser.test.ts",
208-
"src/vs/editor/contrib/snippet/test/browser/snippetSession.test.ts",
209-
"src/vs/editor/contrib/snippet/test/browser/snippetVariables.test.ts",
210-
"src/vs/editor/contrib/suggest/test/browser/completionModel.test.ts",
211-
"src/vs/editor/contrib/suggest/test/browser/suggestMemory.test.ts",
212155
"src/vs/editor/test/common/services/languageService.test.ts",
213156
"src/vs/editor/test/node/classification/typescript.test.ts",
214157
"src/vs/editor/test/node/diffing/defaultLinesDiffComputer.test.ts",
215158
"src/vs/editor/test/node/diffing/fixtures.test.ts",
216159
"src/vs/platform/configuration/test/common/configuration.test.ts",
217-
"src/vs/platform/configuration/test/common/configurationModels.test.ts",
218-
"src/vs/platform/configuration/test/common/configurationRegistry.test.ts",
219-
"src/vs/platform/contextkey/test/common/contextkey.test.ts",
220-
"src/vs/platform/contextkey/test/common/parser.test.ts",
221-
"src/vs/platform/contextkey/test/common/scanner.test.ts",
222-
"src/vs/platform/extensionManagement/test/common/extensionManagement.test.ts",
223160
"src/vs/platform/extensions/test/common/extensionValidator.test.ts",
224-
"src/vs/platform/instantiation/test/common/graph.test.ts",
225-
"src/vs/platform/instantiation/test/common/instantiationService.test.ts",
226-
"src/vs/platform/keybinding/test/common/abstractKeybindingService.test.ts",
227-
"src/vs/platform/keybinding/test/common/keybindingLabels.test.ts",
228-
"src/vs/platform/keybinding/test/common/keybindingResolver.test.ts",
229-
"src/vs/platform/markers/test/common/markerService.test.ts",
230161
"src/vs/platform/opener/test/common/opener.test.ts",
231-
"src/vs/platform/progress/test/common/progress.test.ts",
232162
"src/vs/platform/registry/test/common/platform.test.ts",
233163
"src/vs/platform/remote/test/common/remoteHosts.test.ts",
234164
"src/vs/platform/telemetry/test/browser/1dsAppender.test.ts",
235-
"src/vs/platform/userDataSync/test/common/extensionsMerge.test.ts",
236-
"src/vs/platform/userDataSync/test/common/globalStateMerge.test.ts",
237-
"src/vs/platform/userDataSync/test/common/settingsMerge.test.ts",
238-
"src/vs/platform/userDataSync/test/common/userDataProfilesManifestMerge.test.ts",
239165
"src/vs/platform/workspace/test/common/workspace.test.ts",
240166
"src/vs/platform/workspaces/test/electron-main/workspaces.test.ts",
241-
"src/vs/server/test/node/serverConnectionToken.test.ts",
242-
"src/vs/workbench/api/test/browser/extHostApiCommands.test.ts",
243-
"src/vs/workbench/api/test/browser/extHostBulkEdits.test.ts",
244-
"src/vs/workbench/api/test/browser/extHostDocumentSaveParticipant.test.ts",
245-
"src/vs/workbench/api/test/browser/extHostTextEditor.test.ts",
246-
"src/vs/workbench/api/test/browser/extHostTypeConverter.test.ts",
247-
"src/vs/workbench/api/test/browser/extHostWorkspace.test.ts",
248167
"src/vs/workbench/api/test/browser/mainThreadConfiguration.test.ts",
249-
"src/vs/workbench/api/test/browser/mainThreadDocuments.test.ts",
250168
"src/vs/workbench/api/test/common/extHostExtensionActivator.test.ts",
251169
"src/vs/workbench/api/test/node/extHostTunnelService.test.ts",
252170
"src/vs/workbench/contrib/bulkEdit/test/browser/bulkCellEdits.test.ts",
253171
"src/vs/workbench/contrib/chat/test/common/chatWordCounter.test.ts",
254172
"src/vs/workbench/contrib/editSessions/test/browser/editSessions.test.ts",
255173
"src/vs/workbench/contrib/extensions/test/common/extensionQuery.test.ts",
256-
"src/vs/workbench/contrib/extensions/test/electron-sandbox/extension.test.ts",
257174
"src/vs/workbench/contrib/notebook/test/browser/notebookExecutionService.test.ts",
258175
"src/vs/workbench/contrib/notebook/test/browser/notebookExecutionStateService.test.ts",
259-
"src/vs/workbench/contrib/snippets/test/browser/snippetFile.test.ts",
260-
"src/vs/workbench/contrib/snippets/test/browser/snippetsRegistry.test.ts",
261-
"src/vs/workbench/contrib/snippets/test/browser/snippetsRewrite.test.ts",
262176
"src/vs/workbench/contrib/tasks/test/common/problemMatcher.test.ts",
263177
"src/vs/workbench/contrib/tasks/test/common/taskConfiguration.test.ts",
264178
"src/vs/workbench/services/commands/test/common/commandService.test.ts",
265-
"src/vs/workbench/services/configuration/test/common/configurationModels.test.ts",
266179
"src/vs/workbench/services/extensions/test/common/extensionDescriptionRegistry.test.ts",
267-
"src/vs/workbench/services/keybinding/test/browser/keybindingIO.test.ts",
268-
"src/vs/workbench/services/keybinding/test/node/fallbackKeyboardMapper.test.ts",
269-
"src/vs/workbench/services/keybinding/test/node/macLinuxKeyboardMapper.test.ts",
270-
"src/vs/workbench/services/keybinding/test/node/windowsKeyboardMapper.test.ts",
271-
"src/vs/workbench/services/telemetry/test/browser/commonProperties.test.ts",
272-
"src/vs/workbench/services/themes/test/node/tokenStyleResolving.test.ts",
273180
"src/vs/workbench/services/userActivity/test/browser/domActivityTracker.test.ts",
274181
"src/vs/workbench/test/browser/quickAccess.test.ts"
275182
]
@@ -1180,6 +1087,19 @@
11801087
}
11811088
]
11821089
}
1090+
},
1091+
{
1092+
"files": [
1093+
"src/vs/workbench/contrib/notebook/browser/view/renderers/*.ts"
1094+
],
1095+
"rules": {
1096+
"local/code-no-runtime-import": [
1097+
"error",
1098+
{
1099+
"src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.ts": ["**/*"]
1100+
}
1101+
]
1102+
}
11831103
}
11841104
]
11851105
}

.github/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# ensure the API police is aware of changes to the vscode-dts file
2+
# this is only about the final API, not about proposed API changes
3+
src/vscode-dts/vscode.d.ts @jrieken @mjbvz

.github/workflows/basic.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
sudo update-rc.d xvfb defaults
3030
sudo service xvfb start
3131
32-
- uses: actions/setup-node@v3
32+
- uses: actions/setup-node@v4
3333
with:
3434
node-version-file: .nvmrc
3535

@@ -38,7 +38,7 @@ jobs:
3838
run: echo "value=$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)" >> $GITHUB_OUTPUT
3939
- name: Cache node modules
4040
id: cacheNodeModules
41-
uses: actions/cache@v3
41+
uses: actions/cache@v4
4242
with:
4343
path: "**/node_modules"
4444
key: ${{ runner.os }}-cacheNodeModulesLinux-${{ steps.nodeModulesCacheKey.outputs.value }}
@@ -48,7 +48,7 @@ jobs:
4848
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
4949
- name: Cache yarn directory
5050
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
51-
uses: actions/cache@v3
51+
uses: actions/cache@v4
5252
with:
5353
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
5454
key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }}
@@ -61,7 +61,7 @@ jobs:
6161
run: yarn --frozen-lockfile --network-timeout 180000
6262

6363
- name: Compile and Download
64-
run: yarn npm-run-all --max_old_space_size=4095 -lp compile "electron x64"
64+
run: yarn npm-run-all --max-old-space-size=4095 -lp compile "electron x64"
6565

6666
- name: Run Unit Tests
6767
id: electron-unit-tests
@@ -81,7 +81,7 @@ jobs:
8181
steps:
8282
- uses: actions/checkout@v4
8383

84-
- uses: actions/setup-node@v3
84+
- uses: actions/setup-node@v4
8585
with:
8686
node-version-file: .nvmrc
8787

@@ -90,7 +90,7 @@ jobs:
9090
run: echo "value=$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)" >> $GITHUB_OUTPUT
9191
- name: Cache node modules
9292
id: cacheNodeModules
93-
uses: actions/cache@v3
93+
uses: actions/cache@v4
9494
with:
9595
path: "**/node_modules"
9696
key: ${{ runner.os }}-cacheNodeModulesLinux-${{ steps.nodeModulesCacheKey.outputs.value }}
@@ -100,7 +100,7 @@ jobs:
100100
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
101101
- name: Cache yarn directory
102102
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
103-
uses: actions/cache@v3
103+
uses: actions/cache@v4
104104
with:
105105
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
106106
key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }}
@@ -143,7 +143,7 @@ jobs:
143143
steps:
144144
- uses: actions/checkout@v4
145145

146-
- uses: actions/setup-node@v3
146+
- uses: actions/setup-node@v4
147147
with:
148148
node-version-file: .nvmrc
149149

@@ -152,7 +152,7 @@ jobs:
152152
run: echo "value=$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)" >> $GITHUB_OUTPUT
153153
- name: Cache node modules
154154
id: cacheNodeModules
155-
uses: actions/cache@v3
155+
uses: actions/cache@v4
156156
with:
157157
path: "**/node_modules"
158158
key: ${{ runner.os }}-cacheNodeModulesLinux-${{ steps.nodeModulesCacheKey.outputs.value }}
@@ -162,7 +162,7 @@ jobs:
162162
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
163163
- name: Cache yarn directory
164164
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
165-
uses: actions/cache@v3
165+
uses: actions/cache@v4
166166
with:
167167
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
168168
key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }}

0 commit comments

Comments
 (0)