Skip to content

Commit cca4b39

Browse files
committed
fix(tag-pair): point tag-pair error message to correct line and column number
fix #1284
1 parent 00d4d69 commit cca4b39

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/core/rules/tag-pair.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export default {
1616
stack.push({
1717
tagName: tagName,
1818
line: event.line,
19+
col: event.col,
1920
raw: event.raw,
2021
})
2122
}
@@ -46,8 +47,8 @@ export default {
4647
)} ], start tag match failed [ ${lastEvent.raw} ] on line ${
4748
lastEvent.line
4849
}.`,
49-
event.line,
50-
event.col,
50+
lastEvent.line || event.line,
51+
lastEvent.col || event.col,
5152
this,
5253
event.raw
5354
)

test/rules/tag-pair.spec.js

+12-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ describe(`Rules: ${ruleId}`, () => {
1212
expect(messages.length).toBe(2)
1313
expect(messages[0].rule.id).toBe(ruleId)
1414
expect(messages[0].line).toBe(1)
15-
expect(messages[0].col).toBe(9)
15+
expect(messages[0].col).toBe(5)
1616
expect(messages[1].rule.id).toBe(ruleId)
1717
expect(messages[1].line).toBe(1)
1818
expect(messages[1].col).toBe(20)
@@ -24,6 +24,17 @@ describe(`Rules: ${ruleId}`, () => {
2424
expect(messages[0].col).toBe(9)
2525
})
2626

27+
it('No end tag should result in an error with correct line number and column of the start tag', () => {
28+
const code = '<div>\r\n <h1>\r\n <p>aaa</p>\r\n</div>'
29+
const messages = HTMLHint.verify(code, ruleOptions)
30+
expect(messages.length).toBe(1)
31+
expect(messages[0].rule.id).toBe(ruleId)
32+
expect(messages[0].line).not.toBe(4)
33+
expect(messages[0].col).not.toBe(1)
34+
expect(messages[0].line).toBe(2)
35+
expect(messages[0].col).toBe(3)
36+
})
37+
2738
it('No start tag should result in an error', () => {
2839
const code = '</div>'
2940
const messages = HTMLHint.verify(code, ruleOptions)

0 commit comments

Comments
 (0)