Add regular expressions from vscode-markdownlint for error range in results.

This commit is contained in:
David Anson 2016-10-31 22:53:46 -07:00
parent 09ae51fdaa
commit dcf0462c22
12 changed files with 228 additions and 61 deletions

View file

@ -5,7 +5,8 @@
"ruleAlias": "header-increment",
"ruleDescription": "Header levels should only increment by one level at a time",
"errorDetail": "Expected: h3; Actual: h4",
"errorContext": null
"errorContext": null,
"errorRange": null
},
{
"lineNumber": 1,
@ -13,7 +14,8 @@
"ruleAlias": "first-header-h1",
"ruleDescription": "First header should be a top level header",
"errorDetail": "Expected: h1; Actual: h2",
"errorContext": null
"errorContext": null,
"errorRange": null
},
{
"lineNumber": 5,
@ -21,7 +23,8 @@
"ruleAlias": "header-style",
"ruleDescription": "Header style",
"errorDetail": "Expected: atx; Actual: atx_closed",
"errorContext": null
"errorContext": null,
"errorRange": null
},
{
"lineNumber": 10,
@ -29,7 +32,8 @@
"ruleAlias": "ul-style",
"ruleDescription": "Unordered list style",
"errorDetail": "Expected: asterisk; Actual: dash",
"errorContext": null
"errorContext": null,
"errorRange": [1, 2]
},
{
"lineNumber": 8,
@ -37,7 +41,8 @@
"ruleAlias": "list-indent",
"ruleDescription": "Inconsistent indentation for list items at the same level",
"errorDetail": "Expected: 0; Actual: 1",
"errorContext": null
"errorContext": null,
"errorRange": [1, 3]
},
{
"lineNumber": 12,
@ -45,7 +50,8 @@
"ruleAlias": "ul-start-left",
"ruleDescription": "Consider starting bulleted lists at the beginning of the line",
"errorDetail": "Expected: 0; Actual: 1",
"errorContext": null
"errorContext": null,
"errorRange": [1, 3]
},
{
"lineNumber": 12,
@ -53,7 +59,8 @@
"ruleAlias": "ul-indent",
"ruleDescription": "Unordered list indentation",
"errorDetail": "Expected: 2; Actual: 1",
"errorContext": null
"errorContext": null,
"errorRange": [1, 3]
},
{
"lineNumber": 15,
@ -61,7 +68,8 @@
"ruleAlias": "no-trailing-spaces",
"ruleDescription": "Trailing spaces",
"errorDetail": "Expected: 0; Actual: 1",
"errorContext": null
"errorContext": null,
"errorRange": [5, 1]
},
{
"lineNumber": 17,
@ -69,6 +77,7 @@
"ruleAlias": "no-hard-tabs",
"ruleDescription": "Hard tabs",
"errorDetail": "Column: 5",
"errorContext": null
"errorContext": null,
"errorRange": [5, 1]
}
]

View file

@ -5,7 +5,8 @@
"ruleAlias": "no-reversed-links",
"ruleDescription": "Reversed link syntax",
"errorDetail": "(reversed)[link]",
"errorContext": null
"errorContext": null,
"errorRange": [3, 16]
},
{
"lineNumber": 5,
@ -13,7 +14,8 @@
"ruleAlias": "no-multiple-blanks",
"ruleDescription": "Multiple consecutive blank lines",
"errorDetail": "Expected: 1; Actual: 2",
"errorContext": null
"errorContext": null,
"errorRange": null
},
{
"lineNumber": 6,
@ -21,7 +23,8 @@
"ruleAlias": "line-length",
"ruleDescription": "Line length",
"errorDetail": "Expected: 80; Actual: 99",
"errorContext": null
"errorContext": null,
"errorRange": [81, 19]
},
{
"lineNumber": 8,
@ -29,7 +32,8 @@
"ruleAlias": "commands-show-output",
"ruleDescription": "Dollar signs used before commands without showing output",
"errorDetail": null,
"errorContext": "$ command with no output"
"errorContext": "$ command with no output",
"errorRange": [5, 2]
},
{
"lineNumber": 10,
@ -37,7 +41,8 @@
"ruleAlias": "no-missing-space-atx",
"ruleDescription": "No space after hash on atx style header",
"errorDetail": null,
"errorContext": "#No space A"
"errorContext": "#No space A",
"errorRange": [1, 2]
},
{
"lineNumber": 12,
@ -45,7 +50,8 @@
"ruleAlias": "no-multiple-space-atx",
"ruleDescription": "Multiple spaces after hash on atx style header",
"errorDetail": null,
"errorContext": "# Multiple spaces A"
"errorContext": "# Multiple spaces A",
"errorRange": [1, 4]
},
{
"lineNumber": 14,
@ -53,7 +59,8 @@
"ruleAlias": "no-missing-space-closed-atx",
"ruleDescription": "No space inside hashes on closed atx style header",
"errorDetail": null,
"errorContext": "#No space B#"
"errorContext": "#No space B#",
"errorRange": [1, 2]
},
{
"lineNumber": 16,
@ -61,6 +68,7 @@
"ruleAlias": "no-multiple-space-closed-atx",
"ruleDescription": "Multiple spaces inside hashes on closed atx style header",
"errorDetail": null,
"errorContext": "# Multiple spaces B #"
"errorContext": "# Multiple spaces B #",
"errorRange": [1, 4]
}
]

