1313import logging
1414
1515import sublime
16- from SublimeLinter .lint import NodeLinter
16+ from SublimeLinter .lint import LintMatch , NodeLinter
1717
1818
1919logger = logging .getLogger ("SublimeLinter.plugin.htmlhint" )
@@ -23,10 +23,8 @@ class Htmlhint(NodeLinter):
2323
2424 """Provides an interface to htmlhint."""
2525
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" }
3028
3129 def find_errors (self , output ):
3230 """
@@ -39,35 +37,34 @@ def find_errors(self, output):
3937 logger .debug ('output_json:"%s", file: "%s"' , output_json , self .filename )
4038
4139 for file in output_json :
42- for message in file [' messages' ]:
40+ for message in file [" messages" ]:
4341 yield self .parse_message (message )
4442
4543 def parse_message (self , message ):
4644 """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" :
6252 message = None
6353
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' ,
6556 error_message ,
6657 line ,
6758 col ,
68- error ,
69- warning ,
59+ error_type ,
7060 message ,
7161 )
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