type_hints.py 文件源码

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

项目:purescript-ide-sublime 作者: b123400 项目源码 文件源码
def show_error(self, view, error, point):
        error_message_lines = error['message'].split('\n')
        error_message = "".join(['<p>%s</p>' % s.replace(' ', '&nbsp;') for s in error_message_lines])

        handle_nav = None
        def default_handle_nav(href):
            pass
        handle_nav = default_handle_nav

        error_link = error.get('errorLink', None)
        if error_link is not None:
            before_error_link = handle_nav
            error_message = error_message + '<p><a href="error_link">More Info</a></p>'
            def open_error_link(href):
                if href != 'error_link':
                    before_error_link()
                    return
                webbrowser.open_new_tab(error_link)
            handle_nav = open_error_link

        suggestion = error.get('suggestion', None)
        if suggestion is not None:
            before_auto_save = handle_nav
            error_message = '<p><a href="replace">Fix it!</a></p>' + error_message
            def auto_fix(href):
                if href != 'replace':
                    before_auto_save(href)
                    return

                start_point = view.text_point(
                    suggestion['replaceRange']['startLine']-1,
                    suggestion['replaceRange']['startColumn']-1
                )
                end_point = view.text_point(
                    suggestion['replaceRange']['endLine']-1,
                    suggestion['replaceRange']['endColumn']-1
                )

                # if the last char is \n, create one less \n
                replacement = suggestion['replacement']
                if len(replacement) > 0 and replacement[-1] == '\n':
                    replacement = replacement[:-1]

                view.run_command(
                    'replace_region',
                    {
                        'text': replacement,
                        'start': start_point,
                        'end': end_point
                    })

            handle_nav = auto_fix

        view.show_popup(error_message,
            sublime.HIDE_ON_MOUSE_MOVE_AWAY,
            point,
            600,
            600,
            handle_nav)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号