mirror of
https://github.com/Microsoft/vscode
synced 2024-11-05 18:29:38 +00:00
cleanup hygiene
This commit is contained in:
parent
c22706efe9
commit
ef97929beb
1 changed files with 35 additions and 38 deletions
|
@ -7,7 +7,7 @@ var gulp = require('gulp');
|
|||
var filter = require('gulp-filter');
|
||||
var es = require('event-stream');
|
||||
var path = require('path');
|
||||
var tslint = require("gulp-tslint");
|
||||
var tslint = require('gulp-tslint');
|
||||
|
||||
var all = [
|
||||
'*',
|
||||
|
@ -56,7 +56,7 @@ var indentationFilter = [
|
|||
'!extensions/**/themes/**',
|
||||
];
|
||||
|
||||
var copyrightFilterList = [
|
||||
var copyrightFilter = [
|
||||
'**',
|
||||
'!**/*.json',
|
||||
'!**/*.html',
|
||||
|
@ -70,6 +70,15 @@ var copyrightFilterList = [
|
|||
'!src/vs/editor/standalone-languages/swift.ts',
|
||||
];
|
||||
|
||||
var tslintFilter = [
|
||||
'src/**/*.ts',
|
||||
'extensions/**/*.ts',
|
||||
'!**/*.d.ts',
|
||||
'!**/typings/**',
|
||||
'!**/*.test.ts',
|
||||
'!src/vs/editor/standalone-languages/test/**'
|
||||
];
|
||||
|
||||
var copyrightHeader = [
|
||||
'/*---------------------------------------------------------------------------------------------',
|
||||
' * Copyright (c) Microsoft Corporation. All rights reserved.',
|
||||
|
@ -77,6 +86,28 @@ var copyrightHeader = [
|
|||
' *--------------------------------------------------------------------------------------------*/'
|
||||
].join('\n');
|
||||
|
||||
/**
|
||||
* Reports tslint erros in the format:
|
||||
* src/helloWorld.c:5:3: warning: implicit declaration of function ‘prinft’
|
||||
*/
|
||||
var lintReporter = function (output, file, options) {
|
||||
var relativeBase = file.base.substring(file.cwd.length + 1).replace('\\', '/');
|
||||
output.forEach(function (e) {
|
||||
var message = relativeBase + e.name + ':' + (e.startPosition.line + 1) + ':' + (e.startPosition.character + 1) + ': ' + e.failure;
|
||||
console.log('[tslint] ' + message);
|
||||
});
|
||||
};
|
||||
|
||||
gulp.task('tslint', function () {
|
||||
return gulp.src(all, { base: '.' })
|
||||
.pipe(filter(tslintFilter))
|
||||
.pipe(tslint({ rulesDirectory: 'node_modules/tslint-microsoft-contrib' }))
|
||||
.pipe(tslint.report(lintReporter, {
|
||||
summarizeFailureOutput: false,
|
||||
emitError: false
|
||||
}));
|
||||
});
|
||||
|
||||
var hygiene = exports.hygiene = function (some) {
|
||||
var errorCount = 0;
|
||||
|
||||
|
@ -93,7 +124,7 @@ var hygiene = exports.hygiene = function (some) {
|
|||
file.contents
|
||||
.toString('utf8')
|
||||
.split(/\r\n|\r|\n/)
|
||||
.forEach(function(line, i) {
|
||||
.forEach(function (line, i) {
|
||||
if (/^\s*$/.test(line)) {
|
||||
// empty or whitespace lines are OK
|
||||
} else if (/^[\t]*[^\s]/.test(line)) {
|
||||
|
@ -124,7 +155,7 @@ var hygiene = exports.hygiene = function (some) {
|
|||
.pipe(eol)
|
||||
.pipe(filter(indentationFilter))
|
||||
.pipe(indentation)
|
||||
.pipe(filter(copyrightFilterList))
|
||||
.pipe(filter(copyrightFilter))
|
||||
.pipe(copyrights)
|
||||
.pipe(es.through(null, function () {
|
||||
if (errorCount > 0) {
|
||||
|
@ -139,40 +170,6 @@ gulp.task('hygiene', function () {
|
|||
return hygiene();
|
||||
});
|
||||
|
||||
var allTypeScript = [
|
||||
'src/**/*.ts',
|
||||
'extensions/**/*.ts'
|
||||
];
|
||||
|
||||
var tslintFilter = [
|
||||
'**',
|
||||
'!**/*.d.ts',
|
||||
'!**/typings/**',
|
||||
'!**/*.test.ts',
|
||||
'!src/vs/editor/standalone-languages/test/**'
|
||||
];
|
||||
|
||||
var lintReporter = function (output, file, options) {
|
||||
//emits: src/helloWorld.c:5:3: warning: implicit declaration of function ‘prinft’
|
||||
var relativeBase = file.base.substring(file.cwd.length + 1).replace('\\', '/');
|
||||
output.forEach(function(e) {
|
||||
var message = relativeBase + e.name + ':' + (e.startPosition.line + 1) + ':' + (e.startPosition.character + 1) + ': ' + e.failure;
|
||||
console.log('[tslint] ' + message);
|
||||
});
|
||||
};
|
||||
|
||||
gulp.task('tslint', function () {
|
||||
gulp.src(allTypeScript)
|
||||
.pipe(filter(tslintFilter))
|
||||
.pipe(tslint({
|
||||
rulesDirectory: "node_modules/tslint-microsoft-contrib"
|
||||
}))
|
||||
.pipe(tslint.report(lintReporter, {
|
||||
summarizeFailureOutput: false,
|
||||
emitError: false
|
||||
}))
|
||||
});
|
||||
|
||||
// this allows us to run this as a git pre-commit hook
|
||||
if (require.main === module) {
|
||||
var cp = require('child_process');
|
||||
|
|
Loading…
Reference in a new issue