Re: [PATCH 8/8] diff: improve positioning of add/delete blocks in diffs
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- Aug 13, 2016, 00:11 UTC
- Message-ID
- <f8c18c0b-b0e2-b67c-2a77-b3af3083161a@alum.mit.edu>
- In-Reply-To
- <xmqq37mk2txa.fsf@gitster.mtv.corp.google.com>
On 08/04/2016 09:52 PM, Junio C Hamano wrote:
Show 18 quoted lines
> Michael Haggerty <mhagger@alum.mit.edu> writes: >> +#define START_OF_FILE_BONUS 9 >> +#define END_OF_FILE_BONUS 46 >> +#define TOTAL_BLANK_WEIGHT 4 >> +#define PRE_BLANK_WEIGHT 16 >> +#define RELATIVE_INDENT_BONUS -1 >> +#define RELATIVE_INDENT_HAS_BLANK_BONUS 15 >> +#define RELATIVE_OUTDENT_BONUS -19 >> +#define RELATIVE_OUTDENT_HAS_BLANK_BONUS 2 > > When I read up to here, I thought "Heh, isn't the opposite of INdent > DEdent?" and then saw this: > >> +#define RELATIVE_DEDENT_BONUS -63 >> +#define RELATIVE_DEDENT_HAS_BLANK_BONUS 50 > > It turns out that you mean by OUTdent a line that indents further > (if I am reading the code correctly). Is that obvious to everybody?
I'll comment it better.
Show 19 quoted lines
>> + /* Bonuses based on the location of blank lines: */
>> + bonus += TOTAL_BLANK_WEIGHT * total_blanks;
>> + bonus += PRE_BLANK_WEIGHT * m->pre_blank;
>
> This and ...
>
>> + } else if (indent > m->pre_indent) {
>> + /*
>> + * The line is indented more than its predecessor. Score it based
>> + * on the larger indent:
>> + */
>> + score = indent;
>> + bonus += RELATIVE_INDENT_BONUS;
>> + bonus += RELATIVE_INDENT_HAS_BLANK_BONUS * any_blanks;
>> + } else if (indent < m->pre_indent) {
>
> ... this seems to be indented correctly even after getting quoted,
> which in turn means most of the lines in the added code share
> indent-with-non-tab badness.The code was copy-pasted from a Python prototype then converted to C :-)
I'll fix the whitespace.
Thanks, Michael