diff --git a/src/rules/eoflineRule.ts b/src/rules/eoflineRule.ts index 9331c9ae4a1..fdd1fe13bd5 100644 --- a/src/rules/eoflineRule.ts +++ b/src/rules/eoflineRule.ts @@ -28,6 +28,7 @@ export class Rule extends Lint.Rules.AbstractRule { optionsDescription: "Not configurable.", options: null, optionExamples: ["true"], + hasFix: true, type: "maintainability", typescriptOnly: false, }; @@ -41,9 +42,16 @@ export class Rule extends Lint.Rules.AbstractRule { return []; } + let fix: Lint.Fix | undefined; + const lines = sourceFile.getLineStarts(); + if (lines.length > 1) { + fix = new Lint.Fix(this.ruleName, [ + Lint.Replacement.appendText(length, sourceFile.text[lines[1] - 2] === "\r" ? "\r\n" : "\n"), + ]); + } + return this.filterFailures([ - new Lint.RuleFailure(sourceFile, length, length, Rule.FAILURE_STRING, - this.getOptions().ruleName), + new Lint.RuleFailure(sourceFile, length, length, Rule.FAILURE_STRING, this.ruleName, fix), ]); } } diff --git a/test/rules/eofline/comment/test.js.lint b/test/rules/eofline/comment.js.lint similarity index 100% rename from test/rules/eofline/comment/test.js.lint rename to test/rules/eofline/comment.js.lint diff --git a/test/rules/eofline/comment/test.ts.lint b/test/rules/eofline/comment.ts.lint similarity index 100% rename from test/rules/eofline/comment/test.ts.lint rename to test/rules/eofline/comment.ts.lint diff --git a/test/rules/eofline/disabled/test.js.lint b/test/rules/eofline/disabled.js.lint similarity index 100% rename from test/rules/eofline/disabled/test.js.lint rename to test/rules/eofline/disabled.js.lint diff --git a/test/rules/eofline/disabled/test.ts.lint b/test/rules/eofline/disabled.ts.lint similarity index 100% rename from test/rules/eofline/disabled/test.ts.lint rename to test/rules/eofline/disabled.ts.lint diff --git a/test/rules/eofline/disabled/tslint.json b/test/rules/eofline/disabled/tslint.json deleted file mode 100644 index 04d01d4fd4e..00000000000 --- a/test/rules/eofline/disabled/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rules": { - "eofline": true - }, - "jsRules": { - "eofline": true - } -} diff --git a/test/rules/eofline/empty/test.js.lint b/test/rules/eofline/empty.js.lint similarity index 100% rename from test/rules/eofline/empty/test.js.lint rename to test/rules/eofline/empty.js.lint diff --git a/test/rules/eofline/empty/test.ts.lint b/test/rules/eofline/empty.ts.lint similarity index 100% rename from test/rules/eofline/empty/test.ts.lint rename to test/rules/eofline/empty.ts.lint diff --git a/test/rules/eofline/empty/tslint.json b/test/rules/eofline/empty/tslint.json deleted file mode 100644 index 04d01d4fd4e..00000000000 --- a/test/rules/eofline/empty/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rules": { - "eofline": true - }, - "jsRules": { - "eofline": true - } -} diff --git a/test/rules/eofline/invalid.js.fix b/test/rules/eofline/invalid.js.fix new file mode 100644 index 00000000000..e5f25d98abb --- /dev/null +++ b/test/rules/eofline/invalid.js.fix @@ -0,0 +1 @@ +let foo = bar; \ No newline at end of file diff --git a/test/rules/eofline/invalid/test.js.lint b/test/rules/eofline/invalid.js.lint similarity index 100% rename from test/rules/eofline/invalid/test.js.lint rename to test/rules/eofline/invalid.js.lint diff --git a/test/rules/eofline/invalid.ts.fix b/test/rules/eofline/invalid.ts.fix new file mode 100644 index 00000000000..e5f25d98abb --- /dev/null +++ b/test/rules/eofline/invalid.ts.fix @@ -0,0 +1 @@ +let foo = bar; \ No newline at end of file diff --git a/test/rules/eofline/invalid/test.ts.lint b/test/rules/eofline/invalid.ts.lint similarity index 100% rename from test/rules/eofline/invalid/test.ts.lint rename to test/rules/eofline/invalid.ts.lint diff --git a/test/rules/eofline/invalid/tslint.json b/test/rules/eofline/invalid/tslint.json deleted file mode 100644 index 04d01d4fd4e..00000000000 --- a/test/rules/eofline/invalid/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rules": { - "eofline": true - }, - "jsRules": { - "eofline": true - } -} diff --git a/test/rules/eofline/only-whitespace.js.fix b/test/rules/eofline/only-whitespace.js.fix new file mode 100644 index 00000000000..5237d534ed2 --- /dev/null +++ b/test/rules/eofline/only-whitespace.js.fix @@ -0,0 +1,2 @@ + + diff --git a/test/rules/eofline/only-whitespace/test.js.lint b/test/rules/eofline/only-whitespace.js.lint similarity index 100% rename from test/rules/eofline/only-whitespace/test.js.lint rename to test/rules/eofline/only-whitespace.js.lint diff --git a/test/rules/eofline/only-whitespace.ts.fix b/test/rules/eofline/only-whitespace.ts.fix new file mode 100644 index 00000000000..5237d534ed2 --- /dev/null +++ b/test/rules/eofline/only-whitespace.ts.fix @@ -0,0 +1,2 @@ + + diff --git a/test/rules/eofline/only-whitespace/test.ts.lint b/test/rules/eofline/only-whitespace.ts.lint similarity index 100% rename from test/rules/eofline/only-whitespace/test.ts.lint rename to test/rules/eofline/only-whitespace.ts.lint diff --git a/test/rules/eofline/only-whitespace/tslint.json b/test/rules/eofline/only-whitespace/tslint.json deleted file mode 100644 index 04d01d4fd4e..00000000000 --- a/test/rules/eofline/only-whitespace/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rules": { - "eofline": true - }, - "jsRules": { - "eofline": true - } -} diff --git a/test/rules/eofline/comment/tslint.json b/test/rules/eofline/tslint.json similarity index 100% rename from test/rules/eofline/comment/tslint.json rename to test/rules/eofline/tslint.json diff --git a/test/rules/eofline/valid/test.js.lint b/test/rules/eofline/valid.js.lint similarity index 100% rename from test/rules/eofline/valid/test.js.lint rename to test/rules/eofline/valid.js.lint diff --git a/test/rules/eofline/valid/test.ts.lint b/test/rules/eofline/valid.ts.lint similarity index 100% rename from test/rules/eofline/valid/test.ts.lint rename to test/rules/eofline/valid.ts.lint diff --git a/test/rules/eofline/valid/tslint.json b/test/rules/eofline/valid/tslint.json deleted file mode 100644 index 04d01d4fd4e..00000000000 --- a/test/rules/eofline/valid/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rules": { - "eofline": true - }, - "jsRules": { - "eofline": true - } -} diff --git a/test/rules/eofline/whitespace/test.js.lint b/test/rules/eofline/whitespace.js.lint similarity index 100% rename from test/rules/eofline/whitespace/test.js.lint rename to test/rules/eofline/whitespace.js.lint diff --git a/test/rules/eofline/whitespace/test.ts.lint b/test/rules/eofline/whitespace.ts.lint similarity index 100% rename from test/rules/eofline/whitespace/test.ts.lint rename to test/rules/eofline/whitespace.ts.lint diff --git a/test/rules/eofline/whitespace/tslint.json b/test/rules/eofline/whitespace/tslint.json deleted file mode 100644 index 04d01d4fd4e..00000000000 --- a/test/rules/eofline/whitespace/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rules": { - "eofline": true - }, - "jsRules": { - "eofline": true - } -}