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 """
@@ -36,40 +34,37 @@ def find_errors(self, output):
3634
3735 """
3836 output_json = sublime .decode_value (output )
39-
40- # logger.info('output_json:"{}", file: "{}"'.format(output_json, self.filename))
37+ logger .debug ('output_json:"%s", file: "%s"' , output_json , self .filename )
4138
4239 for file in output_json :
43- for message in file [' messages' ]:
40+ for message in file [" messages" ]:
4441 yield self .parse_message (message )
4542
4643 def parse_message (self , message ):
4744 """Parse message object into standard elements of an error and return them."""
48- error_message = message ['message' ]
49- line = message ['line' ] - 1
50- col = message ['col' ]
51-
52- # set error and warning flags based on message type
53- error = None
54- warning = None
55- if message ['type' ] == 'error' :
56- error = True
57- warning = False
58- elif message ['type' ] == 'warning' :
59- error = False
60- warning = True
61- elif message ['type' ] == 'info' :
62- # 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" :
6352 message = None
6453
65- message = 'message -- msg:"{}", line:{}, col:{}, error: {}, warning: {}, message_obj:{}'
66- logger . info ( message . format (
54+ logger . info (
55+ ' message -- msg:"%s", line:%s, col:%s, type: %s, message_obj:%s' ,
6756 error_message ,
6857 line ,
6958 col ,
70- error ,
71- warning ,
59+ error_type ,
7260 message ,
73- ))
74-
75- return message , line , col , error , warning , error_message , None
61+ )
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