MCPcopy
hub / github.com/gitless-vcs/gitless / _hunk

Function _hunk

gitless/cli/pprint.py:230–276  ·  view source on GitHub ↗
(hunk, stream=sys.stdout.write)

Source from the content-addressed store, hash-verified

228
229
230def _hunk(hunk, stream=sys.stdout.write):
231 puts(colored.cyan('@@ -{0},{1} +{2},{3} @@'.format(
232 hunk.old_start, hunk.old_lines, hunk.new_start, hunk.new_lines)),
233 stream=stream)
234 padding = _padding(hunk)
235
236 del_line, add_line, maybe_bold, saw_add = None, None, False, False
237 for diff_line in hunk.lines:
238 assert not IS_PY2 or isinstance(diff_line.content, unicode)
239 st = diff_line.origin
240
241 if st == '-' and not maybe_bold:
242 maybe_bold = True
243 del_line = diff_line
244 elif st == '+' and maybe_bold and not saw_add:
245 saw_add = True
246 add_line = diff_line
247 elif st == ' ' and maybe_bold and saw_add:
248 bold1, bold2 = _highlight(del_line.content, add_line.content)
249
250 puts(_format_line(del_line, padding, bold_delim=bold1), stream=stream)
251 puts(_format_line(add_line, padding, bold_delim=bold2), stream=stream)
252
253 del_line, add_line, maybe_bold, saw_add = None, None, False, False
254
255 puts(_format_line(diff_line, padding), stream=stream)
256 else:
257 if del_line:
258 puts(_format_line(del_line, padding), stream=stream)
259 if add_line:
260 puts(_format_line(add_line, padding), stream=stream)
261
262 del_line, add_line, maybe_bold, saw_add = None, None, False, False
263
264 puts(_format_line(diff_line, padding), stream=stream)
265
266
267 if maybe_bold and saw_add:
268 bold1, bold2 = _highlight(del_line.content, add_line.content)
269
270 puts(_format_line(del_line, padding, bold_delim=bold1), stream=stream)
271 puts(_format_line(add_line, padding, bold_delim=bold2), stream=stream)
272 else:
273 if del_line:
274 puts(_format_line(del_line, padding), stream=stream)
275 if add_line:
276 puts(_format_line(add_line, padding), stream=stream)
277
278
279def _padding(hunk):

Callers 1

diffFunction · 0.85

Calls 4

putsFunction · 0.85
_paddingFunction · 0.85
_highlightFunction · 0.85
_format_lineFunction · 0.85

Tested by

no test coverage detected