mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-28 20:43:31 +01:00
* Run our custom eslint rules using ts-node Use `ts-node` to run our custom eslint rules. This lets us delete the pre-compiled js. It also means you can don't have to compile the rules while editing them As part of this change, I've also switched us to using an eslint plugin instead of a rulesDir. This is now the preferred way to ship custom rules * Fix two more disables * Move ts-node to project root * Enable transpileOnly
54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import * as eslint from 'eslint';
|
|
import type * as estree from 'estree';
|
|
|
|
export = new class ApiVsCodeInComments implements eslint.Rule.RuleModule {
|
|
|
|
readonly meta: eslint.Rule.RuleMetaData = {
|
|
messages: {
|
|
comment: `Don't use the term 'vs code' in comments`
|
|
}
|
|
};
|
|
|
|
create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
|
|
|
|
const sourceCode = context.getSourceCode();
|
|
|
|
return {
|
|
['Program']: (_node: any) => {
|
|
|
|
for (const comment of sourceCode.getAllComments()) {
|
|
if (comment.type !== 'Block') {
|
|
continue;
|
|
}
|
|
if (!comment.range) {
|
|
continue;
|
|
}
|
|
|
|
const startIndex = comment.range[0] + '/*'.length;
|
|
const re = /vs code/ig;
|
|
let match: RegExpExecArray | null;
|
|
while ((match = re.exec(comment.value))) {
|
|
// Allow using 'VS Code' in quotes
|
|
if (comment.value[match.index - 1] === `'` && comment.value[match.index + match[0].length] === `'`) {
|
|
continue;
|
|
}
|
|
|
|
// Types for eslint seem incorrect
|
|
const start = sourceCode.getLocFromIndex(startIndex + match.index) as any as estree.Position;
|
|
const end = sourceCode.getLocFromIndex(startIndex + match.index + match[0].length) as any as estree.Position;
|
|
context.report({
|
|
messageId: 'comment',
|
|
loc: { start, end }
|
|
});
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
};
|