{ "root": true, "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 6, "sourceType": "module" }, "plugins": [ "@typescript-eslint", "jsdoc" ], "rules": { "constructor-super": "warn", "curly": "warn", "eqeqeq": "warn", "no-buffer-constructor": "warn", "no-caller": "warn", "no-debugger": "warn", "no-duplicate-case": "warn", "no-duplicate-imports": "warn", "no-eval": "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" ], // 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/class-name-casing": "warn", "code-no-unused-expressions": [ "warn", { "allowTernary": true } ], "code-translation-remind": "warn", "code-no-nls-in-standalone-editor": "warn", "code-no-standalone-editor": "warn", "code-no-unexternalized-strings": "warn", "code-layering": [ "warn", { "common": ["browser"], // {{SQL CARBON EDIT}} @anthonydresser not ideal, but for our purposes its fine for now, "node": [ "common" ], "browser": [ "common" ], "electron-main": [ "common", "node" ], "electron-browser": [ "common", "browser", "node" ] } ], "code-import-patterns": [ "warn", // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // !!! Do not relax these rules !!! // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! { "target": "**/{vs,sql}/base/common/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/common/**" ] }, { "target": "**/{vs,sql}/base/test/common/**", "restrictions": [ "assert", "sinon", "vs/nls", "**/{vs,sql}/base/common/**", "**/{vs,sql}/base/test/common/**" ] }, { "target": "**/{vs,sql}/base/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser}/**", "@angular/*", "rxjs/*" ] }, { "target": "**/{vs,sql}/base/node/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/{common,browser,node}/**", "!path" // node modules (except path where we have our own impl) ] }, { // vs/base/test/browser contains tests for vs/base/browser "target": "**/{vs,sql}/base/test/browser/**", "restrictions": [ "assert", "vs/nls", "**/{vs,sql}/base/{common,browser}/**", "**/{vs,sql}/base/test/{common,browser}/**", "@angular/*", "rxjs/*" ] }, { "target": "**/{vs,sql}/base/parts/*/common/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/common/**", "**/{vs,sql}/base/parts/*/common/**" ] }, { "target": "**/{vs,sql}/base/parts/*/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser}/**", "**/{vs,sql}/base/parts/*/{common,browser}/**", "@angular/*", "rxjs/*" ] }, { "target": "**/{vs,sql}/base/parts/*/node/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/{common,browser,node}/**", "**/{vs,sql}/base/parts/*/{common,browser,node}/**", "!path" // node modules (except path where we have our own impl) ] }, { "target": "**/{vs,sql}/base/parts/*/electron-browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser,node,electron-browser}/**", "**/{vs,sql}/base/parts/*/{common,browser,node,electron-browser}/**", "!path", // node modules (except path where we have our own impl) "@angular/*", "rxjs/*" ] }, { "target": "**/{vs,sql}/base/parts/*/electron-main/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/{common,browser,node,electron-main}/**", "**/{vs,sql}/base/parts/*/{common,browser,node,electron-main}/**", "!path", // node modules (except path where we have our own impl) "@angular/*", "rxjs/*" ] }, { "target": "**/{vs,sql}/platform/*/common/**", "restrictions": [ "vs/nls", "azdata", "**/{vs,sql}/base/common/**", "**/{vs,sql}/base/parts/*/common/**", "**/{vs,sql}/platform/*/common/**" ] }, { "target": "**/{vs,sql}/platform/*/test/common/**", "restrictions": [ "assert", "typemoq", "sinon", "vs/nls", "azdata", "**/{vs,sql}/base/common/**", "**/{vs,sql}/base/test/common/**", "**/{vs,sql}/platform/*/common/**", "**/{vs,sql}/platform/*/test/common/**" ] }, { "target": "**/{vs,sql}/platform/*/browser/**", "restrictions": [ "vs/nls", "azdata", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser}/**", "**/{vs,sql}/base/parts/*/{common,browser}/**", "**/{vs,sql}/platform/*/{common,browser}/**" ] }, { "target": "**/{vs,sql}/platform/*/node/**", "restrictions": [ "vs/nls", "azdata", "**/{vs,sql}/base/{common,node}/**", "**/{vs,sql}/base/parts/*/{common,node}/**", "**/{vs,sql}/platform/*/{common,node}/**", "!path" // node modules (except path where we have our own impl) ] }, { "target": "**/{vs,sql}/platform/*/electron-browser/**", "restrictions": [ "vs/nls", "azdata", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser,node}/**", "**/{vs,sql}/base/parts/*/{common,browser,node,electron-browser}/**", "**/{vs,sql}/platform/*/{common,browser,node,electron-browser}/**", "!path" // node modules (except path where we have our own impl) ] }, { "target": "**/{vs,sql}/platform/*/electron-main/**", "restrictions": [ "vs/nls", "azdata", "**/{vs,sql}/base/{common,node,electron-main}/**", "**/{vs,sql}/base/parts/*/{common,node,electron-main}/**", "**/{vs,sql}/platform/*/{common,node,electron-main}/**", "!path" // node modules (except path where we have our own impl) ] }, { "target": "**/{vs,sql}/platform/*/test/browser/**", "restrictions": [ "assert", "typemoq", "sinon", "azdata", "vs/nls", "**/{vs,sql}/base/{common,browser}/**", "**/{vs,sql}/base/test/{common,browser}/**", "**/{vs,sql}/platform/*/{common,browser}/**", "**/{vs,sql}/platform/*/test/{common,browser}/**" ] }, { "target": "**/{vs,sql}/editor/common/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/common/**", "**/{vs,sql}/base/worker/**", "**/{vs,sql}/platform/*/common/**", "**/{vs,sql}/editor/common/**" ] }, { "target": "**/{vs,sql}/editor/test/common/**", "restrictions": [ "assert", "sinon", "vs/nls", "**/{vs,sql}/base/common/**", "**/{vs,sql}/platform/*/common/**", "**/{vs,sql}/platform/*/test/common/**", "**/{vs,sql}/editor/common/**", "**/{vs,sql}/editor/test/common/**" ] }, { "target": "**/{vs,sql}/editor/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser}/**", "**/{vs,sql}/platform/*/{common,browser}/**", "**/{vs,sql}/editor/{common,browser}/**" ] }, { "target": "**/{vs,sql}/editor/test/browser/**", "restrictions": [ "assert", "sinon", "vs/nls", "**/{vs,sql}/base/{common,browser}/**", "**/{vs,sql}/platform/*/{common,browser}/**", "**/{vs,sql}/platform/*/test/{common,browser}/**", "**/{vs,sql}/editor/{common,browser}/**", "**/{vs,sql}/editor/test/{common,browser}/**" ] }, { "target": "**/{vs,sql}/editor/standalone/common/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/common/**", "**/{vs,sql}/platform/*/common/**", "**/{vs,sql}/editor/common/**", "**/{vs,sql}/editor/standalone/common/**" ] }, { "target": "**/{vs,sql}/editor/standalone/test/common/**", "restrictions": [ "assert", "sinon", "vs/nls", "**/{vs,sql}/base/common/**", "**/{vs,sql}/platform/*/common/**", "**/{vs,sql}/platform/*/test/common/**", "**/{vs,sql}/editor/common/**", "**/{vs,sql}/editor/test/common/**" ] }, { "target": "**/{vs,sql}/editor/standalone/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser}/**", "**/{vs,sql}/base/parts/*/{common,browser}/**", "**/{vs,sql}/platform/*/{common,browser}/**", "**/{vs,sql}/editor/{common,browser}/**", "**/{vs,sql}/editor/contrib/**", "**/{vs,sql}/editor/standalone/{common,browser}/**" ] }, { "target": "**/{vs,sql}/editor/standalone/test/browser/**", "restrictions": [ "assert", "sinon", "vs/nls", "**/{vs,sql}/base/{common,browser}/**", "**/{vs,sql}/platform/*/{common,browser}/**", "**/{vs,sql}/platform/*/test/{common,browser}/**", "**/{vs,sql}/editor/{common,browser}/**", "**/{vs,sql}/editor/standalone/{common,browser}/**", "**/{vs,sql}/editor/test/{common,browser}/**" ] }, { "target": "**/{vs,sql}/editor/contrib/*/test/**", "restrictions": [ "assert", "sinon", "vs/nls", "**/{vs,sql}/base/{common,browser}/**", "**/{vs,sql}/base/test/{common,browser}/**", "**/{vs,sql}/base/parts/*/{common,browser}/**", "**/{vs,sql}/platform/*/{common,browser}/**", "**/{vs,sql}/platform/*/test/{common,browser}/**", "**/{vs,sql}/editor/{common,browser}/**", "**/{vs,sql}/editor/test/{common,browser}/**", "**/{vs,sql}/editor/contrib/**" ] }, { "target": "**/{vs,sql}/editor/contrib/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser}/**", "**/{vs,sql}/base/parts/*/{common,browser}/**", "**/{vs,sql}/platform/{common,browser}/**", "**/{vs,sql}/platform/*/{common,browser}/**", "**/{vs,sql}/editor/{common,browser}/**", "**/{vs,sql}/editor/contrib/**" ] }, { "target": "**/{vs,sql}/workbench/common/**", "restrictions": [ "vs/nls", "azdata", "**/{vs,sql}/base/common/**", "**/{vs,sql}/base/parts/*/common/**", "**/{vs,sql}/platform/*/common/**", "**/{vs,sql}/editor/common/**", "**/{vs,sql}/editor/contrib/*/common/**", "**/{vs,sql}/workbench/common/**", "**/{vs,sql}/workbench/services/*/common/**", "assert" ] }, { "target": "**/{vs,sql}/workbench/browser/**", "restrictions": [ "vs/nls", "azdata", "@angular/*", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser}/**", "**/{vs,sql}/base/parts/*/{common,browser}/**", "**/{vs,sql}/platform/*/{common,browser}/**", "**/{vs,sql}/editor/{common,browser}/**", "**/{vs,sql}/editor/contrib/**", // editor/contrib is equivalent to /browser/ by convention "**/{vs,sql}/workbench/workbench.web.api", "**/{vs,sql}/workbench/{common,browser}/**", "**/{vs,sql}/workbench/services/*/{common,browser}/**", "assert" ] }, { "target": "**/vs/workbench/workbench.desktop.main.ts", "restrictions": [ "**" ] }, { "target": "**/{vs,sql}/workbench/api/common/**", "restrictions": [ "vscode", "azdata", "vs/nls", "**/{vs,sql}/base/common/**", "**/{vs,sql}/platform/*/common/**", "**/vs/editor/common/**", "**/{vs,sql}/editor/contrib/*/common/**", "**/{vs,sql}/workbench/api/common/**", "**/{vs,sql}/workbench/common/**", "**/{vs,sql}/workbench/services/*/common/**", "**/{vs,sql}/workbench/contrib/*/common/**" ] }, { "target": "**/{vs,sql}/workbench/api/worker/**", "restrictions": [ "vscode", "azdata", "vs/nls", "**/{vs,sql}/**/{common,worker}/**" ] }, { "target": "**/{vs,sql}/workbench/electron-browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser,node,electron-browser}/**", "**/{vs,sql}/base/parts/*/{common,browser,node,electron-browser}/**", "**/{vs,sql}/platform/*/{common,browser,node,electron-browser}/**", "**/{vs,sql}/editor/{common,browser,node,electron-browser}/**", "**/{vs,sql}/editor/contrib/**", // editor/contrib is equivalent to /browser/ by convention "**/{vs,sql}/workbench/{common,browser,node,electron-browser,api}/**", "**/{vs,sql}/workbench/services/*/{common,browser,node,electron-browser}/**", "!path" // node modules (except path where we have our own impl) ] }, { "target": "**/{vs,sql}/workbench/services/**/test/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**", "**/{vs,sql}/platform/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/{common,browser,node,electron-browser}/**", "vs/workbench/contrib/files/common/editors/fileEditorInput", "**/{vs,sql}/workbench/services/**", "**/{vs,sql}/workbench/test/**", "!path" // node modules (except path where we have our own impl) ] } ] }, "overrides": [ { "files": [ "*.js" ], "rules": { "jsdoc/no-types": "off" } }, { "files": [ "**/vscode.d.ts", "**/vscode.proposed.d.ts" ], "rules": { "vscode-dts-create-func": "warn", "vscode-dts-literal-or-types": "warn", "vscode-dts-interface-naming": "warn", "vscode-dts-event-naming": [ "warn", { "allowed": [ "onCancellationRequested", "event" ], "verbs": [ "accept", "change", "close", "collapse", "create", "delete", "dispose", "end", "expand", "hide", "open", "override", "receive", "register", "rename", "save", "send", "start", "terminate", "trigger", "unregister", "write" ] } ] } } ] }