def METHOD_NAME(self, source_file: str, print_output: bool = False) -> bool:
    '''
    Lint `source_file` with clang-format, optionally showing the diff.
    '''
    if self.is_blacklisted(source_file):
        logging.debug(f'Skipping {source_file}, blacklisted')
        return True
    # Get original and formatted text
    with open(source_file, 'r', errors='ignore') as original_file:
        original_text = original_file.read()
    formatted_text = common.callo([self.path, '--style=file', source_file])
    # Create some nice git-like metadata for the diff
    relpath = os.path.relpath(source_file, self.toplevel)
    fromfile = os.path.join('a', relpath)
    tofile = os.path.join('b', relpath)
    diff = list(
        difflib.unified_diff(
            original_text.splitlines(),
            formatted_text.splitlines(),
            fromfile=fromfile,
            tofile=tofile
        )
    )
    if diff:
        print(f'Found formatting changes for file: {source_file}')
        if print_output:
            print(f'To fix, run "{self.path} --style=file -i {source_file}"')
            print('Suggested changes:')
            for line in diff:
                print(line.strip())
            print()
    return not diff