def annotate(self, point):
self.window = self.view.window()
self.roots = self.view.window().folders()
self.syntax = self.view.settings().get('syntax')
self.lang = self.get_lang(self.syntax)
v = self.view
line_range = v.line(point)
if v.line(line_range.b) == self.current_line:
return
line_content = v.substr(line_range).strip()
matched = self.is_valid_line(line_content)
if matched:
destination_str = matched.group(1)
file_path = HyperClickPathResolver(v,
destination_str,
self.roots, self.lang, self.settings
)
region = sublime.Region(line_range.b, line_range.b)
self.current_line = v.line(line_range.b)
v.erase_phantoms('hyper_click')
resolved_path = file_path.resolve()
# print('resolved to => ', resolved_path)
if resolved_path:
content = """
<span class="label label-success"><a href="{link}">{content}</a></span>
""".format(
link=resolved_path,
content=self.settings.get('annotation_found_text', '?')
)
v.add_phantom(
'hyper_click',
region,
self.html.format(css=self.css, content=content),
sublime.LAYOUT_INLINE, self.on_navigate
)
else:
content = """
<span class="label label-error">{content}</span>
""".format(content=self.settings.get('annotation_not_found_text', '?'))
v.add_phantom(
'hyper_click',
region,
self.html.format(css=self.css, content=content),
sublime.LAYOUT_INLINE, self.on_navigate
)
else:
v.erase_phantoms('hyper_click')
# ---------------------------------------
评论列表
文章目录