View file

@ -5,7 +5,8 @@
"ruleAlias": "blanks-around-headers",
"ruleDescription": "Headers should be surrounded by blank lines",
"errorDetail": null,
"errorContext": "# Heading"
"errorContext": "# Heading",
"errorRange": null
},
{
"lineNumber": 1,
@ -13,7 +14,8 @@
"ruleAlias": "header-start-left",
"ruleDescription": "Headers must start at the beginning of the line",
"errorDetail": null,
"errorContext": " # Heading"
"errorContext": " # Heading",
"errorRange": [1, 2]
},
{
"lineNumber": 4,
@ -21,7 +23,8 @@
"ruleAlias": "no-duplicate-header",
"ruleDescription": "Multiple headers with the same content",
"errorDetail": null,
"errorContext": "# Heading"
"errorContext": "# Heading",
"errorRange": null
},
{
"lineNumber": 4,
@ -29,7 +32,8 @@
"ruleAlias": "single-h1",
"ruleDescription": "Multiple top level headers in the same document",
"errorDetail": null,
"errorContext": "# Heading"
"errorContext": "# Heading",
"errorRange": null
},
{
"lineNumber": 6,
@ -37,7 +41,8 @@
"ruleAlias": "no-trailing-punctuation",
"ruleDescription": "Trailing punctuation in header",
"errorDetail": "Punctuation: '.'",
"errorContext": null
"errorContext": null,
"errorRange": [19, 1]
},
{
"lineNumber": 8,
@ -45,7 +50,8 @@
"ruleAlias": "no-multiple-space-blockquote",
"ruleDescription": "Multiple spaces after blockquote symbol",
"errorDetail": null,
"errorContext": "> Multiple spaces"
"errorContext": "> Multiple spaces",
"errorRange": [1, 4]
},
{
"lineNumber": 9,
@ -53,7 +59,8 @@
"ruleAlias": "no-blanks-blockquote",
"ruleDescription": "Blank line inside blockquote",
"errorDetail": null,
"errorContext": null
"errorContext": null,
"errorRange": null
},
{
"lineNumber": 13,
@ -61,7 +68,8 @@
"ruleAlias": "ol-prefix",
"ruleDescription": "Ordered list item prefix",
"errorDetail": "Expected: 1; Actual: 2",
"errorContext": null
"errorContext": null,
"errorRange": [1, 4]
},
{
"lineNumber": 13,
@ -69,6 +77,7 @@
"ruleAlias": "list-marker-space",
"ruleDescription": "Spaces after list markers",
"errorDetail": "Expected: 1; Actual: 2",
"errorContext": null
"errorContext": null,
"errorRange": [1, 4]
}
]

View file

@ -5,7 +5,8 @@
"ruleAlias": "blanks-around-fences",
"ruleDescription": "Fenced code blocks should be surrounded by blank lines",
"errorDetail": null,
"errorContext": "```"
"errorContext": "```",
"errorRange": null
},
{
"lineNumber": 4,
@ -13,7 +14,8 @@
"ruleAlias": "blanks-around-lists",
"ruleDescription": "Lists should be surrounded by blank lines",
"errorDetail": null,
"errorContext": "* List"
"errorContext": "* List",
"errorRange": null
},
{
"lineNumber": 6,
@ -21,7 +23,8 @@
"ruleAlias": "no-inline-html",
"ruleDescription": "Inline HTML",
"errorDetail": "Element: hr",
"errorContext": null
"errorContext": null,
"errorRange": [7, 5]
},
{
"lineNumber": 8,
@ -29,7 +32,8 @@
"ruleAlias": "no-bare-urls",
"ruleDescription": "Bare URL used",
"errorDetail": null,
"errorContext": "http://example.com"
"errorContext": "http://example.com",
"errorRange": [6, 18]
},
{
"lineNumber": 11,
@ -37,7 +41,8 @@
"ruleAlias": "hr-style",
"ruleDescription": "Horizontal rule style",
"errorDetail": "Expected: ---; Actual: ***",
"errorContext": null
"errorContext": null,
"errorRange": null
},
{
"lineNumber": 13,
@ -45,7 +50,8 @@
"ruleAlias": "no-emphasis-as-header",
"ruleDescription": "Emphasis used instead of a header",
"errorDetail": null,
"errorContext": "Emphasis"
"errorContext": "Emphasis",
"errorRange": null
},
{
"lineNumber": 15,
@ -53,7 +59,8 @@
"ruleAlias": "no-space-in-emphasis",
"ruleDescription": "Spaces inside emphasis markers",
"errorDetail": null,
"errorContext": "* inside *"
"errorContext": "* inside *",
"errorRange": [7, 10]
},
{
"lineNumber": 17,
@ -61,7 +68,8 @@
"ruleAlias": "no-space-in-code",
"ruleDescription": "Spaces inside code span elements",
"errorDetail": null,
"errorContext": "` inside `"
"errorContext": "` inside `",
"errorRange": [7, 10]
},
{
"lineNumber": 19,
@ -69,7 +77,8 @@
"ruleAlias": "no-space-in-links",
"ruleDescription": "Spaces inside link text",
"errorDetail": null,
"errorContext": "[ inside ]"
"errorContext": "[ inside ]",
"errorRange": [7, 10]
},
{
"lineNumber": 21,
@ -77,6 +86,7 @@
"ruleAlias": "fenced-code-language",
"ruleDescription": "Fenced code blocks should have a language specified",
"errorDetail": null,
"errorContext": "```"
"errorContext": "```",
"errorRange": null
}
]

