Skip to content

Commit 62ef89b

Browse files
authored
Merge pull request #17 from htmlhint/task/housekeeping
Task/housekeeping
2 parents 1ea6248 + 2d8fea2 commit 62ef89b

File tree

1 file changed

+25
-30
lines changed

1 file changed

+25
-30
lines changed

linter.py

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import logging
1414

1515
import sublime
16-
from SublimeLinter.lint import NodeLinter
16+
from SublimeLinter.lint import LintMatch, NodeLinter
1717

1818

1919
logger = 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

Comments
 (0)