Merge pull request #307 from rtfpessoa/fix-selection-empty-lines-side
fix: Skip selection of structural lines in side diff
This commit is contained in:
commit
884b95be07
4 changed files with 132 additions and 128 deletions
|
|
@ -78,81 +78,81 @@ describe('SideBySideRenderer', () => {
|
||||||
const fileHtml = sideBySideRenderer.generateFileHtml(file);
|
const fileHtml = sideBySideRenderer.generateFileHtml(file);
|
||||||
|
|
||||||
expect(fileHtml).toMatchInlineSnapshot(`
|
expect(fileHtml).toMatchInlineSnapshot(`
|
||||||
Object {
|
Object {
|
||||||
"left": "<tr>
|
"left": "<tr>
|
||||||
<td class=\\"d2h-code-side-linenumber d2h-info\\"></td>
|
<td class=\\"d2h-code-side-linenumber d2h-info\\"></td>
|
||||||
<td class=\\"d2h-info\\">
|
<td class=\\"d2h-info\\">
|
||||||
<div class=\\"d2h-code-side-line d2h-info\\">@@ -19,7 +19,7 @@</div>
|
<div class=\\"d2h-code-side-line d2h-info\\">@@ -19,7 +19,7 @@</div>
|
||||||
</td>
|
</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td class=\\"d2h-code-side-linenumber d2h-cntx\\">
|
<td class=\\"d2h-code-side-linenumber d2h-cntx\\">
|
||||||
19
|
19
|
||||||
</td>
|
</td>
|
||||||
<td class=\\"d2h-cntx\\">
|
<td class=\\"d2h-cntx\\">
|
||||||
<div class=\\"d2h-code-side-line d2h-cntx\\">
|
<div class=\\"d2h-code-side-line d2h-cntx\\">
|
||||||
<span class=\\"d2h-code-line-prefix\\"> </span>
|
<span class=\\"d2h-code-line-prefix\\"> </span>
|
||||||
<span class=\\"d2h-code-line-ctn\\">context</span>
|
<span class=\\"d2h-code-line-ctn\\">context</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td class=\\"d2h-code-side-linenumber d2h-del d2h-change\\">
|
<td class=\\"d2h-code-side-linenumber d2h-del d2h-change\\">
|
||||||
20
|
20
|
||||||
</td>
|
</td>
|
||||||
<td class=\\"d2h-del d2h-change\\">
|
<td class=\\"d2h-del d2h-change\\">
|
||||||
<div class=\\"d2h-code-side-line d2h-del d2h-change\\">
|
<div class=\\"d2h-code-side-line d2h-del d2h-change\\">
|
||||||
<span class=\\"d2h-code-line-prefix\\">-</span>
|
<span class=\\"d2h-code-line-prefix\\">-</span>
|
||||||
<span class=\\"d2h-code-line-ctn\\"><del>removed</del></span>
|
<span class=\\"d2h-code-line-ctn\\"><del>removed</del></span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td class=\\"d2h-code-side-linenumber d2h-code-side-emptyplaceholder d2h-cntx d2h-emptyplaceholder\\">
|
<td class=\\"d2h-code-side-linenumber d2h-code-side-emptyplaceholder d2h-cntx d2h-emptyplaceholder\\">
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class=\\"d2h-cntx d2h-emptyplaceholder\\">
|
<td class=\\"d2h-cntx d2h-emptyplaceholder\\">
|
||||||
<div class=\\"d2h-code-side-line d2h-code-side-emptyplaceholder d2h-cntx d2h-emptyplaceholder\\">
|
<div class=\\"d2h-code-side-line d2h-code-side-emptyplaceholder d2h-cntx d2h-emptyplaceholder\\">
|
||||||
<span class=\\"d2h-code-line-prefix\\"> </span>
|
<span class=\\"d2h-code-line-prefix\\"> </span>
|
||||||
<span class=\\"d2h-code-line-ctn\\"> </span>
|
<span class=\\"d2h-code-line-ctn\\"><br></span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>",
|
</tr>",
|
||||||
"right": "<tr>
|
"right": "<tr>
|
||||||
<td class=\\"d2h-code-side-linenumber d2h-info\\"></td>
|
<td class=\\"d2h-code-side-linenumber d2h-info\\"></td>
|
||||||
<td class=\\"d2h-info\\">
|
<td class=\\"d2h-info\\">
|
||||||
<div class=\\"d2h-code-side-line d2h-info\\"></div>
|
<div class=\\"d2h-code-side-line d2h-info\\"></div>
|
||||||
</td>
|
</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td class=\\"d2h-code-side-linenumber d2h-cntx\\">
|
<td class=\\"d2h-code-side-linenumber d2h-cntx\\">
|
||||||
19
|
19
|
||||||
</td>
|
</td>
|
||||||
<td class=\\"d2h-cntx\\">
|
<td class=\\"d2h-cntx\\">
|
||||||
<div class=\\"d2h-code-side-line d2h-cntx\\">
|
<div class=\\"d2h-code-side-line d2h-cntx\\">
|
||||||
<span class=\\"d2h-code-line-prefix\\"> </span>
|
<span class=\\"d2h-code-line-prefix\\"> </span>
|
||||||
<span class=\\"d2h-code-line-ctn\\">context</span>
|
<span class=\\"d2h-code-line-ctn\\">context</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td class=\\"d2h-code-side-linenumber d2h-ins d2h-change\\">
|
<td class=\\"d2h-code-side-linenumber d2h-ins d2h-change\\">
|
||||||
20
|
20
|
||||||
</td>
|
</td>
|
||||||
<td class=\\"d2h-ins d2h-change\\">
|
<td class=\\"d2h-ins d2h-change\\">
|
||||||
<div class=\\"d2h-code-side-line d2h-ins d2h-change\\">
|
<div class=\\"d2h-code-side-line d2h-ins d2h-change\\">
|
||||||
<span class=\\"d2h-code-line-prefix\\">+</span>
|
<span class=\\"d2h-code-line-prefix\\">+</span>
|
||||||
<span class=\\"d2h-code-line-ctn\\"><ins>added</ins></span>
|
<span class=\\"d2h-code-line-ctn\\"><ins>added</ins></span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td class=\\"d2h-code-side-linenumber d2h-ins\\">
|
<td class=\\"d2h-code-side-linenumber d2h-ins\\">
|
||||||
21
|
21
|
||||||
</td>
|
</td>
|
||||||
<td class=\\"d2h-ins\\">
|
<td class=\\"d2h-ins\\">
|
||||||
<div class=\\"d2h-code-side-line d2h-ins\\">
|
<div class=\\"d2h-code-side-line d2h-ins\\">
|
||||||
<span class=\\"d2h-code-line-prefix\\">+</span>
|
<span class=\\"d2h-code-line-prefix\\">+</span>
|
||||||
<span class=\\"d2h-code-line-ctn\\">another added</span>
|
<span class=\\"d2h-code-line-ctn\\">another added</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>",
|
</tr>",
|
||||||
}
|
}
|
||||||
`);
|
`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -168,31 +168,31 @@ describe('SideBySideRenderer', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(fileHtml).toMatchInlineSnapshot(`
|
expect(fileHtml).toMatchInlineSnapshot(`
|
||||||
Object {
|
Object {
|
||||||
"left": "<tr>
|
"left": "<tr>
|
||||||
<td class=\\"d2h-code-side-linenumber d2h-code-side-emptyplaceholder d2h-cntx d2h-emptyplaceholder\\">
|
<td class=\\"d2h-code-side-linenumber d2h-code-side-emptyplaceholder d2h-cntx d2h-emptyplaceholder\\">
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class=\\"d2h-cntx d2h-emptyplaceholder\\">
|
<td class=\\"d2h-cntx d2h-emptyplaceholder\\">
|
||||||
<div class=\\"d2h-code-side-line d2h-code-side-emptyplaceholder d2h-cntx d2h-emptyplaceholder\\">
|
<div class=\\"d2h-code-side-line d2h-code-side-emptyplaceholder d2h-cntx d2h-emptyplaceholder\\">
|
||||||
<span class=\\"d2h-code-line-prefix\\"> </span>
|
<span class=\\"d2h-code-line-prefix\\"> </span>
|
||||||
<span class=\\"d2h-code-line-ctn\\"> </span>
|
<span class=\\"d2h-code-line-ctn\\"><br></span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>",
|
</tr>",
|
||||||
"right": "<tr>
|
"right": "<tr>
|
||||||
<td class=\\"d2h-code-side-linenumber d2h-ins\\">
|
<td class=\\"d2h-code-side-linenumber d2h-ins\\">
|
||||||
30
|
30
|
||||||
</td>
|
</td>
|
||||||
<td class=\\"d2h-ins\\">
|
<td class=\\"d2h-ins\\">
|
||||||
<div class=\\"d2h-code-side-line d2h-ins\\">
|
<div class=\\"d2h-code-side-line d2h-ins\\">
|
||||||
<span class=\\"d2h-code-line-prefix\\">+</span>
|
<span class=\\"d2h-code-line-prefix\\">+</span>
|
||||||
<span class=\\"d2h-code-line-ctn\\">test</span>
|
<span class=\\"d2h-code-line-ctn\\">test</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>",
|
</tr>",
|
||||||
}
|
}
|
||||||
`);
|
`);
|
||||||
});
|
});
|
||||||
it('should work for deletions', () => {
|
it('should work for deletions', () => {
|
||||||
const hoganUtils = new HoganJsUtils({});
|
const hoganUtils = new HoganJsUtils({});
|
||||||
|
|
@ -208,31 +208,31 @@ describe('SideBySideRenderer', () => {
|
||||||
);
|
);
|
||||||
|
|
||||||
expect(fileHtml).toMatchInlineSnapshot(`
|
expect(fileHtml).toMatchInlineSnapshot(`
|
||||||
Object {
|
Object {
|
||||||
"left": "<tr>
|
"left": "<tr>
|
||||||
<td class=\\"d2h-code-side-linenumber d2h-del\\">
|
<td class=\\"d2h-code-side-linenumber d2h-del\\">
|
||||||
30
|
30
|
||||||
</td>
|
</td>
|
||||||
<td class=\\"d2h-del\\">
|
<td class=\\"d2h-del\\">
|
||||||
<div class=\\"d2h-code-side-line d2h-del\\">
|
<div class=\\"d2h-code-side-line d2h-del\\">
|
||||||
<span class=\\"d2h-code-line-prefix\\">-</span>
|
<span class=\\"d2h-code-line-prefix\\">-</span>
|
||||||
<span class=\\"d2h-code-line-ctn\\">test</span>
|
<span class=\\"d2h-code-line-ctn\\">test</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>",
|
</tr>",
|
||||||
"right": "<tr>
|
"right": "<tr>
|
||||||
<td class=\\"d2h-code-side-linenumber d2h-code-side-emptyplaceholder d2h-cntx d2h-emptyplaceholder\\">
|
<td class=\\"d2h-code-side-linenumber d2h-code-side-emptyplaceholder d2h-cntx d2h-emptyplaceholder\\">
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class=\\"d2h-cntx d2h-emptyplaceholder\\">
|
<td class=\\"d2h-cntx d2h-emptyplaceholder\\">
|
||||||
<div class=\\"d2h-code-side-line d2h-code-side-emptyplaceholder d2h-cntx d2h-emptyplaceholder\\">
|
<div class=\\"d2h-code-side-line d2h-code-side-emptyplaceholder d2h-cntx d2h-emptyplaceholder\\">
|
||||||
<span class=\\"d2h-code-line-prefix\\"> </span>
|
<span class=\\"d2h-code-line-prefix\\"> </span>
|
||||||
<span class=\\"d2h-code-line-ctn\\"> </span>
|
<span class=\\"d2h-code-line-ctn\\"><br></span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>",
|
</tr>",
|
||||||
}
|
}
|
||||||
`);
|
`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -285,8 +285,8 @@ export default class SideBySideRenderer {
|
||||||
type: line?.type || `${renderUtils.CSSLineClass.CONTEXT} d2h-emptyplaceholder`,
|
type: line?.type || `${renderUtils.CSSLineClass.CONTEXT} d2h-emptyplaceholder`,
|
||||||
lineClass: line !== undefined ? lineClass : `${lineClass} d2h-code-side-emptyplaceholder`,
|
lineClass: line !== undefined ? lineClass : `${lineClass} d2h-code-side-emptyplaceholder`,
|
||||||
contentClass: line !== undefined ? contentClass : `${contentClass} d2h-code-side-emptyplaceholder`,
|
contentClass: line !== undefined ? contentClass : `${contentClass} d2h-code-side-emptyplaceholder`,
|
||||||
prefix: line?.prefix === ' ' ? ' ' : line?.prefix || ' ',
|
prefix: line?.prefix === ' ' ? ' ' : line?.prefix,
|
||||||
content: line?.content || ' ',
|
content: line?.content,
|
||||||
lineNumber: line?.number,
|
lineNumber: line?.number,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,9 @@
|
||||||
{{#prefix}}
|
{{#prefix}}
|
||||||
<span class="d2h-code-line-prefix">{{{prefix}}}</span>
|
<span class="d2h-code-line-prefix">{{{prefix}}}</span>
|
||||||
{{/prefix}}
|
{{/prefix}}
|
||||||
|
{{^prefix}}
|
||||||
|
<span class="d2h-code-line-prefix"> </span>
|
||||||
|
{{/prefix}}
|
||||||
{{#content}}
|
{{#content}}
|
||||||
<span class="d2h-code-line-ctn">{{{content}}}</span>
|
<span class="d2h-code-line-ctn">{{{content}}}</span>
|
||||||
{{/content}}
|
{{/content}}
|
||||||
|
|
|
||||||
|
|
@ -207,7 +207,8 @@
|
||||||
|
|
||||||
.d2h-code-linenumber,
|
.d2h-code-linenumber,
|
||||||
.d2h-code-side-linenumber,
|
.d2h-code-side-linenumber,
|
||||||
.d2h-code-line-prefix {
|
.d2h-code-line-prefix,
|
||||||
|
.d2h-emptyplaceholder {
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue