{ "root": true, "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 6, "sourceType": "module" }, "plugins": [ "@typescript-eslint", "jsdoc", "header", "local" ], "rules": { "no-undef": "off", "no-unused-vars": "off", "constructor-super": "warn", "curly": "off", "eqeqeq": "warn", "no-buffer-constructor": "warn", "no-caller": "warn", "no-debugger": "warn", "no-duplicate-case": "warn", "no-duplicate-imports": "off", "no-eval": "warn", "no-async-promise-executor": "off", "no-extra-semi": "warn", "no-new-wrappers": "warn", "no-redeclare": "off", "no-sparse-arrays": "warn", "no-throw-literal": "off", "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": "off", "jsdoc/no-types": "warn", "semi": "off", "@typescript-eslint/semi": "off", "@typescript-eslint/naming-convention": [ "warn", { "selector": "class", "format": [ "PascalCase" ] } ], "local/code-no-unused-expressions": [ "off", { "allowTernary": true } ], "code-translation-remind": "off", "local/code-no-nls-in-standalone-editor": "warn", "local/code-no-standalone-editor": "warn", "code-no-unexternalized-strings": "off", "local/code-declare-service-brand": "warn", "local/code-layering": [ "warn", { "common": [], "node": [ "common" ], "browser": [ "common" ], "electron-sandbox": [ "common", "browser" ], "electron-main": [ "common", "node" ] } ], "code-import-patterns": [ "off", // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // !!! 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", "sinon-test", "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/electron-sandbox/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser,electron-sandbox}/**" ] }, { "target": "**/{vs,sql}/base/node/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/{common,node}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { // vs/base/test/browser contains tests for vs/base/browser "target": "**/{vs,sql}/base/test/browser/**", "restrictions": [ "assert", "sinon", "sinon-test", "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,node}/**", "**/{vs,sql}/base/parts/*/{common,node}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/{vs,sql}/base/parts/*/electron-sandbox/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser,electron-sandbox}/**", "**/{vs,sql}/base/parts/*/{common,browser,electron-sandbox}/**" ] }, { "target": "**/{vs,sql}/base/parts/*/electron-browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/base/parts/*/{common,browser,node,electron-sandbox,electron-browser}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/{vs,sql}/base/parts/*/electron-main/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/{common,node,electron-main}/**", "**/{vs,sql}/base/parts/*/{common,node,electron-main}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/{vs,sql}/platform/*/common/**", "restrictions": [ "vs/nls", "azdata", "mssql", "azurecore", "**/{vs,sql}/base/common/**", "**/{vs,sql}/base/parts/*/common/**", "**/{vs,sql}/platform/*/common/**", "@microsoft/1ds-post-js", "@microsoft/1ds-core-js" ] }, { "target": "**/{vs,sql}/platform/*/test/common/**", "restrictions": [ "assert", "typemoq", "sinon", "sinon-test", "vs/nls", "azdata", "**/{vs,sql}/base/common/**", "**/{vs,sql}/base/parts/*/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}/**", "@vscode/*", "@parcel/*", "*", // node modules "@microsoft/1ds-post-js", "@microsoft/1ds-core-js" ] }, { "target": "**/{vs,sql}/platform/*/electron-sandbox/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser,electron-sandbox}/**", "**/{vs,sql}/base/parts/*/{common,browser,electron-sandbox}/**", "**/{vs,sql}/platform/*/{common,browser,electron-sandbox}/**" ] }, { "target": "**/{vs,sql}/platform/*/electron-browser/**", "restrictions": [ "vs/nls", "azdata", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/base/parts/*/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/platform/*/{common,browser,node,electron-sandbox,electron-browser}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "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}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/{vs,sql}/platform/*/test/browser/**", "restrictions": [ "assert", "typemoq", "sinon", "azdata", "sinon-test", "vs/nls", "**/{vs,sql}/base/{common,browser}/**", "**/{vs,sql}/base/test/{common,browser}/**", "**/{vs,sql}/base/parts/*/common/**", // {{SQL CARBON EDIT}} "**/{vs,sql}/platform/*/{common,browser}/**", "**/{vs,sql}/platform/*/test/{common,browser}/**", "@microsoft/1ds-post-js", "@microsoft/1ds-core-js" ] }, { "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", "sinon-test", "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", "sinon-test", "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", "sinon-test", "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", "sinon-test", "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", "sinon-test", "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,sql}/workbench/api/common/**", "restrictions": [ "vscode", "azdata", "mssql", "azurecore", "vs/nls", "**/{vs,sql}/base/common/**", "**/{vs,sql}/platform/*/common/**", "**/{vs,sql}/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-sandbox/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser,electron-sandbox}/**", "**/{vs,sql}/base/parts/*/{common,browser,electron-sandbox}/**", "**/{vs,sql}/platform/*/{common,browser,electron-sandbox}/**", "**/{vs,sql}/editor/{common,browser,electron-sandbox}/**", "**/{vs,sql}/editor/contrib/**", // editor/contrib is equivalent to /browser/ by convention "**/{vs,sql}/workbench/{common,browser,electron-sandbox}/**", "**/{vs,sql}/workbench/api/{common,browser,electron-sandbox}/**", "**/{vs,sql}/workbench/services/*/{common,browser,electron-sandbox}/**" ] }, { "target": "**/{vs,sql}/workbench/electron-browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/base/parts/*/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/platform/*/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/editor/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/editor/contrib/**", // editor/contrib is equivalent to /browser/ by convention "**/{vs,sql}/workbench/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/workbench/api/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/workbench/services/*/{common,browser,node,electron-sandbox,electron-browser}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "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-sandbox,electron-browser}/**", "vs/workbench/contrib/files/browser/editors/fileEditorInput", "**/{vs,sql}/workbench/services/**", "**/{vs,sql}/workbench/test/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/{vs,sql}/workbench/services/**/common/**", "restrictions": [ "vs/nls", "azdata", "**/{vs,sql}/base/**/common/**", "**/{vs,sql}/platform/**/common/**", "**/{vs,sql}/editor/common/**", "**/{vs,sql}/workbench/workbench.web.api", "**/{vs,sql}/workbench/common/**", "**/{vs,sql}/workbench/services/**/common/**", "**/{vs,sql}/workbench/api/**/common/**", "**/{vs,sql}/workbench/contrib/**/common/**", "vs/workbench/contrib/files/common/editors/fileEditorInput", // this should be fine, it only accesses constants from contrib "vscode-textmate", "vscode-oniguruma", "iconv-lite-umd", "tas-client-umd", "jschardet" ] }, { "target": "**/{vs,sql}/workbench/services/**/worker/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/**/common/**", "**/{vs,sql}/platform/**/common/**", "**/{vs,sql}/editor/common/**", "**/{vs,sql}/workbench/**/common/**", "**/{vs,sql}/workbench/**/worker/**", "**/{vs,sql}/workbench/services/**/common/**", "vscode" ] }, { "target": "**/{vs,sql}/workbench/services/**/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "azdata", "mssql", "azurecore", "vscode", "**/{vs,sql}/base/**/{common,browser,worker}/**", "**/{vs,sql}/platform/**/{common,browser}/**", "**/{vs,sql}/editor/{common,browser}/**", "**/{vs,sql}/workbench/workbench.web.api", "**/{vs,sql}/workbench/{common,browser}/**", "**/{vs,sql}/workbench/api/{common,browser}/**", "**/{vs,sql}/workbench/services/**/{common,browser}/**", "**/{vs,sql}/workbench/contrib/**/common/**", "vscode-textmate", "vscode-oniguruma", "iconv-lite-umd", "jschardet", "@vscode/vscode-languagedetection", "@angular/*", "rxjs/**", "sanitize-html", "ansi_up", "@microsoft/applicationinsights-web" ] }, { "target": "**/{vs,sql}/workbench/services/**/node/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/**/{common,node}/**", "**/{vs,sql}/platform/**/{common,node}/**", "**/{vs,sql}/editor/{common,node}/**", "**/{vs,sql}/workbench/{common,node}/**", "**/{vs,sql}/workbench/api/{common,node}/**", "**/{vs,sql}/workbench/services/**/{common,node}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/{vs,sql}/workbench/services/**/electron-sandbox/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**/{common,browser,worker,electron-sandbox}/**", "**/{vs,sql}/platform/**/{common,browser,electron-sandbox}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/{common,browser,electron-sandbox}/**", "**/{vs,sql}/workbench/api/{common,browser,electron-sandbox}/**", "**/{vs,sql}/workbench/services/**/{common,browser,electron-sandbox}/**", "vscode-textmate", "vscode-oniguruma", "iconv-lite-umd", "jschardet" ] }, { "target": "**/{vs,sql}/workbench/services/**/electron-browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**/{common,browser,worker,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/platform/**/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/workbench/api/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/workbench/services/**/{common,browser,node,electron-sandbox,electron-browser}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/{vs,sql}/workbench/contrib/**/test/**", "restrictions": [ "assert", "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**", "**/{vs,sql}/platform/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/api/common/**", // {{SQL CARBON EDIT}} "**/{vs,sql}/workbench/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/workbench/services/**", "**/{vs,sql}/workbench/contrib/**", "**/{vs,sql}/workbench/test/**", "@angular/*", // {{SQL CARBON EDIT}} "rxjs/**", // {{SQL CARBON EDIT}} "*" ] }, { "target": "**/{vs,sql}/workbench/contrib/terminal/browser/**", "restrictions": [ // xterm and its addons are strictly browser-only components "xterm", "xterm-addon-*", "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**/{common,browser}/**", "**/{vs,sql}/platform/**/{common,browser}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/{common,browser}/**", "**/{vs,sql}/workbench/contrib/**/{common,browser}/**", "**/{vs,sql}/workbench/services/**/{common,browser}/**" ] }, { "target": "**/{vs,sql}/workbench/contrib/extensions/browser/**", "restrictions": [ "semver-umd", "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**/{common,browser}/**", "**/{vs,sql}/platform/**/{common,browser}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/{common,browser}/**", "**/{vs,sql}/workbench/contrib/**/{common,browser}/**", "**/{vs,sql}/workbench/services/**/{common,browser}/**" ] }, { "target": "**/{vs,sql}/workbench/contrib/update/browser/update.ts", "restrictions": [ "semver-umd", "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**/{common,browser}/**", "**/{vs,sql}/platform/**/{common,browser}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/{common,browser}/**", "**/{vs,sql}/workbench/contrib/**/{common,browser}/**", "**/{vs,sql}/workbench/services/**/{common,browser}/**" ] }, { "target": "**/{vs,sql}/workbench/contrib/notebook/common/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**/{common,worker}/**", "**/{vs,sql}/platform/**/common/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/common/**", "**/{vs,sql}/workbench/api/common/**", "**/{vs,sql}/workbench/services/**/common/**", "**/{vs,sql}/workbench/contrib/**/common/**" ] }, { "target": "**/{vs,sql}/workbench/contrib/**/common/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "azdata", "**/{vs,sql}/base/**/common/**", "**/{vs,sql}/platform/**/common/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/common/**", "**/{vs,sql}/workbench/api/common/**", "**/{vs,sql}/workbench/services/**/common/**", "**/{vs,sql}/workbench/contrib/**/common/**" ] }, { "target": "**/{vs,sql}/workbench/contrib/**/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "azdata", "vscode", "**/{vs,sql}/base/**/{common,browser}/**", "**/{vs,sql}/platform/**/{common,browser}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/{common,browser}/**", "**/{vs,sql}/workbench/api/{common,browser}/**", "**/{vs,sql}/workbench/services/**/{common,browser}/**", "**/{vs,sql}/workbench/contrib/**/{common,browser}/**", "@angular/*", "rxjs/**", "ng2-charts", "chart.js", "plotly.js", "angular2-grid", "kburtram-query-plan", "html-to-image", "turndown", "gridstack", "mark.js", "vscode-textmate", "vscode-oniguruma", "iconv-lite-umd", "jschardet", "azdataGraph" ] }, { "target": "**/{vs,sql}/workbench/contrib/**/node/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**/{common,node}/**", "**/{vs,sql}/platform/**/{common,node}/**", "**/{vs,sql}/editor/**/common/**", "**/{vs,sql}/workbench/{common,node}/**", "**/{vs,sql}/workbench/api/{common,node}/**", "**/{vs,sql}/workbench/services/**/{common,node}/**", "**/{vs,sql}/workbench/contrib/**/{common,node}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/{vs,sql}/workbench/contrib/**/electron-sandbox/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**/{common,browser,worker,electron-sandbox}/**", "**/{vs,sql}/platform/**/{common,browser,electron-sandbox}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/{common,browser,electron-sandbox}/**", "**/{vs,sql}/workbench/api/{common,browser,electron-sandbox}/**", "**/{vs,sql}/workbench/services/**/{common,browser,electron-sandbox}/**", "**/{vs,sql}/workbench/contrib/**/{common,browser,electron-sandbox}/**", "vscode-textmate", "vscode-oniguruma", "iconv-lite-umd", "jschardet" ] }, { "target": "**/{vs,sql}/workbench/contrib/**/electron-browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**/{common,browser,worker,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/platform/**/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/workbench/api/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/workbench/services/**/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/workbench/contrib/**/{common,browser,node,electron-sandbox,electron-browser}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/{vs,sql}/code/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**/{common,browser}/**", "**/{vs,sql}/base/parts/**/{common,browser}/**", "**/{vs,sql}/platform/**/{common,browser}/**", "**/{vs,sql}/code/**/{common,browser}/**", "**/{vs,sql}/workbench/workbench.web.api" ] }, { "target": "**/{vs,sql}/code/node/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/**/{common,node}/**", "**/{vs,sql}/base/parts/**/{common,node}/**", "**/{vs,sql}/platform/**/{common,node}/**", "**/{vs,sql}/code/**/{common,node}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/{vs,sql}/code/electron-browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/{vs,sql}/base/**/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/base/parts/**/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/platform/**/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/code/**/{common,browser,node,electron-sandbox,electron-browser}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/{vs,sql}/code/electron-main/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/**/{common,node,electron-main}/**", "**/{vs,sql}/base/parts/**/{common,node,electron-main}/**", "**/{vs,sql}/platform/**/{common,node,electron-main}/**", "**/{vs,sql}/code/**/{common,node,electron-main}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/{vs,sql}/server/**", "restrictions": [ "vs/nls", "**/{vs,sql}/base/**/{common,node}/**", "**/{vs,sql}/base/parts/**/{common,node}/**", "**/{vs,sql}/platform/**/{common,node}/**", "**/{vs,sql}/workbench/**/{common,node}/**", "**/{vs,sql}/server/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/src/{vs,sql}/workbench/workbench.common.main.ts", "restrictions": [ "vs/nls", "**/{vs,sql}/base/**/{common,browser}/**", "**/{vs,sql}/base/parts/**/{common,browser}/**", "**/{vs,sql}/platform/**/{common,browser}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/**/{common,browser}/**" ] }, { "target": "**/src/{vs,sql}/workbench/workbench.web.main.ts", "restrictions": [ "vs/nls", "**/{vs,sql}/base/**/{common,browser}/**", "**/{vs,sql}/base/parts/**/{common,browser}/**", "**/{vs,sql}/platform/**/{common,browser}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/**/{common,browser}/**", "**/{vs,sql}/workbench/workbench.common.main" ] }, { "target": "**/src/{vs,sql}/workbench/workbench.web.api.ts", "restrictions": [ "vs/nls", "**/{vs,sql}/base/**/{common,browser}/**", "**/{vs,sql}/base/parts/**/{common,browser}/**", "**/{vs,sql}/platform/**/{common,browser}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/**/{common,browser}/**", "**/{vs,sql}/workbench/workbench.web.main" ] }, { "target": "**/src/{vs,sql}/workbench/workbench.sandbox.main.ts", "restrictions": [ "vs/nls", "**/{vs,sql}/base/**/{common,browser,electron-sandbox}/**", "**/{vs,sql}/base/parts/**/{common,browser,electron-sandbox}/**", "**/{vs,sql}/platform/**/{common,browser,electron-sandbox}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/**/{common,browser,electron-sandbox}/**", "**/{vs,sql}/workbench/workbench.common.main" ] }, { "target": "**/src/{vs,sql}/workbench/workbench.desktop.main.ts", "restrictions": [ "vs/nls", "**/{vs,sql}/base/**/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/base/parts/**/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/platform/**/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/editor/**", "**/{vs,sql}/workbench/**/{common,browser,node,electron-sandbox,electron-browser}/**", "**/{vs,sql}/workbench/workbench.common.main", "**/{vs,sql}/workbench/workbench.sandbox.main" ] }, { "target": "**/extensions/**", "restrictions": "**/*" }, { "target": "**/test/smoke/**", "restrictions": [ "**/test/smoke/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/test/automation/**", "restrictions": [ "**/test/automation/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/test/integration/**", "restrictions": [ "**/test/integration/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/test/monaco/**", "restrictions": [ "**/test/monaco/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/api/**.test.ts", "restrictions": [ "**/{vs,sql}/**", "assert", "sinon", "sinon-test", "crypto", "vscode", "typemoq", "azdata" ] }, { "target": "**/{node,electron-browser,electron-main}/**/*.test.ts", "restrictions": [ "**/{vs,sql}/**", "@vscode/*", "@parcel/*", "*", // node modules "@angular/*" // {{SQL CARBON EDIT}} ] }, { "target": "**/{node,electron-browser,electron-main}/**/test/**", "restrictions": [ "**/{vs,sql}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/test/{node,electron-browser,electron-main}/**", "restrictions": [ "**/{vs,sql}/**", "@vscode/*", "@parcel/*", "*" // node modules ] }, { "target": "**/**.test.ts", "restrictions": [ "**/{vs,sql}/**", "assert", "typemoq", "sinon", "sinon-test", "crypto", "xterm*", "azdata" ] }, { "target": "**/test/**", "restrictions": [ "**/{vs,sql}/**", "assert", "typemoq", "sinon", "sinon-test", "crypto", "xterm*" ] } ], "header/header": [ 2, "block", [ "---------------------------------------------------------------------------------------------", " * Copyright (c) Microsoft Corporation. All rights reserved.", " * Licensed under the Source EULA. See License.txt in the project root for license information.", " *--------------------------------------------------------------------------------------------" ] ] }, "overrides": [ { "files": [ "*.js" ], "rules": { "jsdoc/no-types": "off" } }, { "files": [ "**/sql/**" ], "rules": { "code-no-test-only": "off", "strict": ["warn", "never"], "code-no-unexternalized-strings": "off" } }, { "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", "edit", "end", "expand", "grant", "hide", "invalidate", "open", "override", "perform", "receive", "register", "remove", "rename", "save", "send", "start", "terminate", "trigger", "unregister", "write" ] } ] } }, { "files": [ "src/**/*.ts" ], "rules": { "local/code-no-look-behind-regex": "warn", "local/code-import-patterns": [ "off", { // 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", "electron", "events", "fs", "graceful-fs", "http", "https", "minimist", "native-keymap", "native-watchdog", "net", "node-pty", "os", "path", "perf_hooks", "stream", "string_decoder", "tas-client-umd", "tls", "url", "util", "v8-inspect-profiler", "vscode-regexpp", "vscode-textmate", "worker_threads", "xterm", "xterm-addon-canvas", "xterm-addon-image", "xterm-addon-search", "xterm-addon-serialize", "xterm-addon-unicode11", "xterm-addon-webgl", "xterm-headless", "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/ ] }, { "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" }, // 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" }, // 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/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": [ "src/{vs,sql}/server/*", // {{SQL CARBON EDIT}} Ignore our own that don't use our copyright "extensions/azuremonitor/src/prompts/**", "extensions/azuremonitor/src/typings/findRemove.d.ts", "extensions/kusto/src/prompts/**", "extensions/mssql/src/hdfs/webhdfs.ts", "extensions/mssql/src/prompts/**", "extensions/mssql/src/typings/bufferStreamReader.d.ts", "extensions/mssql/src/typings/findRemove.d.ts", "extensions/notebook/resources/jupyter_config/**", "extensions/notebook/src/intellisense/text.ts", "extensions/notebook/src/prompts/**", "extensions/resource-deployment/src/typings/linuxReleaseInfo.d.ts", "src/sql/base/browser/ui/table/plugins/autoSizeColumns.plugin.ts", "src/sql/base/browser/ui/table/plugins/cellSelectionModel.plugin.ts", "src/sql/base/browser/ui/table/plugins/checkboxSelectColumn.plugin.ts", "src/sql/base/browser/ui/table/plugins/headerFilter.plugin.ts", "src/sql/base/browser/ui/table/plugins/rowDetailView.ts", "src/sql/base/browser/ui/table/plugins/rowMoveManager.plugin.ts", "src/sql/base/browser/ui/table/plugins/rowSelectionModel.plugin.ts", "src/sql/workbench/services/notebook/browser/outputs/factories.ts", "src/sql/workbench/services/notebook/browser/outputs/mimemodel.ts", "src/sql/workbench/services/notebook/browser/outputs/registry.ts", "src/sql/workbench/services/notebook/browser/outputs/renderMimeInterfaces.ts", "src/sql/workbench/services/notebook/browser/outputs/sanitizer.ts", "src/sql/workbench/contrib/notebook/browser/models/outputProcessor.ts", "src/sql/workbench/contrib/notebook/browser/turndownPluginGfm.ts", "src/sql/workbench/services/notebook/common/nbformat.ts", "src/sql/workbench/services/notebook/browser/outputs/renderers.ts", "src/sql/workbench/services/notebook/browser/outputs/tableRenderers.ts" ], "rules": { "header/header": [ // hygiene.js still checks that all files (even those in this directory) are MIT licensed. "off" ] } } ] }