From 4aed6e1fd1b83c483494351a7fb9cd243c836a30 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 17 Jan 2022 17:54:49 +0100 Subject: [PATCH] Ensure all files are covered by `code-import-patterns` (fixes #140857) --- .eslintrc.json | 54 ++++++++++++++++++- build/lib/eslint/code-import-patterns.js | 7 ++- build/lib/eslint/code-import-patterns.ts | 8 ++- src/vs/editor/contrib/find/findWidget.ts | 4 +- .../browser/contextScopedHistoryWidget.ts | 1 + .../browser/historyWidgetKeybindingHint.ts | 0 .../browser/find/simpleFindWidget.ts | 2 +- .../suggestEnabledInput.ts | 2 +- .../workbench/contrib/debug/browser/repl.ts | 4 +- .../contrib/debug/browser/replFilter.ts | 2 +- .../markers/browser/markersViewActions.ts | 4 +- .../contrib/find/notebookFindReplaceWidget.ts | 2 +- .../preferences/browser/preferencesWidgets.ts | 4 +- .../search/browser/patternInputWidget.ts | 4 +- .../contrib/search/browser/searchWidget.ts | 4 +- 15 files changed, 82 insertions(+), 20 deletions(-) rename src/vs/platform/{ => history}/browser/contextScopedHistoryWidget.ts (99%) rename src/vs/platform/{ => history}/browser/historyWidgetKeybindingHint.ts (100%) diff --git a/.eslintrc.json b/.eslintrc.json index 5a88957f369..6f21317d439 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -211,6 +211,13 @@ "*" // node modules ] }, + { + "target": "**/vs/base/worker/**", + "restrictions": [ + "vs/nls", + "**/vs/base/{common,worker}/**" + ] + }, { "target": "**/vs/platform/*/common/**", "restrictions": [ @@ -449,6 +456,28 @@ "**/vs/editor/contrib/**" ] }, + { + "target": "**/vs/editor/editor.all.ts", + "restrictions": [ + "**/vs/base/{common,browser}/**", + "**/vs/base/parts/*/{common,browser}/**", + "**/vs/editor/{common,contrib,browser}/**" + ] + }, + { + "target": "**/vs/editor/editor.worker.ts", + "restrictions": [ + "**/vs/base/{common,worker}/**", + "**/vs/editor/common/**" + ] + }, + { + "target": "**/vs/editor/editor.{api,main}.ts", + "restrictions": [ + "**/vs/base/{common,browser}/**", + "**/vs/editor/**" + ] + }, { "target": "**/vs/workbench/common/**", "restrictions": [ @@ -956,7 +985,7 @@ ] }, { - "target": "**/src/vs/workbench/workbench.sandbox.main.ts", + "target": "**/src/vs/workbench/{workbench.sandbox.main.ts,workbench.desktop.sandbox.main.ts}", "restrictions": [ "vs/nls", "**/vs/base/**/{common,browser,electron-sandbox}/**", @@ -964,7 +993,8 @@ "**/vs/platform/**/{common,browser,electron-sandbox}/**", "**/vs/editor/**", "**/vs/workbench/**/{common,browser,electron-sandbox}/**", - "**/vs/workbench/workbench.common.main" + "**/vs/workbench/workbench.common.main", + "**/vs/workbench/workbench.sandbox.main" ] }, { @@ -980,10 +1010,22 @@ "**/vs/workbench/workbench.sandbox.main" ] }, + { + "target": "**/src/vs/workbench/{workbench.desktop.main.nls.js,workbench.web.api.nls.js}", + "restrictions": [] + }, + { + "target": "**/src/vs/{css.d.ts,monaco.d.ts,nls.d.ts,nls.mock.ts}", + "restrictions": [] + }, { "target": "**/src/vscode-dts/**", "restrictions": [] }, + { + "target": "**/src/{bootstrap-amd.js,bootstrap-fork.js,bootstrap-node.js,bootstrap-window.js,bootstrap.js,cli.js,main.js}", + "restrictions": [] + }, { "target": "**/extensions/**", "restrictions": "**/*" @@ -1088,6 +1130,14 @@ "crypto", "xterm*" ] + }, + { + "target": "**/build/**", + "restrictions": "**/*" + }, + { + "target": "**/{buildfile.js,buildfile.desktop.js,buildfile.web.js}", + "restrictions": "**/*" } ], "header/header": [ diff --git a/build/lib/eslint/code-import-patterns.js b/build/lib/eslint/code-import-patterns.js index 97dd154b1d3..800bde83558 100644 --- a/build/lib/eslint/code-import-patterns.js +++ b/build/lib/eslint/code-import-patterns.js @@ -10,7 +10,8 @@ module.exports = new class { constructor() { this.meta = { messages: { - badImport: 'Imports violates \'{{restrictions}}\' restrictions. See https://github.com/microsoft/vscode/wiki/Source-Code-Organization' + badImport: 'Imports violates \'{{restrictions}}\' restrictions. See https://github.com/microsoft/vscode/wiki/Source-Code-Organization', + badFilename: 'Missing definition in `code-import-patterns` for this file. Define rules at https://github.com/microsoft/vscode/blob/main/.eslintrc.json' }, docs: { url: 'https://github.com/microsoft/vscode/wiki/Source-Code-Organization' @@ -24,6 +25,10 @@ module.exports = new class { return (0, utils_1.createImportRuleListener)((node, value) => this._checkImport(context, config, node, value)); } } + context.report({ + loc: { line: 1, column: 1 }, + messageId: 'badFilename' + }); return {}; } _checkImport(context, config, node, path) { diff --git a/build/lib/eslint/code-import-patterns.ts b/build/lib/eslint/code-import-patterns.ts index c3daadbf59a..6a9297876eb 100644 --- a/build/lib/eslint/code-import-patterns.ts +++ b/build/lib/eslint/code-import-patterns.ts @@ -18,7 +18,8 @@ export = new class implements eslint.Rule.RuleModule { readonly meta: eslint.Rule.RuleMetaData = { messages: { - badImport: 'Imports violates \'{{restrictions}}\' restrictions. See https://github.com/microsoft/vscode/wiki/Source-Code-Organization' + badImport: 'Imports violates \'{{restrictions}}\' restrictions. See https://github.com/microsoft/vscode/wiki/Source-Code-Organization', + badFilename: 'Missing definition in `code-import-patterns` for this file. Define rules at https://github.com/microsoft/vscode/blob/main/.eslintrc.json' }, docs: { url: 'https://github.com/microsoft/vscode/wiki/Source-Code-Organization' @@ -35,6 +36,11 @@ export = new class implements eslint.Rule.RuleModule { } } + context.report({ + loc: { line: 1, column: 1 }, + messageId: 'badFilename' + }); + return {}; } diff --git a/src/vs/editor/contrib/find/findWidget.ts b/src/vs/editor/contrib/find/findWidget.ts index ea048c5b5ab..68cded64ec4 100644 --- a/src/vs/editor/contrib/find/findWidget.ts +++ b/src/vs/editor/contrib/find/findWidget.ts @@ -30,8 +30,8 @@ import { CONTEXT_FIND_INPUT_FOCUSED, CONTEXT_REPLACE_INPUT_FOCUSED, FIND_IDS, MA import { FindReplaceState, FindReplaceStateChangedEvent } from 'vs/editor/contrib/find/findState'; import * as nls from 'vs/nls'; import { AccessibilitySupport } from 'vs/platform/accessibility/common/accessibility'; -import { ContextScopedFindInput, ContextScopedReplaceInput } from 'vs/platform/browser/contextScopedHistoryWidget'; -import { showHistoryKeybindingHint } from 'vs/platform/browser/historyWidgetKeybindingHint'; +import { ContextScopedFindInput, ContextScopedReplaceInput } from 'vs/platform/history/browser/contextScopedHistoryWidget'; +import { showHistoryKeybindingHint } from 'vs/platform/history/browser/historyWidgetKeybindingHint'; import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { INotificationService } from 'vs/platform/notification/common/notification'; diff --git a/src/vs/platform/browser/contextScopedHistoryWidget.ts b/src/vs/platform/history/browser/contextScopedHistoryWidget.ts similarity index 99% rename from src/vs/platform/browser/contextScopedHistoryWidget.ts rename to src/vs/platform/history/browser/contextScopedHistoryWidget.ts index 7f42b6269ec..c4885858644 100644 --- a/src/vs/platform/browser/contextScopedHistoryWidget.ts +++ b/src/vs/platform/history/browser/contextScopedHistoryWidget.ts @@ -11,6 +11,7 @@ import { HistoryInputBox, IHistoryInputOptions } from 'vs/base/browser/ui/inputb import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import { ContextKeyExpr, IContextKey, IContextKeyService, IContextKeyServiceTarget, RawContextKey } from 'vs/platform/contextkey/common/contextkey'; import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; +// eslint-disable-next-line code-import-patterns import { Context as SuggestContext } from 'vs/editor/contrib/suggest/suggest'; export const HistoryNavigationWidgetContext = 'historyNavigationWidget'; diff --git a/src/vs/platform/browser/historyWidgetKeybindingHint.ts b/src/vs/platform/history/browser/historyWidgetKeybindingHint.ts similarity index 100% rename from src/vs/platform/browser/historyWidgetKeybindingHint.ts rename to src/vs/platform/history/browser/historyWidgetKeybindingHint.ts diff --git a/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.ts b/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.ts index 9a1228ee251..d87fb733b2c 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.ts +++ b/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.ts @@ -17,7 +17,7 @@ import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { editorWidgetBackground, inputActiveOptionBorder, inputActiveOptionBackground, inputActiveOptionForeground, inputBackground, inputBorder, inputForeground, inputValidationErrorBackground, inputValidationErrorBorder, inputValidationErrorForeground, inputValidationInfoBackground, inputValidationInfoBorder, inputValidationInfoForeground, inputValidationWarningBackground, inputValidationWarningBorder, inputValidationWarningForeground, widgetShadow, editorWidgetForeground } from 'vs/platform/theme/common/colorRegistry'; import { IColorTheme, registerThemingParticipant } from 'vs/platform/theme/common/themeService'; -import { ContextScopedFindInput } from 'vs/platform/browser/contextScopedHistoryWidget'; +import { ContextScopedFindInput } from 'vs/platform/history/browser/contextScopedHistoryWidget'; import { widgetClose } from 'vs/platform/theme/common/iconRegistry'; const NLS_FIND_INPUT_LABEL = nls.localize('label.find', "Find"); diff --git a/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.ts b/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.ts index 6ab3d95b2c2..59b8dd18cef 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.ts +++ b/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.ts @@ -36,7 +36,7 @@ import { EditorExtensionsRegistry } from 'vs/editor/browser/editorExtensions'; import { IThemable } from 'vs/base/common/styler'; import { DEFAULT_FONT_FAMILY } from 'vs/workbench/browser/style'; import { HistoryNavigator } from 'vs/base/common/history'; -import { createAndBindHistoryNavigationWidgetScopedContextKeyService, IHistoryNavigationContext } from 'vs/platform/browser/contextScopedHistoryWidget'; +import { createAndBindHistoryNavigationWidgetScopedContextKeyService, IHistoryNavigationContext } from 'vs/platform/history/browser/contextScopedHistoryWidget'; import { IHistoryNavigationWidget } from 'vs/base/browser/history'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; diff --git a/src/vs/workbench/contrib/debug/browser/repl.ts b/src/vs/workbench/contrib/debug/browser/repl.ts index ae412a0a986..c89ad4576e6 100644 --- a/src/vs/workbench/contrib/debug/browser/repl.ts +++ b/src/vs/workbench/contrib/debug/browser/repl.ts @@ -37,8 +37,8 @@ import { SuggestController } from 'vs/editor/contrib/suggest/suggestController'; import { localize } from 'vs/nls'; import { createAndFillInContextMenuActions } from 'vs/platform/actions/browser/menuEntryActionViewItem'; import { Action2, IMenu, IMenuService, MenuId, registerAction2 } from 'vs/platform/actions/common/actions'; -import { createAndBindHistoryNavigationWidgetScopedContextKeyService } from 'vs/platform/browser/contextScopedHistoryWidget'; -import { showHistoryKeybindingHint } from 'vs/platform/browser/historyWidgetKeybindingHint'; +import { createAndBindHistoryNavigationWidgetScopedContextKeyService } from 'vs/platform/history/browser/contextScopedHistoryWidget'; +import { showHistoryKeybindingHint } from 'vs/platform/history/browser/historyWidgetKeybindingHint'; import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { ContextKeyExpr, IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; diff --git a/src/vs/workbench/contrib/debug/browser/replFilter.ts b/src/vs/workbench/contrib/debug/browser/replFilter.ts index 8a901cf9f00..e888619b0ba 100644 --- a/src/vs/workbench/contrib/debug/browser/replFilter.ts +++ b/src/vs/workbench/contrib/debug/browser/replFilter.ts @@ -18,7 +18,7 @@ import { toDisposable } from 'vs/base/common/lifecycle'; import { Event, Emitter } from 'vs/base/common/event'; import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { KeyCode } from 'vs/base/common/keyCodes'; -import { ContextScopedHistoryInputBox } from 'vs/platform/browser/contextScopedHistoryWidget'; +import { ContextScopedHistoryInputBox } from 'vs/platform/history/browser/contextScopedHistoryWidget'; import { attachInputBoxStyler, attachStylerCallback } from 'vs/platform/theme/common/styler'; import { IThemeService } from 'vs/platform/theme/common/themeService'; import { badgeBackground, badgeForeground, contrastBorder } from 'vs/platform/theme/common/colorRegistry'; diff --git a/src/vs/workbench/contrib/markers/browser/markersViewActions.ts b/src/vs/workbench/contrib/markers/browser/markersViewActions.ts index 60c7d6886ac..3da2df008f5 100644 --- a/src/vs/workbench/contrib/markers/browser/markersViewActions.ts +++ b/src/vs/workbench/contrib/markers/browser/markersViewActions.ts @@ -19,7 +19,7 @@ import { ActionBar } from 'vs/base/browser/ui/actionbar/actionbar'; import { badgeBackground, badgeForeground, contrastBorder, inputActiveOptionBorder, inputActiveOptionBackground, inputActiveOptionForeground } from 'vs/platform/theme/common/colorRegistry'; import { localize } from 'vs/nls'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { ContextScopedHistoryInputBox } from 'vs/platform/browser/contextScopedHistoryWidget'; +import { ContextScopedHistoryInputBox } from 'vs/platform/history/browser/contextScopedHistoryWidget'; import { Marker } from 'vs/workbench/contrib/markers/browser/markersModel'; import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { Event, Emitter } from 'vs/base/common/event'; @@ -30,7 +30,7 @@ import { DropdownMenuActionViewItem } from 'vs/base/browser/ui/dropdown/dropdown import { registerIcon } from 'vs/platform/theme/common/iconRegistry'; import { IMarkersView } from 'vs/workbench/contrib/markers/browser/markers'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; -import { showHistoryKeybindingHint } from 'vs/platform/browser/historyWidgetKeybindingHint'; +import { showHistoryKeybindingHint } from 'vs/platform/history/browser/historyWidgetKeybindingHint'; export interface IMarkersFiltersChangeEvent { filterText?: boolean; diff --git a/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.ts b/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.ts index cf1a1af9df2..f767b358e0d 100644 --- a/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.ts +++ b/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.ts @@ -15,7 +15,7 @@ import 'vs/css!./notebookFindReplaceWidget'; import { FindReplaceState, FindReplaceStateChangedEvent } from 'vs/editor/contrib/find/findState'; import { findNextMatchIcon, findPreviousMatchIcon, findReplaceAllIcon, findReplaceIcon, SimpleButton } from 'vs/editor/contrib/find/findWidget'; import * as nls from 'vs/nls'; -import { ContextScopedReplaceInput, createAndBindHistoryNavigationWidgetScopedContextKeyService, IContextScopedHistoryNavigationWidget } from 'vs/platform/browser/contextScopedHistoryWidget'; +import { ContextScopedReplaceInput, createAndBindHistoryNavigationWidgetScopedContextKeyService, IContextScopedHistoryNavigationWidget } from 'vs/platform/history/browser/contextScopedHistoryWidget'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IContextMenuService, IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { editorWidgetBackground, editorWidgetForeground, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground, inputBackground, inputBorder, inputForeground, inputValidationErrorBackground, inputValidationErrorBorder, inputValidationErrorForeground, inputValidationInfoBackground, inputValidationInfoBorder, inputValidationInfoForeground, inputValidationWarningBackground, inputValidationWarningBorder, inputValidationWarningForeground, widgetShadow } from 'vs/platform/theme/common/colorRegistry'; diff --git a/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.ts b/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.ts index 63168702652..f037b2a1ba8 100644 --- a/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.ts +++ b/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.ts @@ -20,8 +20,8 @@ import { URI } from 'vs/base/common/uri'; import { ICodeEditor, IEditorMouseEvent, MouseTargetType } from 'vs/editor/browser/editorBrowser'; import { IModelDeltaDecoration, TrackedRangeStickiness } from 'vs/editor/common/model'; import { localize } from 'vs/nls'; -import { ContextScopedHistoryInputBox } from 'vs/platform/browser/contextScopedHistoryWidget'; -import { showHistoryKeybindingHint } from 'vs/platform/browser/historyWidgetKeybindingHint'; +import { ContextScopedHistoryInputBox } from 'vs/platform/history/browser/contextScopedHistoryWidget'; +import { showHistoryKeybindingHint } from 'vs/platform/history/browser/historyWidgetKeybindingHint'; import { ConfigurationTarget } from 'vs/platform/configuration/common/configuration'; import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IContextMenuService, IContextViewService } from 'vs/platform/contextview/browser/contextView'; diff --git a/src/vs/workbench/contrib/search/browser/patternInputWidget.ts b/src/vs/workbench/contrib/search/browser/patternInputWidget.ts index 632ef3a80e1..6e275c21812 100644 --- a/src/vs/workbench/contrib/search/browser/patternInputWidget.ts +++ b/src/vs/workbench/contrib/search/browser/patternInputWidget.ts @@ -14,8 +14,8 @@ import { Emitter, Event as CommonEvent } from 'vs/base/common/event'; import { KeyCode } from 'vs/base/common/keyCodes'; import type { IThemable } from 'vs/base/common/styler'; import * as nls from 'vs/nls'; -import { ContextScopedHistoryInputBox } from 'vs/platform/browser/contextScopedHistoryWidget'; -import { showHistoryKeybindingHint } from 'vs/platform/browser/historyWidgetKeybindingHint'; +import { ContextScopedHistoryInputBox } from 'vs/platform/history/browser/contextScopedHistoryWidget'; +import { showHistoryKeybindingHint } from 'vs/platform/history/browser/historyWidgetKeybindingHint'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; diff --git a/src/vs/workbench/contrib/search/browser/searchWidget.ts b/src/vs/workbench/contrib/search/browser/searchWidget.ts index 698772d68ae..3eb5f683e56 100644 --- a/src/vs/workbench/contrib/search/browser/searchWidget.ts +++ b/src/vs/workbench/contrib/search/browser/searchWidget.ts @@ -26,7 +26,7 @@ import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/co import { ISearchConfigurationProperties } from 'vs/workbench/services/search/common/search'; import { attachFindReplaceInputBoxStyler, attachInputBoxStyler } from 'vs/platform/theme/common/styler'; import { IThemeService, ThemeIcon } from 'vs/platform/theme/common/themeService'; -import { ContextScopedFindInput, ContextScopedReplaceInput } from 'vs/platform/browser/contextScopedHistoryWidget'; +import { ContextScopedFindInput, ContextScopedReplaceInput } from 'vs/platform/history/browser/contextScopedHistoryWidget'; import { appendKeyBindingLabel, isSearchViewFocused, getSearchView } from 'vs/workbench/contrib/search/browser/searchActions'; import * as Constants from 'vs/workbench/contrib/search/common/constants'; import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; @@ -35,7 +35,7 @@ import { Checkbox } from 'vs/base/browser/ui/checkbox/checkbox'; import { IViewsService } from 'vs/workbench/common/views'; import { searchReplaceAllIcon, searchHideReplaceIcon, searchShowContextIcon, searchShowReplaceIcon } from 'vs/workbench/contrib/search/browser/searchIcons'; import { ToggleSearchEditorContextLinesCommandId } from 'vs/workbench/contrib/searchEditor/browser/constants'; -import { showHistoryKeybindingHint } from 'vs/platform/browser/historyWidgetKeybindingHint'; +import { showHistoryKeybindingHint } from 'vs/platform/history/browser/historyWidgetKeybindingHint'; /** Specified in searchview.css */ export const SingleLineInputHeight = 24;