Fix intraline highlights

Highlight with dark color if no intraline info, and use light
color if we do have intraline info but no changes.

Change-Id: Ied6a33b60792c4b0dbf1dc3c17020ee10aa2910a
This commit is contained in:
Tao Zhou
2019-08-09 16:14:54 +02:00
parent 9dda122b11
commit 7d39f9b3bf
4 changed files with 17 additions and 6 deletions

View File

@@ -332,8 +332,11 @@
if (line.type !== GrDiffLine.Type.BLANK) { if (line.type !== GrDiffLine.Type.BLANK) {
td.classList.add('content'); td.classList.add('content');
} }
if (line.highlights.length === 0) {
td.classList.add('no-highlights'); // If intraline info is not available, the entire line will be
// considered as changed and marked as dark red / green color
if (!line.hasIntralineInfo) {
td.classList.add('no-intraline-info');
} }
td.classList.add(line.type); td.classList.add(line.type);

View File

@@ -437,7 +437,10 @@
if (type !== GrDiffLine.Type.ADD) line.beforeNumber = offsetLeft + i; if (type !== GrDiffLine.Type.ADD) line.beforeNumber = offsetLeft + i;
if (type !== GrDiffLine.Type.REMOVE) line.afterNumber = offsetRight + i; if (type !== GrDiffLine.Type.REMOVE) line.afterNumber = offsetRight + i;
if (opt_highlights) { if (opt_highlights) {
line.hasIntralineInfo = true;
line.highlights = opt_highlights.filter(hl => hl.contentIndex === i); line.highlights = opt_highlights.filter(hl => hl.contentIndex === i);
} else {
line.hasIntralineInfo = false;
} }
return line; return line;
}, },

View File

@@ -30,9 +30,14 @@
/** @type {number|string} */ /** @type {number|string} */
this.beforeNumber = opt_beforeLine || 0; this.beforeNumber = opt_beforeLine || 0;
/** @type {number|string} */ /** @type {number|string} */
this.afterNumber = opt_afterLine || 0; this.afterNumber = opt_afterLine || 0;
/** @type {boolean} */
this.hasIntralineInfo = false;
/** @type Array<GrDiffLine.Highlights> */
this.highlights = []; this.highlights = [];
/** @type {?Array<Object>} ?Array<!GrDiffGroup> */ /** @type {?Array<Object>} ?Array<!GrDiffGroup> */

View File

@@ -131,8 +131,8 @@ limitations under the License.
width: var(--content-width, 80ch); width: var(--content-width, 80ch);
} }
.content.add .intraline, .content.add .intraline,
/* If there are no intraline changes, consider everything changed */ /* If there are no intraline info, consider everything changed */
.content.add.no-highlights, .content.add.no-intraline-info,
.delta.total .content.add { .delta.total .content.add {
background-color: var(--dark-add-highlight-color); background-color: var(--dark-add-highlight-color);
} }
@@ -140,8 +140,8 @@ limitations under the License.
background-color: var(--light-add-highlight-color); background-color: var(--light-add-highlight-color);
} }
.content.remove .intraline, .content.remove .intraline,
/* If there are no intraline changes, consider everything changed */ /* If there are no intraline info, consider everything changed */
.content.remove.no-highlights, .content.remove.no-intraline-info,
.delta.total .content.remove { .delta.total .content.remove {
background-color: var(--dark-remove-highlight-color); background-color: var(--dark-remove-highlight-color);
} }