def handle_process(self, returncode, stdout, error):
"""Handle the output from the threaded process."""
self.view.erase_regions('flow_type_uncovered')
if type(error) is bytes:
error = error.decode('utf-8')
if returncode != 0:
logger.logger.error('coverage %s' % error)
return
logger.logger.debug(stdout)
if stdout:
expressions = stdout['expressions']
covered = expressions['covered_count']
uncovered = expressions['uncovered_count']
uncovered_locs = expressions['uncovered_locs']
total = covered + uncovered
percentage = (covered * 100.0) / total
self.view.set_status(
'flow_type',
'Flow: {}% coverage with {}/{} uncovered lines'
.format(round(percentage, 2), uncovered, covered))
if len(uncovered_locs) > 0:
# Uncovered regions
regions = []
for location in uncovered_locs:
row_start = int(location['start']['line']) - 1
col_start = int(location['start']['column']) - 1
row_end = int(location['end']['line']) - 1
col_end = int(location['end']['column'])
start = self.view.text_point(row_start, col_start)
stop = self.view.text_point(row_end, col_end)
regions.append(sublime.Region(start, stop))
self.view.add_regions(
'flow_type_uncovered',
regions, 'comment', 'bookmark',
sublime.DRAW_SQUIGGLY_UNDERLINE
)
else:
self.view.set_status('flow_type', 'Flow: coverage is not possible')
评论列表
文章目录