Skip to content

Commit 84a575d

Browse files
committed
assets/highlightjs-line-numbers: Upgrade to 2.7.0
See wcoder/highlightjs-line-numbers.js#62 for more details.
1 parent d699418 commit 84a575d

File tree

8 files changed

+27
-334
lines changed

8 files changed

+27
-334
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"file-loader": "^3.0.1",
4747
"font-awesome": "^4.7.0",
4848
"highlight.js": "^9.15.6",
49-
"highlightjs-line-numbers.js": "^2.6.0",
49+
"highlightjs-line-numbers.js": "^2.7.0",
5050
"iframe-resizer": "^4.0.4",
5151
"imports-loader": "^0.8.0",
5252
"jquery": "^3.3.1",

swh/web/assets/config/webpack.config.development.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -364,10 +364,6 @@ module.exports = {
364364
'./node_modules/admin-lte/dist/js/adminlte.js'
365365
},
366366
licenseOverride: {
367-
'./swh/web/assets/src/thirdparty/highlightjs-line-numbers/highlightjs-line-numbers.js': {
368-
'spdxLicenseExpression': 'MIT',
369-
'licenseFilePath': './swh/web/assets/src/thirdparty/highlightjs-line-numbers/LICENSE'
370-
},
371367
'./swh/web/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js': {
372368
'spdxLicenseExpression': 'GPL-3.0',
373369
'licenseFilePath': './swh/web/assets/src/thirdparty/jquery.tabSlideOut/LICENSE'

swh/web/assets/src/bundles/revision/diff-utils.js

Lines changed: 20 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,6 @@ function formatDiffLineNumbers(fromLine, toLine, maxNumberChars) {
6565
return ret;
6666
}
6767

68-
function adjustCodeBlockLeftMargin(diffElt) {
69-
let left = $(diffElt).find('.hljs-ln-numbers-container').width();
70-
$(diffElt).find('.hljs-ln-code-container').css('margin-left', left + 'px');
71-
}
72-
7368
// to compute diff and process it for display
7469
export function computeDiff(diffUrl, diffId) {
7570

@@ -144,10 +139,8 @@ export function computeDiff(diffUrl, diffId) {
144139
let diffToStr = '';
145140
let linesOffset = 0;
146141

147-
let codeLineElts = $(`#${diffId} .hljs-ln-code-container`).children();
148-
149142
$(`#${diffId} .hljs-ln-numbers`).each((i, lnElt) => {
150-
let lnText = $(codeLineElts[i]).text();
143+
let lnText = lnElt.nextSibling.innerText;
151144
let linesInfo = linesInfoRegExp.exec(lnText);
152145
let fromLine = '';
153146
let toLine = '';
@@ -218,55 +211,45 @@ export function computeDiff(diffUrl, diffId) {
218211
hljs.lineNumbersBlock(block);
219212
});
220213

221-
function highlightDiffLines(diffId) {
222-
let codeLineElts = $(`#${diffId} .hljs-ln-code-container`).children();
223-
$(`#${diffId} .hljs-ln-numbers`).each((i, lnElt) => {
224-
let lnTextElt = codeLineElts[i];
225-
let lnText = $(lnTextElt).text();
214+
// hljs.lineNumbersBlock is asynchronous so we have to postpone our
215+
// next treatments by adding it at the end of the current js events queue
216+
setTimeout(() => {
217+
// diff highlighting for added/removed lines on top of code highlighting
218+
$(`.${diffId} .hljs-ln-numbers`).each((i, lnElt) => {
219+
let lnText = lnElt.nextSibling.innerText;
226220
let linesInfo = linesInfoRegExp.exec(lnText);
227221
if (linesInfo) {
228-
$(lnElt).addClass('swh-diff-lines-info');
229-
$(lnTextElt).addClass('swh-diff-lines-info');
230-
$(lnTextElt).text('');
231-
$(lnTextElt).append(`<span class="hljs-meta">${lnText}</span>`);
222+
$(lnElt).parent().addClass('swh-diff-lines-info');
223+
let linesInfoText = $(lnElt).parent().find('.hljs-ln-code .hljs-ln-line').text();
224+
$(lnElt).parent().find('.hljs-ln-code .hljs-ln-line').children().remove();
225+
$(lnElt).parent().find('.hljs-ln-code .hljs-ln-line').text('');
226+
$(lnElt).parent().find('.hljs-ln-code .hljs-ln-line').append(`<span class="hljs-meta">${linesInfoText}</span>`);
232227
} else if (lnText.length > 0 && lnText[0] === '-') {
233-
$(lnElt).addClass('swh-diff-removed-line');
234-
$(lnTextElt).addClass('swh-diff-removed-line');
228+
$(lnElt).parent().addClass('swh-diff-removed-line');
235229
} else if (lnText.length > 0 && lnText[0] === '+') {
236-
$(lnElt).addClass('swh-diff-added-line');
237-
$(lnTextElt).addClass('swh-diff-added-line');
230+
$(lnElt).parent().addClass('swh-diff-added-line');
238231
}
239232
});
240-
}
241-
242-
// hljs.lineNumbersBlock is asynchronous so we have to postpone our
243-
// next treatments by adding it at the end of the current js events queue
244-
setTimeout(() => {
245-
246-
// diff highlighting for added/removed lines on top of code highlighting
247-
highlightDiffLines(diffId);
248-
highlightDiffLines(`${diffId}-from`);
249-
highlightDiffLines(`${diffId}-to`);
250233

251234
// set line numbers for unified diff
252-
$(`#${diffId} .hljs-ln-numbers .hljs-ln-n`).each((i, lnElt) => {
253-
$(lnElt).attr(
235+
$(`#${diffId} .hljs-ln-numbers`).each((i, lnElt) => {
236+
$(lnElt).children().attr(
254237
'data-line-number',
255238
formatDiffLineNumbers(fromToLines[i][0], fromToLines[i][1],
256239
maxNumberChars));
257240
});
258241

259242
// set line numbers for the from side-by-side diff
260-
$(`#${diffId}-from .hljs-ln-numbers .hljs-ln-n`).each((i, lnElt) => {
261-
$(lnElt).attr(
243+
$(`#${diffId}-from .hljs-ln-numbers`).each((i, lnElt) => {
244+
$(lnElt).children().attr(
262245
'data-line-number',
263246
formatDiffLineNumbers(fromLines[i], null,
264247
maxNumberChars));
265248
});
266249

267250
// set line numbers for the to side-by-side diff
268-
$(`#${diffId}-to .hljs-ln-numbers .hljs-ln-n`).each((i, lnElt) => {
269-
$(lnElt).attr(
251+
$(`#${diffId}-to .hljs-ln-numbers`).each((i, lnElt) => {
252+
$(lnElt).children().attr(
270253
'data-line-number',
271254
formatDiffLineNumbers(null, toLines[i],
272255
maxNumberChars));
@@ -305,8 +288,6 @@ export function computeDiff(diffUrl, diffId) {
305288

306289
setDiffVisible(diffId);
307290

308-
adjustCodeBlockLeftMargin(`#${diffId}`);
309-
310291
});
311292
});
312293
}
@@ -429,8 +410,6 @@ export function showUnifiedDiff(event, diffId) {
429410
export function showSplittedDiff(event, diffId) {
430411
$(`#${diffId}-unified-diff`).css('display', 'none');
431412
$(`#${diffId}-splitted-diff`).css('display', 'block');
432-
adjustCodeBlockLeftMargin(`#${diffId}-from`);
433-
adjustCodeBlockLeftMargin(`#${diffId}-to`);
434413
}
435414

436415
// callback when the user clicks on the 'Compute all diffs' button

swh/web/assets/src/thirdparty/highlightjs-line-numbers/LICENSE

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)