hyper_click_annotator.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:SublimeHyperClick 作者: aziz 项目源码 文件源码
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')

        # ---------------------------------------
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号