Skip to content

Commit 2d8fea2

Browse files
committed
Logger housekeeping and use LintMatch.
1 parent b065baf commit 2d8fea2

File tree

1 file changed

+23
-26
lines changed

1 file changed

+23
-26
lines changed

linter.py

Lines changed: 23 additions & 26 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
"""
@@ -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

Comments
 (0)