View file

@ -5,7 +5,8 @@
"ruleAlias": "first-line-h1",
"ruleDescription": "First line in file should be a top level header",
"errorDetail": null,
"errorContext": "Not a header"
"errorContext": "Not a header",
"errorRange": null
},
{
"lineNumber": 3,
@ -13,7 +14,8 @@
"ruleAlias": "no-empty-links",
"ruleDescription": "No empty links",
"errorDetail": null,
"errorContext": "[empty]"
"errorContext": "[empty]",
"errorRange": [4, 7]
},
{
"lineNumber": 4,
@ -21,6 +23,7 @@
"ruleAlias": "required-headers",
"ruleDescription": "Required header structure",
"errorDetail": null,
"errorContext": "# Header"
"errorContext": "# Header",
"errorRange": null
}
]

View file

@ -220,7 +220,8 @@ module.exports.resultFormattingV1 = function resultFormattingV1(test) {
"ruleDescription":
"Multiple spaces inside hashes on closed atx style header",
"errorDetail": null,
"errorContext": "# Multiple spa...style header #" }
"errorContext": "# Multiple spa...style header #",
"errorRange": [ 1, 4 ] }
],
"./test/atx_header_spacing.md": [
{ "lineNumber": 3,
@ -228,25 +229,29 @@ module.exports.resultFormattingV1 = function resultFormattingV1(test) {
"ruleAlias": "first-header-h1",
"ruleDescription": "First header should be a top level header",
"errorDetail": "Expected: h1; Actual: h2",
"errorContext": null },
"errorContext": null,
"errorRange": null },
{ "lineNumber": 1,
"ruleName": "MD018",
"ruleAlias": "no-missing-space-atx",
"ruleDescription": "No space after hash on atx style header",
"errorDetail": null,
"errorContext": "#Header 1 {MD018}" },
"errorContext": "#Header 1 {MD018}",
"errorRange": [ 1, 2 ] },
{ "lineNumber": 3,
"ruleName": "MD019",
"ruleAlias": "no-multiple-space-atx",
"ruleDescription": "Multiple spaces after hash on atx style header",
"errorDetail": null,
"errorContext": "## Header 2 {MD019}" },
"errorContext": "## Header 2 {MD019}",
"errorRange": [ 1, 5 ] },
{ "lineNumber": 5,
"ruleName": "MD019",
"ruleAlias": "no-multiple-space-atx",
"ruleDescription": "Multiple spaces after hash on atx style header",
"errorDetail": null,
"errorContext": "## Header 3 {MD019}" }
"errorContext": "## Header 3 {MD019}",
"errorRange": [ 1, 6 ] }
],
"./test/first_header_bad_atx.md": [
{ "lineNumber": 1,
@ -254,7 +259,8 @@ module.exports.resultFormattingV1 = function resultFormattingV1(test) {
"ruleAlias": "first-header-h1",
"ruleDescription": "First header should be a top level header",
"errorDetail": "Expected: h1; Actual: h2",
"errorContext": null }
"errorContext": null,
"errorRange": null }
]
};
test.deepEqual(actualResult, expectedResult, "Undetected issues.");
@ -283,6 +289,38 @@ module.exports.resultFormattingV1 = function resultFormattingV1(test) {
});
};
module.exports.resultFormattingV1BadRegExp = function resultFormattingV1(test) {
test.expect(3);
var md010 = rules[8];
test.equal(md010.name, "MD010", "Wrong rule.");
var md010RegExp = md010.regexp;
md010.regexp = /X/;
var options = {
"strings": {
"tab": "\t."
},
"config": defaultConfig,
"resultVersion": 1
};
markdownlint(options, function callback(err, actualResult) {
test.ifError(err);
var expectedResult = {
"tab": [
{ "lineNumber": 1,
"ruleName": "MD010",
"ruleAlias": "no-hard-tabs",
"ruleDescription": "Hard tabs",
"errorDetail": "Column: 1",
"errorContext": null,
"errorRange": null }
]
};
test.deepEqual(actualResult, expectedResult, "Undetected issues.");
md010.regexp = md010RegExp;
test.done();
});
};
module.exports.stringInputLineEndings = function stringInputLineEndings(test) {
test.expect(2);
var options = {