12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109 |
- {
- "root": true,
- "parser": "@typescript-eslint/parser",
- "parserOptions": {
- "ecmaVersion": 6,
- "sourceType": "module"
- },
- "plugins": [
- "@typescript-eslint",
- "jsdoc",
- "header",
- "local"
- ],
- "rules": {
- "constructor-super": "warn",
- "curly": "warn",
- "eqeqeq": "warn",
- "prefer-const": [
- "warn",
- {
- "destructuring": "all"
- }
- ],
- "no-buffer-constructor": "warn",
- "no-caller": "warn",
- "no-case-declarations": "warn",
- "no-debugger": "warn",
- "no-duplicate-case": "warn",
- "no-duplicate-imports": "warn",
- "no-eval": "warn",
- "no-async-promise-executor": "warn",
- "no-extra-semi": "warn",
- "no-new-wrappers": "warn",
- "no-redeclare": "off",
- "no-sparse-arrays": "warn",
- "no-throw-literal": "warn",
- "no-unsafe-finally": "warn",
- "no-unused-labels": "warn",
- "no-restricted-globals": [
- "warn",
- "name",
- "length",
- "event",
- "closed",
- "external",
- "status",
- "origin",
- "orientation",
- "context"
- ], // non-complete list of globals that are easy to access unintentionally
- "no-var": "warn",
- "jsdoc/no-types": "warn",
- "semi": "off",
- "@typescript-eslint/semi": "warn",
- "@typescript-eslint/member-delimiter-style": "warn",
- "@typescript-eslint/naming-convention": [
- "warn",
- {
- "selector": "class",
- "format": [
- "PascalCase"
- ]
- }
- ],
- "local/code-no-unused-expressions": [
- "warn",
- {
- "allowTernary": true
- }
- ],
- "local/code-translation-remind": "warn",
- "local/code-no-native-private": "warn",
- "local/code-parameter-properties-must-have-explicit-accessibility": "warn",
- "local/code-no-nls-in-standalone-editor": "warn",
- "local/code-no-potentially-unsafe-disposables": "warn",
- "local/code-no-dangerous-type-assertions": "off",
- "local/code-no-standalone-editor": "warn",
- "local/code-no-unexternalized-strings": "warn",
- "local/code-must-use-super-dispose": "warn",
- "local/code-declare-service-brand": "warn",
- "local/code-layering": [
- "warn",
- {
- "common": [],
- "node": [
- "common"
- ],
- "browser": [
- "common"
- ],
- "electron-sandbox": [
- "common",
- "browser"
- ],
- "electron-main": [
- "common",
- "node"
- ]
- }
- ],
- "header/header": [
- 2,
- "block",
- [
- "---------------------------------------------------------------------------------------------",
- " * Copyright (c) Microsoft Corporation. All rights reserved.",
- " * Licensed under the MIT License. See License.txt in the project root for license information.",
- " *--------------------------------------------------------------------------------------------"
- ]
- ]
- },
- "overrides": [
- {
- "files": [
- "*.js"
- ],
- "rules": {
- "jsdoc/no-types": "off"
- }
- },
- {
- "files": [
- "**/*.test.ts"
- ],
- "rules": {
- "local/code-must-use-super-dispose": "off",
- "local/code-no-test-only": "error",
- "local/code-no-test-async-suite": "warn",
- "local/code-no-unexternalized-strings": "off",
- "local/code-must-use-result": [
- "warn",
- [
- {
- "message": "Expression must be awaited",
- "functions": [
- "assertSnapshot",
- "assertHeap"
- ]
- }
- ]
- ]
- }
- },
- {
- "files": [
- "src/vs/**/*.test.ts"
- ],
- "rules": {
- "local/code-ensure-no-disposables-leak-in-test": [
- "warn",
- {
- // Files should (only) be removed from the list they adopt the leak detector
- "exclude": [
- "src/vs/base/test/browser/browser.test.ts",
- "src/vs/base/test/browser/ui/scrollbar/scrollableElement.test.ts",
- "src/vs/base/test/browser/ui/scrollbar/scrollbarState.test.ts",
- "src/vs/editor/contrib/codeAction/test/browser/codeActionModel.test.ts",
- "src/vs/editor/test/common/services/languageService.test.ts",
- "src/vs/editor/test/node/classification/typescript.test.ts",
- "src/vs/platform/configuration/test/common/configuration.test.ts",
- "src/vs/platform/extensions/test/common/extensionValidator.test.ts",
- "src/vs/platform/opener/test/common/opener.test.ts",
- "src/vs/platform/registry/test/common/platform.test.ts",
- "src/vs/platform/remote/test/common/remoteHosts.test.ts",
- "src/vs/platform/workspace/test/common/workspace.test.ts",
- "src/vs/platform/workspaces/test/electron-main/workspaces.test.ts",
- "src/vs/workbench/api/test/browser/mainThreadConfiguration.test.ts",
- "src/vs/workbench/api/test/common/extHostExtensionActivator.test.ts",
- "src/vs/workbench/api/test/node/extHostTunnelService.test.ts",
- "src/vs/workbench/contrib/bulkEdit/test/browser/bulkCellEdits.test.ts",
- "src/vs/workbench/contrib/chat/test/common/chatWordCounter.test.ts",
- "src/vs/workbench/contrib/editSessions/test/browser/editSessions.test.ts",
- "src/vs/workbench/contrib/extensions/test/common/extensionQuery.test.ts",
- "src/vs/workbench/contrib/notebook/test/browser/notebookExecutionService.test.ts",
- "src/vs/workbench/contrib/notebook/test/browser/notebookExecutionStateService.test.ts",
- "src/vs/workbench/contrib/tasks/test/common/problemMatcher.test.ts",
- "src/vs/workbench/contrib/tasks/test/common/taskConfiguration.test.ts",
- "src/vs/workbench/services/commands/test/common/commandService.test.ts",
- "src/vs/workbench/services/extensions/test/common/extensionDescriptionRegistry.test.ts",
- "src/vs/workbench/services/userActivity/test/browser/domActivityTracker.test.ts",
- "src/vs/workbench/test/browser/quickAccess.test.ts"
- ]
- }
- ]
- }
- },
- {
- "files": [
- "**/vscode.d.ts",
- "**/vscode.proposed.*.d.ts"
- ],
- "rules": {
- "local/vscode-dts-create-func": "warn",
- "local/vscode-dts-literal-or-types": "warn",
- "local/vscode-dts-string-type-literals": "warn",
- "local/vscode-dts-interface-naming": "warn",
- "local/vscode-dts-cancellation": "warn",
- "local/vscode-dts-use-thenable": "warn",
- "local/vscode-dts-region-comments": "warn",
- "local/vscode-dts-vscode-in-comments": "warn",
- "local/vscode-dts-provider-naming": [
- "warn",
- {
- "allowed": [
- "FileSystemProvider",
- "TreeDataProvider",
- "TestProvider",
- "CustomEditorProvider",
- "CustomReadonlyEditorProvider",
- "TerminalLinkProvider",
- "AuthenticationProvider",
- "NotebookContentProvider"
- ]
- }
- ],
- "local/vscode-dts-event-naming": [
- "warn",
- {
- "allowed": [
- "onCancellationRequested",
- "event"
- ],
- "verbs": [
- "accept",
- "change",
- "close",
- "collapse",
- "create",
- "delete",
- "discover",
- "dispose",
- "drop",
- "edit",
- "end",
- "execute",
- "expand",
- "grant",
- "hide",
- "invalidate",
- "open",
- "override",
- "perform",
- "receive",
- "register",
- "remove",
- "rename",
- "save",
- "send",
- "start",
- "terminate",
- "trigger",
- "unregister",
- "write"
- ]
- }
- ]
- }
- },
- {
- "files": [
- "**/vscode.d.ts"
- ],
- "rules": {
- "jsdoc/tag-lines": "off",
- "jsdoc/valid-types": "off",
- "jsdoc/no-multi-asterisks": [
- "warn",
- {
- "allowWhitespace": true
- }
- ],
- "jsdoc/require-jsdoc": [
- "warn",
- {
- "enableFixer": false,
- "contexts": [
- "TSInterfaceDeclaration",
- "TSPropertySignature",
- "TSMethodSignature",
- "TSDeclareFunction",
- "ClassDeclaration",
- "MethodDefinition",
- "PropertyDeclaration",
- "TSEnumDeclaration",
- "TSEnumMember",
- "ExportNamedDeclaration"
- ]
- }
- ],
- "jsdoc/check-param-names": [
- "warn",
- {
- "enableFixer": false,
- "checkDestructured": false
- }
- ],
- "jsdoc/require-returns": "warn"
- }
- },
- {
- "files": [
- "src/**/{common,browser}/**/*.ts"
- ],
- "rules": {
- "local/code-amd-node-module": "warn"
- }
- },
- {
- "files": [
- "src/**/{browser,electron-sandbox}/**/*.ts"
- ],
- "rules": {
- "local/code-no-global-document-listener": "warn",
- "no-restricted-syntax": [
- "warn",
- {
- "selector": "BinaryExpression[operator='instanceof'][right.name='MouseEvent']",
- "message": "Use DOM.isMouseEvent() to support multi-window scenarios."
- },
- {
- "selector": "BinaryExpression[operator='instanceof'][right.name='KeyboardEvent']",
- "message": "Use DOM.isKeyboardEvent() to support multi-window scenarios."
- },
- {
- "selector": "BinaryExpression[operator='instanceof'][right.name='PointerEvent']",
- "message": "Use DOM.isPointerEvent() to support multi-window scenarios."
- },
- {
- "selector": "BinaryExpression[operator='instanceof'][right.name='DragEvent']",
- "message": "Use DOM.isDragEvent() to support multi-window scenarios."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='activeElement']",
- "message": "Use <targetWindow>.document.activeElement to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='contains']",
- "message": "Use <targetWindow>.document.contains to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='styleSheets']",
- "message": "Use <targetWindow>.document.styleSheets to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='fullscreenElement']",
- "message": "Use <targetWindow>.document.fullscreenElement to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='body']",
- "message": "Use <targetWindow>.document.body to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='addEventListener']",
- "message": "Use <targetWindow>.document.addEventListener to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='removeEventListener']",
- "message": "Use <targetWindow>.document.removeEventListener to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='hasFocus']",
- "message": "Use <targetWindow>.document.hasFocus to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='head']",
- "message": "Use <targetWindow>.document.head to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='exitFullscreen']",
- "message": "Use <targetWindow>.document.exitFullscreen to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='getElementById']",
- "message": "Use <targetWindow>.document.getElementById to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='getElementsByClassName']",
- "message": "Use <targetWindow>.document.getElementsByClassName to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='getElementsByName']",
- "message": "Use <targetWindow>.document.getElementsByName to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='getElementsByTagName']",
- "message": "Use <targetWindow>.document.getElementsByTagName to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='getElementsByTagNameNS']",
- "message": "Use <targetWindow>.document.getElementsByTagNameNS to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='getSelection']",
- "message": "Use <targetWindow>.document.getSelection to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='open']",
- "message": "Use <targetWindow>.document.open to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='close']",
- "message": "Use <targetWindow>.document.close to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='documentElement']",
- "message": "Use <targetWindow>.document.documentElement to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='visibilityState']",
- "message": "Use <targetWindow>.document.visibilityState to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='querySelector']",
- "message": "Use <targetWindow>.document.querySelector to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='querySelectorAll']",
- "message": "Use <targetWindow>.document.querySelectorAll to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='elementFromPoint']",
- "message": "Use <targetWindow>.document.elementFromPoint to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='elementsFromPoint']",
- "message": "Use <targetWindow>.document.elementsFromPoint to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='onkeydown']",
- "message": "Use <targetWindow>.document.onkeydown to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='onkeyup']",
- "message": "Use <targetWindow>.document.onkeyup to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='onmousedown']",
- "message": "Use <targetWindow>.document.onmousedown to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='onmouseup']",
- "message": "Use <targetWindow>.document.onmouseup to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "selector": "MemberExpression[object.name='document'][property.name='execCommand']",
- "message": "Use <targetWindow>.document.execCommand to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- }
- ],
- "no-restricted-globals": [
- "warn",
- "name",
- "length",
- "event",
- "closed",
- "external",
- "status",
- "origin",
- "orientation",
- "context",
- {
- "name": "setInterval",
- "message": "Use <targetWindow>.setInterval to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "clearInterval",
- "message": "Use <targetWindow>.clearInterval to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "requestAnimationFrame",
- "message": "Use <targetWindow>.requestAnimationFrame to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "cancelAnimationFrame",
- "message": "Use <targetWindow>.cancelAnimationFrame to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "requestIdleCallback",
- "message": "Use <targetWindow>.requestIdleCallback to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "cancelIdleCallback",
- "message": "Use <targetWindow>.cancelIdleCallback to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "window",
- "message": "Use <targetWindow> to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "addEventListener",
- "message": "Use <targetWindow>.addEventListener to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "removeEventListener",
- "message": "Use <targetWindow>.removeEventListener to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "getComputedStyle",
- "message": "Use <targetWindow>.getComputedStyle to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "focus",
- "message": "Use <targetWindow>.focus to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "blur",
- "message": "Use <targetWindow>.blur to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "close",
- "message": "Use <targetWindow>.close to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "dispatchEvent",
- "message": "Use <targetWindow>.dispatchEvent to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "getSelection",
- "message": "Use <targetWindow>.getSelection to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "matchMedia",
- "message": "Use <targetWindow>.matchMedia to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "open",
- "message": "Use <targetWindow>.open to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "parent",
- "message": "Use <targetWindow>.parent to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "postMessage",
- "message": "Use <targetWindow>.postMessage to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "devicePixelRatio",
- "message": "Use <targetWindow>.devicePixelRatio to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "frames",
- "message": "Use <targetWindow>.frames to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "frameElement",
- "message": "Use <targetWindow>.frameElement to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "innerHeight",
- "message": "Use <targetWindow>.innerHeight to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "innerWidth",
- "message": "Use <targetWindow>.innerWidth to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "outerHeight",
- "message": "Use <targetWindow>.outerHeight to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "outerWidth",
- "message": "Use <targetWindow>.outerWidth to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "opener",
- "message": "Use <targetWindow>.opener to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "origin",
- "message": "Use <targetWindow>.origin to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "screen",
- "message": "Use <targetWindow>.screen to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "screenLeft",
- "message": "Use <targetWindow>.screenLeft to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "screenTop",
- "message": "Use <targetWindow>.screenTop to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "screenX",
- "message": "Use <targetWindow>.screenX to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "screenY",
- "message": "Use <targetWindow>.screenY to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "scrollX",
- "message": "Use <targetWindow>.scrollX to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "scrollY",
- "message": "Use <targetWindow>.scrollY to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "top",
- "message": "Use <targetWindow>.top to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- },
- {
- "name": "visualViewport",
- "message": "Use <targetWindow>.visualViewport to support multi-window scenarios. Resolve targetWindow with DOM.getWindow(element) or DOM.getActiveWindow() or use the predefined mainWindow constant."
- }
- ]
- }
- },
- {
- "files": [
- "src/**/*.ts"
- ],
- "rules": {
- "local/code-no-look-behind-regex": "warn",
- "local/code-import-patterns": [
- "warn",
- {
- // imports that are allowed in all files of layers:
- // - browser
- // - electron-sandbox
- "when": "hasBrowser",
- "allow": [
- "vs/css!./**/*"
- ]
- },
- {
- // imports that are allowed in all files of layers:
- // - node
- // - electron-main
- "when": "hasNode",
- "allow": [
- "@parcel/watcher",
- "@vscode/sqlite3",
- "@vscode/vscode-languagedetection",
- "@vscode/ripgrep",
- "@vscode/iconv-lite-umd",
- "@vscode/policy-watcher",
- "@vscode/proxy-agent",
- "@vscode/spdlog",
- "@vscode/windows-process-tree",
- "assert",
- "child_process",
- "console",
- "cookie",
- "crypto",
- "dns",
- "electron",
- "events",
- "fs",
- "fs/promises",
- "graceful-fs",
- "http",
- "https",
- "minimist",
- "native-keymap",
- "native-watchdog",
- "net",
- "node-pty",
- "os",
- "path",
- "perf_hooks",
- "readline",
- "stream",
- "string_decoder",
- "tas-client-umd",
- "tls",
- "url",
- "util",
- "v8-inspect-profiler",
- "vscode-regexpp",
- "vscode-textmate",
- "worker_threads",
- "@xterm/addon-image",
- "@xterm/addon-search",
- "@xterm/addon-serialize",
- "@xterm/addon-unicode11",
- "@xterm/addon-webgl",
- "@xterm/headless",
- "@xterm/xterm",
- "yauzl",
- "yazl",
- "zlib"
- ]
- },
- {
- // imports that are allowed in all /test/ files
- "when": "test",
- "allow": [
- "vs/css.build",
- "assert",
- "sinon",
- "sinon-test"
- ]
- },
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- // !!! Do not relax these rules !!!
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- //
- // A path ending in /~ has a special meaning. It indicates a template position
- // which will be substituted with one or more layers.
- //
- // When /~ is used in the target, the rule will be expanded to 14 distinct rules.
- // e.g. "src/vs/base/~" will be expanded to:
- // - src/vs/base/common
- // - src/vs/base/worker
- // - src/vs/base/browser
- // - src/vs/base/electron-sandbox
- // - src/vs/base/node
- // - src/vs/base/electron-main
- // - src/vs/base/test/common
- // - src/vs/base/test/worker
- // - src/vs/base/test/browser
- // - src/vs/base/test/electron-sandbox
- // - src/vs/base/test/node
- // - src/vs/base/test/electron-main
- //
- // When /~ is used in the restrictions, it will be replaced with the correct
- // layers that can be used e.g. "src/vs/base/electron-sandbox" will be able
- // to import "{common,browser,electron-sanbox}", etc.
- //
- // It is possible to use /~ in the restrictions property even without using it in
- // the target property by adding a layer property.
- {
- "target": "src/vs/base/~",
- "restrictions": [
- "vs/base/~"
- ]
- },
- {
- "target": "src/vs/base/parts/*/~",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~"
- ]
- },
- {
- "target": "src/vs/platform/*/~",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "tas-client-umd", // node module allowed even in /common/
- "@microsoft/1ds-core-js", // node module allowed even in /common/
- "@microsoft/1ds-post-js" // node module allowed even in /common/
- ]
- },
- {
- "target": "src/vs/editor/~",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~"
- ]
- },
- {
- "target": "src/vs/editor/contrib/*/~",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~"
- ]
- },
- {
- "target": "src/vs/editor/standalone/~",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~",
- "vs/editor/standalone/~"
- ]
- },
- {
- "target": "src/vs/editor/editor.all.ts",
- "layer": "browser",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~"
- ]
- },
- {
- "target": "src/vs/editor/editor.worker.ts",
- "layer": "worker",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~"
- ]
- },
- {
- "target": "src/vs/editor/{editor.api.ts,editor.main.ts}",
- "layer": "browser",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~",
- "vs/editor/standalone/~",
- "vs/editor/*"
- ]
- },
- {
- "target": "src/vs/workbench/~",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~",
- "vs/workbench/~",
- "vs/workbench/services/*/~",
- "assert",
- {
- "when": "test",
- "pattern": "vs/workbench/contrib/*/~"
- } // TODO@layers
- ]
- },
- {
- "target": "src/vs/workbench/api/~",
- "restrictions": [
- "vscode",
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~",
- "vs/workbench/api/~",
- "vs/workbench/~",
- "vs/workbench/services/*/~",
- "vs/workbench/contrib/*/~",
- "vs/workbench/contrib/terminalContrib/*/~"
- ]
- },
- {
- "target": "src/vs/workbench/services/*/~",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~",
- "vs/workbench/~",
- "vs/workbench/services/*/~",
- {
- "when": "test",
- "pattern": "vs/workbench/contrib/*/~"
- }, // TODO@layers
- "tas-client-umd", // node module allowed even in /common/
- "vscode-textmate", // node module allowed even in /common/
- "@vscode/vscode-languagedetection", // node module allowed even in /common/
- {
- "when": "hasBrowser",
- "pattern": "@xterm/xterm"
- } // node module allowed even in /browser/
- ]
- },
- {
- "target": "src/vs/workbench/contrib/*/~",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~",
- "vs/workbench/~",
- "vs/workbench/services/*/~",
- "vs/workbench/contrib/*/~",
- "vscode-notebook-renderer", // Type only import
- {
- "when": "hasBrowser",
- "pattern": "@xterm/xterm"
- }, // node module allowed even in /browser/
- {
- "when": "hasBrowser",
- "pattern": "@xterm/addon-*"
- }, // node module allowed even in /browser/
- {
- "when": "hasBrowser",
- "pattern": "vscode-textmate"
- } // node module allowed even in /browser/
- ]
- },
- {
- "target": "src/vs/workbench/contrib/terminalContrib/*/~",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~",
- "vs/workbench/~",
- "vs/workbench/services/*/~",
- "vs/workbench/contrib/*/~",
- // Only allow terminalContrib to import from itself, this works because
- // terminalContrib is one extra folder deep
- "vs/workbench/contrib/terminalContrib/*/~",
- "vscode-notebook-renderer", // Type only import
- {
- "when": "hasBrowser",
- "pattern": "@xterm/xterm"
- }, // node module allowed even in /browser/
- {
- "when": "hasBrowser",
- "pattern": "@xterm/addon-*"
- }, // node module allowed even in /browser/
- {
- "when": "hasBrowser",
- "pattern": "vscode-textmate"
- } // node module allowed even in /browser/
- ]
- },
- {
- "target": "src/vs/code/~",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~",
- "vs/code/~",
- {
- "when": "hasBrowser",
- "pattern": "vs/workbench/workbench.web.main"
- },
- {
- "when": "hasBrowser",
- "pattern": "vs/workbench/~"
- },
- {
- "when": "hasBrowser",
- "pattern": "vs/workbench/services/*/~"
- }
- ]
- },
- {
- "target": "src/vs/server/~",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/workbench/~",
- "vs/workbench/api/~",
- "vs/workbench/services/*/~",
- "vs/workbench/contrib/*/~",
- "vs/server/~"
- ]
- },
- {
- "target": "src/vs/workbench/contrib/terminal/terminal.all.ts",
- "layer": "browser",
- "restrictions": [
- "vs/workbench/contrib/**"
- ]
- },
- {
- "target": "src/vs/workbench/workbench.common.main.ts",
- "layer": "browser",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~",
- "vs/editor/editor.all",
- "vs/workbench/~",
- "vs/workbench/api/~",
- "vs/workbench/services/*/~",
- "vs/workbench/contrib/*/~",
- "vs/workbench/contrib/terminal/terminal.all"
- ]
- },
- {
- "target": "src/vs/workbench/workbench.web.main.ts",
- "layer": "browser",
- "restrictions": [
- "vs/base/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~",
- "vs/editor/editor.all",
- "vs/workbench/~",
- "vs/workbench/api/~",
- "vs/workbench/services/*/~",
- "vs/workbench/contrib/*/~",
- "vs/workbench/workbench.common.main"
- ]
- },
- {
- "target": "src/vs/workbench/workbench.desktop.main.ts",
- "layer": "electron-sandbox",
- "restrictions": [
- "vs/base/*/~",
- "vs/base/parts/*/~",
- "vs/platform/*/~",
- "vs/editor/~",
- "vs/editor/contrib/*/~",
- "vs/editor/editor.all",
- "vs/workbench/~",
- "vs/workbench/api/~",
- "vs/workbench/services/*/~",
- "vs/workbench/contrib/*/~",
- "vs/workbench/workbench.common.main"
- ]
- },
- {
- "target": "src/vs/amdX.ts",
- "restrictions": [
- "vs/base/common/*"
- ]
- },
- {
- "target": "src/vs/workbench/{workbench.desktop.main.nls.js,workbench.web.main.nls.js}",
- "restrictions": []
- },
- {
- "target": "src/vs/{loader.d.ts,css.ts,css.build.ts,monaco.d.ts,nls.ts,nls.build.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,server-cli.js,server-main.js}",
- "restrictions": []
- }
- ]
- }
- },
- {
- "files": [
- "test/**/*.ts"
- ],
- "rules": {
- "local/code-import-patterns": [
- "warn",
- {
- "target": "test/smoke/**",
- "restrictions": [
- "test/automation",
- "test/smoke/**",
- "@vscode/*",
- "@parcel/*",
- "@playwright/*",
- "*" // node modules
- ]
- },
- {
- "target": "test/automation/**",
- "restrictions": [
- "test/automation/**",
- "@vscode/*",
- "@parcel/*",
- "playwright-core/**",
- "@playwright/*",
- "*" // node modules
- ]
- },
- {
- "target": "test/integration/**",
- "restrictions": [
- "test/integration/**",
- "@vscode/*",
- "@parcel/*",
- "@playwright/*",
- "*" // node modules
- ]
- },
- {
- "target": "test/monaco/**",
- "restrictions": [
- "test/monaco/**",
- "@vscode/*",
- "@parcel/*",
- "@playwright/*",
- "*" // node modules
- ]
- }
- ]
- }
- },
- {
- "files": [
- "src/vs/workbench/contrib/notebook/browser/view/renderers/*.ts"
- ],
- "rules": {
- "local/code-no-runtime-import": [
- "error",
- {
- "src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.ts": ["**/*"]
- }
- ]
- }
- }
- ]
- }
|