def _output(self, results): if self.json: return super()._output(results) b = PrintBuffer() b.add(super()._output(results)) r = results for issue in r['issues']: b.add("An issue has been found in ") b.add_red("%s:%d:%d\n" % (issue['file'], issue['line'], issue['col'])) b.add("Type: %s\n" % issue['type']) b.add("Description: %s\n\n" % issue['description']) event_no = 0 for event in issue['events']: b.add("%d: " % event_no) b.add("%s:%d:%d - " % (event['file'], event['line'], event['col'])) b.add("%s\n" % event['message']) event_no = event_no + 1 b.separator() if len(r['issues']) == 0: b.add_green("No static analysis issues found!\n") b.separator() else: viewer = self.scan_build.viewer b.add(viewer.launch_instructions(r['results_directory'])) return str(b)
def _output(self, results): if self.json: return super()._output(results) b = PrintBuffer() b.add(super()._output(results)) r = results for issue in r['issues']: b.add("An issue was found with ") b.add_red("%s" % issue['file_path']) b.add('\n\n%s\n\n' % issue['evaluation']['description']) b.add('Info for resolution:\n') b.add(issue['evaluation']['resolution']) b.separator() if len(r['issues']) == 0: b.add_green("No copyright header issues found!\n") return str(b)
def _output(self, results): if self.json: return super()._output(results) b = PrintBuffer() b.add(super()._output(results)) r = results b.add("%-30s %s\n" % ("clang-format bin:", r['clang_format_path'])) b.add("%-30s %s\n" % ("clang-format version:", r['clang_format_version'])) b.add("%-30s %s\n" % ("Using style in:", r['clang_style_path'])) b.separator() if len(r['rejected_parameters']) > 0: b.add_red("WARNING") b.add(" - This version of clang-format does not support the " "following style\nparameters, so they were not used:\n\n") for param in r['rejected_parameters']: b.add("%s\n" % param) b.separator() b.add("%-30s %.02fs\n" % ("Elapsed time:", r['elapsed_time'])) if len(r['slow_diffs']) > 0: b.add("Slowest diffs:\n") for slow in r['slow_diffs']: b.add("%6.02fs for %s\n" % (slow['diff_time'], slow['file_path'])) b.separator() b.add("%-30s %4d\n" % ("Files scoring 100%:", r['matching'])) b.add("%-30s %4d\n" % ("Files scoring <100%:", r['not_matching'])) b.add("%-30s %s\n" % ("Formatted Content MD5:", r['formatted_md5'])) b.separator() for score_range in reversed(sorted(r['files_in_ranges'].keys())): b.add("%-30s %4d\n" % ("Files scoring %s:" % score_range, r['files_in_ranges'][score_range])) b.separator() b.add("Overall scoring:\n\n") score = FileStyleScore(r['lines_before'], r['lines_added'], r['lines_removed'], r['lines_unchanged'], r['lines_after']) b.add(str(score)) b.separator() return str(b)
def _output(self, results): if self.json: return super()._output(results) b = PrintBuffer() b.add(super()._output(results)) r = results for f in r['failures']: b.add("A code format issue was detected in ") b.add_red("%s\n\n" % f['file_path']) score = FileStyleScore(f['lines_before'], f['lines_added'], f['lines_removed'], f['lines_unchanged'], f['lines_after']) b.add(str(score)) b.separator() if len(r['failures']) == 0: b.add_green("No format issues found!\n") else: b.add_red("These files can be formatted by running:\n") b.add("$ clang_format.py format [option [option ...]] " "[target [target ...]]\n") b.separator() return str(b)
def _exit_if_parameters_unsupported(self): if self.force: return rejected_parameters = self.clang_format.style.rejected_parameters if len(rejected_parameters) > 0: b = PrintBuffer() b.add_red("\nERROR: ") b.add("clang-format version %s does not support all parameters " "given in\n%s\n\n" % (self.clang_format.binary_version, self.clang_format.style)) b.add("Unsupported parameters:\n") for parameter in rejected_parameters: b.add("\t%s\n" % parameter) # The applied formating has subtle differences that vary between # major releases of clang-format. The recommendation should # probably follow the latest widely-available stable release. repo_info = self['repository'].repo_info b.add( "\nUsing clang-format version %s or higher is recommended\n" % repo_info['clang_format_recommended']['min_version']) b.add("Use the --force option to override and proceed anyway.\n\n") b.flush() sys.exit("*** missing clang-format support.")
def _output(self, results): if self.json: return super()._output(results) b = PrintBuffer() b.add(super()._output(results)) r = results for issue in r['issues']: b.separator() b.add("An issue was found with ") b.add_red("%s\n" % issue['file_path']) b.add('Rule: "%s"\n\n' % issue['rule_title']) b.add('line %d:\n' % issue['line']['number']) b.add("%s" % issue['line']['context']) b.add(' ' * (issue['line']['character'] - 1)) b.add_red("^\n") b.separator() if len(r['issues']) == 0: b.add_green("No style issues found!\n") else: b.add_red("These issues can be fixed automatically by running:\n") b.add("$ basic_style.py fix [target [target ...]]\n") b.separator() return str(b)