{ "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": [ "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" ] } ], // {{SQL CARBON EDIT}} @anthonydresser for the most part these rules should be the same as vscode with some changes // anything that references **/vs/** should references **/{vs,sql}/** instead // @angular/* and rxjs/* are added to browser and electron-browser restrictions since * doesn't cover them // to begin with the only import patterns we are enforcing is import patterns in */base/* "import-patterns": [ true, // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // !!! 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", "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}/**", "*" // node modules ] }, { // 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}/**", "*" // node modules ] }, { "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}/**", "*", // node modules "@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}/**", "*", // node modules "@angular/*", "rxjs/*" ] } ], // {{SQL CARBON EDIT}} // remove import patterns and layering "no-nodejs-globals": [ true, { "target": "**/{vs,sql}/base/common/{path,process,platform}.ts", "allowed": [ "process" // -> defines safe access to process ] }, { "target": "**/{vs,sql}/**/test/{common,browser}/**", "allowed": [ "process", "Buffer", "__filename", "__dirname" ] }, { "target": "**/{vs,sql}/workbench/api/common/extHostExtensionService.ts", "allowed": [ "global" // -> safe access to 'global' ] }, { "target": "**/vs/workbench/contrib/tasks/browser/terminalTaskSystem.ts", "allowed": [ "process" ] }, { "target": "**/{vs,sql}/**/{common,browser}/**", "allowed": [ /* none */] } ], "no-dom-globals": [ true, { "target": "**/{vs,sql}/**/test/{common,node,electron-main}/**", "allowed": [ "document", "HTMLElement" ] }, { "target": "**/vs/workbench/contrib/terminal/common/{terminal.ts,terminalService.ts}", "allowed": [ "HTMLElement" ] }, { "target": "**/{vs,sql}/**/{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, "no-sync": [ true, { "exclude": [ "**/vs/**", // assume they are doing the right thing "**/extensions/git/**", // assume they are doing the right thing, "**/extensions/extension-editing/**", // assume they are doing the right thing, "**/json-language-features/**", // assume they are doing the right thing, "**/vscode-test-resolver/**", // testing doesn't matter "**/integration-tests/**", // testing doesn't matter "**/*.test.*", // testing doesn't matter "**/test/**" // testing doesn't matter ] } ], "no-useless-strict": true }, "defaultSeverity": "warning" }