def on_modified(self, view):
if not self.enable(view):
return
cursor = view.size()
line = view.line(cursor - 1)
if "filename" in view.scope_name(line.begin()):
line_text = view.substr(line)
parts = [p.strip() for p in line_text.split(":", maxsplit=5)]
filename = os.path.join(os.path.dirname(view.window().project_file_name()), parts[0])
marker = "info"
if "error:" in line_text:
marker = "error"
elif "warning:" in line_text:
marker = "warning"
if view.window().id() not in markers:
markers[view.window().id()] = []
# save the marker
markers[view.window().id()].append({
"type": marker,
"file": filename,
"panel_line": line,
"row": int(parts[1]) - 1,
"col": int(parts[2]) - 1,
"text": parts[4],
})
markers_updated[view.window().id()] = datetime.now()
# update view
rgn = {"error": [], "info": [], "warning": []}
for marker in markers[view.window().id()]:
rgn[marker['type']].append(marker["panel_line"])
for (key, value) in rgn.items():
view.add_regions("mark_" + key, value, "mark_" + key, "Packages/SublimeAnarchy/images/" + key + ".png", sublime.HIDDEN)
评论列表
文章目录