def populate_diff_chunks(files, enable_syntax_highlighting=True, request=None): """Populates a list of diff files with chunk data. This accepts a list of files (generated by get_diff_files) and generates diff chunk data for each file in the list. The chunk data is stored in the file state. """ from reviewboard.diffviewer.chunk_generator import get_diff_chunk_generator for diff_file in files: generator = get_diff_chunk_generator(request, diff_file['filediff'], diff_file['interfilediff'], diff_file['force_interdiff'], enable_syntax_highlighting) chunks = generator.get_chunks() diff_file.update({ 'chunks': chunks, 'num_chunks': len(chunks), 'changed_chunk_indexes': [], 'whitespace_only': True, }) for j, chunk in enumerate(chunks): chunk['index'] = j if chunk['change'] != 'equal': diff_file['changed_chunk_indexes'].append(j) meta = chunk.get('meta', {}) if not meta.get('whitespace_chunk', False): diff_file['whitespace_only'] = False diff_file.update({ 'num_changes': len(diff_file['changed_chunk_indexes']), 'chunks_loaded': True, })
def populate_diff_chunks(files, enable_syntax_highlighting=True, request=None): """Populates a list of diff files with chunk data. This accepts a list of files (generated by get_diff_files) and generates diff chunk data for each file in the list. The chunk data is stored in the file state. """ from reviewboard.diffviewer.chunk_generator import get_diff_chunk_generator for diff_file in files: generator = get_diff_chunk_generator(request, diff_file['filediff'], diff_file['interfilediff'], diff_file['force_interdiff'], enable_syntax_highlighting) chunks = generator.get_chunks() diff_file.update({ 'chunks': chunks, 'num_chunks': len(chunks), 'changed_chunk_indexes': [], 'whitespace_only': True, }) for j, chunk in enumerate(chunks): chunk['index'] = j if chunk['change'] != 'equal': diff_file['changed_chunk_indexes'].append(j) meta = chunk.get('meta', {}) if not meta.get('whitespace_chunk', False): diff_file['whitespace_only'] = False diff_file.update({ 'num_changes': len(diff_file['changed_chunk_indexes']), 'chunks_loaded': True, })
def populate_diff_chunks(files, enable_syntax_highlighting=True, request=None): """Populates a list of diff files with chunk data. This accepts a list of files (generated by get_diff_files) and generates diff chunk data for each file in the list. The chunk data is stored in the file state. """ from reviewboard.diffviewer.chunk_generator import get_diff_chunk_generator for diff_file in files: generator = get_diff_chunk_generator( request, diff_file["filediff"], diff_file["interfilediff"], diff_file["force_interdiff"], enable_syntax_highlighting, ) chunks = list(generator.get_chunks()) diff_file.update( { "chunks": chunks, "num_chunks": len(chunks), "changed_chunk_indexes": [], "whitespace_only": len(chunks) > 0, } ) for j, chunk in enumerate(chunks): chunk["index"] = j if chunk["change"] != "equal": diff_file["changed_chunk_indexes"].append(j) meta = chunk.get("meta", {}) if not meta.get("whitespace_chunk", False): diff_file["whitespace_only"] = False diff_file.update({"num_changes": len(diff_file["changed_chunk_indexes"]), "chunks_loaded": True})