Formalize diff line-level metadata and prepare for new state.

Review Request #11902 — Created Jan. 4, 2022 and updated

chipx86
Review Board
release-4.0.x
11907
reviewboard

Lines in a rendered diff have a dictionary field for storing move
information, and we have a couple other fields for other interesting
state. What we don't have is a field for general metadata, and this will
be important soon.

It will also be important not to completely break anything consuming
this line information. So, the moved information field is being
repurposed for general metadata, preserving to and from as moved
to/from keys.

For the moment, this is mostly a documentation change within the chunk
generator. However, the diff_line template tag has also been updated
to prepare for some uses of this metadata field. This consists of
pulling out the field into a variable, and changing some processing to
avoid repeating logic (which will be important for the upcoming code
safety checks feature).

Unit tests passed.

Made use of this in the upcoming code safety checkers feature.

Summary
Formalize diff line-level metadata and prepare for new state.
Description From Last Updated

typo: i a line -> if a line

daviddavid

I feel like this could all be coalesced together. There's no need to reassign to line_html_sides if we don't do ...

daviddavid
Checks run (2 succeeded)
flake8 passed.
JSHint passed.
david
  1. 
      
  2. typo: i a line -> if a line

  3. reviewboard/diffviewer/templatetags/difftags.py (Diff revision 1)
     
     
     
     
     
     
     
     

    I feel like this could all be coalesced together. There's no need to reassign to line_html_sides if we don't do any processing:

    if line_html and len(line_html) < STYLED_MAX_LINE_LEN:
        line_html_sides[side_i] = showextrawhitespace(line_html)
    
  4. 
      
Loading...