13
13
import logging
14
14
15
15
import sublime
16
- from SublimeLinter .lint import NodeLinter
16
+ from SublimeLinter .lint import LintMatch , NodeLinter
17
17
18
18
19
19
logger = logging .getLogger ("SublimeLinter.plugin.htmlhint" )
@@ -23,10 +23,8 @@ class Htmlhint(NodeLinter):
23
23
24
24
"""Provides an interface to htmlhint."""
25
25
26
- cmd = ('htmlhint' , '--format' , 'json' , '--nocolor' , 'stdin' )
27
- defaults = {
28
- 'selector' : 'text.html'
29
- }
26
+ cmd = ("htmlhint" , "--format" , "json" , "--nocolor" , "stdin" )
27
+ defaults = {"selector" : "text.html" }
30
28
31
29
def find_errors (self , output ):
32
30
"""
@@ -39,35 +37,34 @@ def find_errors(self, output):
39
37
logger .debug ('output_json:"%s", file: "%s"' , output_json , self .filename )
40
38
41
39
for file in output_json :
42
- for message in file [' messages' ]:
40
+ for message in file [" messages" ]:
43
41
yield self .parse_message (message )
44
42
45
43
def parse_message (self , message ):
46
44
"""Parse message object into standard elements of an error and return them."""
47
- error_message = message ['message' ]
48
- line = message ['line' ] - 1
49
- col = message ['col' ]
50
-
51
- # set error and warning flags based on message type
52
- error = None
53
- warning = None
54
- if message ['type' ] == 'error' :
55
- error = True
56
- warning = False
57
- elif message ['type' ] == 'warning' :
58
- error = False
59
- warning = True
60
- elif message ['type' ] == 'info' :
61
- # ignore info messages by setting message to None
45
+ error_message = message ["message" ]
46
+ line = message ["line" ] - 1
47
+ col = message ["col" ]
48
+ error_type = message ["type" ]
49
+
50
+ # ignore message type of info
51
+ if error_type == "info" :
62
52
message = None
63
53
64
- logger .info ('message -- msg:"%s", line:%s, col:%s, error: %s, warning: %s, message_obj:%s' ,
54
+ logger .info (
55
+ 'message -- msg:"%s", line:%s, col:%s, type: %s, message_obj:%s' ,
65
56
error_message ,
66
57
line ,
67
58
col ,
68
- error ,
69
- warning ,
59
+ error_type ,
70
60
message ,
71
61
)
72
-
73
- return message , line , col , error , warning , error_message , None
62
+ return LintMatch (
63
+ filename = self .filename ,
64
+ line = line ,
65
+ col = col ,
66
+ error_type = error_type ,
67
+ code = message .get ("rule" , {}).get ("id" , "" ),
68
+ message = error_message ,
69
+ match = str (message ),
70
+ )
0 commit comments