def show_error(self, view, error, point):
error_message_lines = error['message'].split('\n')
error_message = "".join(['<p>%s</p>' % s.replace(' ', ' ') 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)
评论列表
文章目录