cleanup hygiene

This commit is contained in:
Joao Moreno 2016-01-18 09:50:41 +01:00
parent c22706efe9
commit ef97929beb

View file

@ -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');