{ "rulesDirectory": [ "build/lib/tslint" ], "rules": { "no-arg": true, "no-construct": true, "no-debugger": true, "no-duplicate-super": true, "no-duplicate-switch-case": true, "no-duplicate-variable": true, "no-for-in-array": true, "no-eval": true, "no-redundant-jsdoc": true, "no-restricted-globals": true, "no-sparse-arrays": true, "no-string-throw": true, "no-unsafe-finally": true, "no-unused-expression": true, "no-var-keyword": true, "number-literal-format": true, "curly": true, "class-name": true, "label-position": true, "semicolon": [ true, "always" ], "triple-equals": true, "no-unexternalized-strings": [ true, { "signatures": [ "localize", "nls.localize" ], "keyIndex": 0, "messageIndex": 1 } ], "layering": [ true, { "common": [], "node": [ "common" ], "browser": [ "common" ], "electron-main": [ "common", "node" ], "electron-browser": [ "common", "browser", "node" ] } ], "import-patterns": [ true, // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // !!! Do not relax these rules !!! // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! { "target": "**/vs/base/common/**", "restrictions": [ "vs/nls", "**/vs/base/common/**" ] }, { "target": "**/vs/base/test/common/**", "restrictions": [ "assert", "vs/nls", "**/vs/base/common/**", "**/vs/base/test/common/**" ] }, { "target": "**/vs/base/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/{common,browser}/**" ] }, { "target": "**/vs/base/node/**", "restrictions": [ "vs/nls", "**/vs/base/{common,browser,node}/**", "*" // node modules ] }, { // vs/base/test/browser contains tests for vs/base/browser "target": "**/vs/base/test/browser/**", "restrictions": [ "assert", "vs/nls", "**/vs/base/{common,browser}/**", "**/vs/base/test/{common,browser}/**" ] }, { "target": "**/vs/base/parts/*/common/**", "restrictions": [ "vs/nls", "**/vs/base/common/**", "**/vs/base/parts/*/common/**" ] }, { "target": "**/vs/base/parts/*/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/{common,browser}/**", "**/vs/base/parts/*/{common,browser}/**" ] }, { "target": "**/vs/base/parts/*/node/**", "restrictions": [ "vs/nls", "**/vs/base/{common,browser,node}/**", "**/vs/base/parts/*/{common,browser,node}/**", "*" // node modules ] }, { "target": "**/vs/base/parts/*/electron-browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/{common,browser,node,electron-browser}/**", "**/vs/base/parts/*/{common,browser,node,electron-browser}/**", "*" // node modules ] }, { "target": "**/vs/base/parts/*/electron-main/**", "restrictions": [ "vs/nls", "**/vs/base/{common,browser,node,electron-main}/**", "**/vs/base/parts/*/{common,browser,node,electron-main}/**", "*" // node modules ] }, { "target": "**/vs/platform/*/common/**", "restrictions": [ "vs/nls", "**/vs/base/common/**", "**/vs/base/parts/*/common/**", "**/vs/platform/*/common/**" ] }, { "target": "**/vs/platform/*/test/common/**", "restrictions": [ "assert", "sinon", "vs/nls", "**/vs/base/common/**", "**/vs/platform/*/common/**", "**/vs/platform/*/test/common/**" ] }, { "target": "**/vs/platform/*/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/{common,browser}/**", "**/vs/base/parts/*/{common,browser}/**", "**/vs/platform/*/{common,browser}/**" ] }, { "target": "**/vs/platform/*/node/**", "restrictions": [ "vs/nls", "**/vs/base/{common,browser,node}/**", "**/vs/base/parts/*/{common,browser,node}/**", "**/vs/platform/*/{common,browser,node}/**", "*" // node modules ] }, { "target": "**/vs/platform/*/electron-browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/{common,browser,node}/**", "**/vs/base/parts/*/{common,browser,node,electron-browser}/**", "**/vs/platform/*/{common,browser,node,electron-browser}/**", "*" // node modules ] }, { "target": "**/vs/platform/*/electron-main/**", "restrictions": [ "vs/nls", "**/vs/base/{common,browser,node}/**", "**/vs/base/parts/*/{common,browser,node,electron-browser}/**", "**/vs/platform/*/{common,browser,node,electron-main}/**", "*" // node modules ] }, { "target": "**/vs/platform/*/test/browser/**", "restrictions": [ "assert", "sinon", "vs/nls", "**/vs/base/{common,browser}/**", "**/vs/platform/*/{common,browser}/**", "**/vs/platform/*/test/{common,browser}/**" ] }, { "target": "**/vs/editor/common/**", "restrictions": [ "vs/nls", "**/vs/base/common/**", "**/vs/base/worker/**", "**/vs/platform/*/common/**", "**/vs/editor/common/**" ] }, { "target": "**/vs/editor/test/common/**", "restrictions": [ "assert", "vs/nls", "**/vs/base/common/**", "**/vs/platform/*/common/**", "**/vs/platform/*/test/common/**", "**/vs/editor/common/**", "**/vs/editor/test/common/**" ] }, { "target": "**/vs/editor/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/{common,browser}/**", "**/vs/platform/*/{common,browser}/**", "**/vs/editor/{common,browser}/**" ] }, { "target": "**/vs/editor/test/browser/**", "restrictions": [ "assert", "vs/nls", "**/vs/base/{common,browser}/**", "**/vs/platform/*/{common,browser}/**", "**/vs/platform/*/test/{common,browser}/**", "**/vs/editor/{common,browser}/**", "**/vs/editor/test/{common,browser}/**" ] }, { "target": "**/vs/editor/standalone/common/**", "restrictions": [ "vs/nls", "**/vs/base/common/**", "**/vs/platform/*/common/**", "**/vs/editor/common/**", "**/vs/editor/standalone/common/**" ] }, { "target": "**/vs/editor/standalone/test/common/**", "restrictions": [ "assert", "vs/nls", "**/vs/base/common/**", "**/vs/platform/*/common/**", "**/vs/platform/*/test/common/**", "**/vs/editor/common/**", "**/vs/editor/test/common/**" ] }, { "target": "**/vs/editor/standalone/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/{common,browser}/**", "**/vs/base/parts/*/{common,browser}/**", "**/vs/platform/*/{common,browser}/**", "**/vs/editor/{common,browser}/**", "**/vs/editor/contrib/**", "**/vs/editor/standalone/{common,browser}/**" ] }, { "target": "**/vs/editor/standalone/test/browser/**", "restrictions": [ "assert", "vs/nls", "**/vs/base/{common,browser}/**", "**/vs/platform/*/{common,browser}/**", "**/vs/platform/*/test/{common,browser}/**", "**/vs/editor/{common,browser}/**", "**/vs/editor/standalone/{common,browser}/**", "**/vs/editor/test/{common,browser}/**" ] }, { "target": "**/vs/editor/contrib/*/test/**", "restrictions": [ "assert", "vs/nls", "**/vs/base/{common,browser}/**", "**/vs/base/test/{common,browser}/**", "**/vs/base/parts/*/{common,browser}/**", "**/vs/platform/*/{common,browser}/**", "**/vs/platform/*/test/{common,browser}/**", "**/vs/editor/{common,browser}/**", "**/vs/editor/test/{common,browser}/**", "**/vs/editor/contrib/**" ] }, { "target": "**/vs/editor/contrib/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/{common,browser}/**", "**/vs/base/parts/*/{common,browser}/**", "**/vs/platform/{common,browser}/**", "**/vs/platform/*/{common,browser}/**", "**/vs/editor/{common,browser}/**", "**/vs/editor/contrib/**" ] }, { "target": "**/vs/workbench/common/**", "restrictions": [ "vs/nls", "**/vs/base/common/**", "**/vs/base/parts/*/common/**", "**/vs/platform/*/common/**", "**/vs/editor/common/**", "**/vs/editor/contrib/*/common/**", "**/vs/workbench/common/**", "**/vs/workbench/services/*/common/**", "assert" ] }, { "target": "**/vs/workbench/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/{common,browser}/**", "**/vs/base/parts/*/{common,browser}/**", "**/vs/platform/*/{common,browser}/**", "**/vs/editor/{common,browser}/**", "**/vs/editor/contrib/**", // editor/contrib is equivalent to /browser/ by convention "**/vs/workbench/workbench.web.api", "**/vs/workbench/{common,browser}/**", "**/vs/workbench/services/*/{common,browser}/**", "assert" ] }, { "target": "**/vs/workbench/workbench.desktop.main.ts", "restrictions": [ "**" ] }, { "target": "**/vs/workbench/api/common/**", "restrictions": [ "vscode", "vs/nls", "**/vs/base/common/**", "**/vs/platform/*/common/**", "**/vs/editor/common/**", "**/vs/editor/contrib/*/common/**", "**/vs/workbench/api/common/**", "**/vs/workbench/common/**", "**/vs/workbench/services/*/common/**", "**/vs/workbench/contrib/*/common/**" ] }, { "target": "**/vs/workbench/api/worker/**", "restrictions": [ "vscode", "vs/nls", "**/vs/**/{common,worker}/**" ] }, { "target": "**/vs/workbench/electron-browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/{common,browser,node,electron-browser}/**", "**/vs/base/parts/*/{common,browser,node,electron-browser}/**", "**/vs/platform/*/{common,browser,node,electron-browser}/**", "**/vs/editor/{common,browser,node,electron-browser}/**", "**/vs/editor/contrib/**", // editor/contrib is equivalent to /browser/ by convention "**/vs/workbench/{common,browser,node,electron-browser,api}/**", "**/vs/workbench/services/*/{common,browser,node,electron-browser}/**", "*" // node modules ] }, { "target": "**/vs/workbench/services/**/test/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/**", "**/vs/platform/**", "**/vs/editor/**", "**/vs/workbench/{common,browser,node,electron-browser}/**", "vs/workbench/contrib/files/common/editors/fileEditorInput", "**/vs/workbench/services/**", "**/vs/workbench/test/**", "*" // node modules ] }, { "target": "**/vs/workbench/services/**/common/**", "restrictions": [ "vs/nls", "**/vs/base/**/common/**", "**/vs/platform/**/common/**", "**/vs/editor/common/**", "**/vs/workbench/workbench.web.api", "**/vs/workbench/common/**", "**/vs/workbench/services/**/common/**", "**/vs/workbench/api/**/common/**", "vscode-textmate" ] }, { "target": "**/vs/workbench/services/**/worker/**", "restrictions": [ "vs/nls", "**/vs/base/**/common/**", "**/vs/platform/**/common/**", "**/vs/editor/common/**", "**/vs/workbench/**/common/**", "**/vs/workbench/**/worker/**", "**/vs/workbench/services/**/common/**", "vscode" ] }, { "target": "**/vs/workbench/services/**/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/**/{common,browser,worker}/**", "**/vs/platform/**/{common,browser}/**", "**/vs/editor/{common,browser}/**", "**/vs/workbench/workbench.web.api", "**/vs/workbench/{common,browser}/**", "**/vs/workbench/api/{common,browser}/**", "**/vs/workbench/services/**/{common,browser}/**", "vscode-textmate", "onigasm-umd", "@microsoft/applicationinsights-web" ] }, { "target": "**/vs/workbench/services/**/node/**", "restrictions": [ "vs/nls", "**/vs/base/**/{common,node}/**", "**/vs/platform/**/{common,node}/**", "**/vs/editor/{common,node}/**", "**/vs/workbench/{common,node}/**", "**/vs/workbench/api/{common,node}/**", "**/vs/workbench/services/**/{common,node}/**", "*" // node modules ] }, { "target": "**/vs/workbench/services/**/electron-browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/**/{common,browser,worker,node,electron-browser}/**", "**/vs/platform/**/{common,browser,node,electron-browser}/**", "**/vs/editor/**", "**/vs/workbench/{common,browser,node,electron-browser,api}/**", "**/vs/workbench/services/**/{common,browser,node,electron-browser}/**", "*" // node modules ] }, { "target": "**/vs/workbench/contrib/files/common/**", "restrictions": [ "vs/nls", "**/vs/base/common/**", "**/vs/base/parts/*/common/**", "**/vs/platform/*/common/**", "**/vs/editor/common/**", "**/vs/editor/contrib/*/common/**", "**/vs/workbench/common/**", "**/vs/workbench/services/*/common/**", "**/vs/workbench/contrib/files/common/**", "assert" ] }, { "target": "**/vs/workbench/contrib/files/browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/{common,browser}/**", "**/vs/base/parts/*/{common,browser}/**", "**/vs/platform/*/{common,browser}/**", "**/vs/editor/{common,browser}/**", "**/vs/editor/contrib/**", // editor/contrib is equivalent to /browser/ by convention "**/vs/workbench/{common,browser}/**", "**/vs/workbench/services/*/{common,browser}/**", "**/vs/workbench/contrib/files/{common,browser}/**", "assert" ] }, { "target": "**/vs/workbench/contrib/terminal/browser/**", "restrictions": [ // xterm and its addons are strictly browser-only components "xterm", "xterm-addon-*", "**/vs/**" ] }, { "target": "**/vs/workbench/contrib/extensions/browser/**", "restrictions": [ "semver-umd", "**/vs/**" ] }, { "target": "**/vs/code/node/**", "restrictions": [ "vs/nls", "**/vs/base/**/{common,browser,node}/**", "**/vs/base/parts/**/{common,browser,node}/**", "**/vs/platform/**/{common,browser,node}/**", "**/vs/code/**/{common,browser,node}/**", "*" // node modules ] }, { "target": "**/vs/code/electron-browser/**", "restrictions": [ "vs/nls", "vs/css!./**/*", "**/vs/base/**/{common,browser,node,electron-browser}/**", "**/vs/base/parts/**/{common,browser,node,electron-browser}/**", "**/vs/platform/**/{common,browser,node,electron-browser}/**", "**/vs/code/**/{common,browser,node,electron-browser}/**", "*" // node modules ] }, { "target": "**/vs/code/electron-main/**", "restrictions": [ "vs/nls", "**/vs/base/**/{common,browser,node}/**", "**/vs/base/parts/**/{common,browser,node,electron-main}/**", "**/vs/platform/**/{common,browser,node,electron-main}/**", "**/vs/code/**/{common,browser,node,electron-main}/**", "*" // node modules ] }, { "target": "**/vs/server/**", "restrictions": [ "vs/nls", "**/vs/base/**/{common,node}/**", "**/vs/base/parts/**/{common,node}/**", "**/vs/platform/**/{common,node}/**", "**/vs/workbench/**/{common,node}/**", "**/vs/server/**", "**/vs/code/**/{common,node}/**", "*" // node modules ] }, { "target": "**/{node,electron-browser,electron-main}/**", "restrictions": "**/*" }, { "target": "**/extensions/**", "restrictions": "**/*" }, { "target": "**/test/smoke/**", "restrictions": [ "**/test/smoke/**", "*" ] }, { "target": "**/test/smoke2/**", "restrictions": [ "**/test/smoke2/**", "*" ] }, { "target": "{**/**.test.ts,**/test/**}", "restrictions": "{**/vs/**,assert,sinon,crypto}" }, { "target": "**/{common,browser,workbench}/**", "restrictions": "**/vs/**" } ], "no-nodejs-globals": [ true, { "target": "**/vs/base/common/{path,process,platform}.ts", "allowed": [ "process" // -> defines safe access to process ] }, { "target": "**/vs/**/test/{common,browser}/**", "allowed": [ "process", "Buffer", "__filename", "__dirname" ] }, { "target": "**/vs/workbench/api/common/extHostExtensionService.ts", "allowed": [ "global" // -> safe access to 'global' ] }, { "target": "**/vs/**/{common,browser}/**", "allowed": [ /* none */] } ], "no-dom-globals": [ true, { "target": "**/vs/**/test/{common,node,electron-main}/**", "allowed": [ "document", "HTMLElement" ] }, { "target": "**/vs/**/{common,node,electron-main}/**", "allowed": [ /* none */] } ], "duplicate-imports": true, "no-new-buffer": true, "translation-remind": true, "no-standalone-editor": true, "no-nls-in-standalone-editor": true }, "defaultSeverity": "warning" }