diffwatch 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2 -2
- package/dist/utils/diff-formatter.js +10 -4
- package/dist/utils/diff-formatter.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -2
- package/src/utils/diff-formatter.ts +38 -31
package/dist/index.js
CHANGED
|
@@ -416,7 +416,7 @@ Options:
|
|
|
416
416
|
else if (f.status === 'modified')
|
|
417
417
|
color = '{blue-fg}';
|
|
418
418
|
else if (f.status === 'unstaged')
|
|
419
|
-
color = '{
|
|
419
|
+
color = '{green-fg}';
|
|
420
420
|
else if (f.status === 'unchanged')
|
|
421
421
|
color = '{grey-fg}';
|
|
422
422
|
let statusSymbol = '';
|
|
@@ -427,7 +427,7 @@ Options:
|
|
|
427
427
|
else if (f.status === 'modified')
|
|
428
428
|
statusSymbol = 'M ';
|
|
429
429
|
else if (f.status === 'unstaged')
|
|
430
|
-
statusSymbol = '
|
|
430
|
+
statusSymbol = '+ ';
|
|
431
431
|
else if (f.status === 'unchanged')
|
|
432
432
|
statusSymbol = ' ';
|
|
433
433
|
return `${color}${statusSymbol}${f.path}{/}`;
|
|
@@ -52,7 +52,7 @@ function formatDiffWithDiff2Html(diffString, searchTerm) {
|
|
|
52
52
|
$('.d2h-diff-tbody tr').each((_, row) => {
|
|
53
53
|
const $row = $(row);
|
|
54
54
|
if ($row.find('.d2h-code-line').length > 0) {
|
|
55
|
-
const $
|
|
55
|
+
const $lineNumberCell = $row.find('td.d2h-code-linenumber');
|
|
56
56
|
const isAdded = $row.find('td.d2h-ins').length > 0;
|
|
57
57
|
const isDeleted = $row.find('td.d2h-del').length > 0;
|
|
58
58
|
const $lineContent = $row.find('.d2h-code-line-ctn');
|
|
@@ -60,6 +60,10 @@ function formatDiffWithDiff2Html(diffString, searchTerm) {
|
|
|
60
60
|
const $lineWrapper = $row.find('.d2h-code-line');
|
|
61
61
|
let prefix = '';
|
|
62
62
|
let content = '';
|
|
63
|
+
let lineNumber = '';
|
|
64
|
+
if ($lineNumberCell.length > 0) {
|
|
65
|
+
lineNumber = $lineNumberCell.text().trim();
|
|
66
|
+
}
|
|
63
67
|
if ($linePrefix.length > 0) {
|
|
64
68
|
prefix = $linePrefix.text();
|
|
65
69
|
}
|
|
@@ -70,6 +74,8 @@ function formatDiffWithDiff2Html(diffString, searchTerm) {
|
|
|
70
74
|
content = $lineWrapper.text().trim();
|
|
71
75
|
}
|
|
72
76
|
let fullLine = prefix + content;
|
|
77
|
+
// Add line number with proper formatting
|
|
78
|
+
const formattedLineNumber = lineNumber ? `${lineNumber}: ` : ' ';
|
|
73
79
|
// Highlight search term if present
|
|
74
80
|
if (searchTerm && fullLine.toLowerCase().includes(searchTerm.toLowerCase())) {
|
|
75
81
|
const regex = new RegExp(`(${searchTerm.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')})`, 'gi');
|
|
@@ -79,13 +85,13 @@ function formatDiffWithDiff2Html(diffString, searchTerm) {
|
|
|
79
85
|
fullLine = fullLine.replace(regex, `\x1b[43m\x1b[30m$1\x1b[0m\x1b[${baseColor}m`);
|
|
80
86
|
}
|
|
81
87
|
if (isAdded) {
|
|
82
|
-
blessedText += `\x1b[32m${fullLine}\x1b[0m\n`;
|
|
88
|
+
blessedText += `\x1b[90m${formattedLineNumber}\x1b[0m\x1b[32m${fullLine}\x1b[0m\n`;
|
|
83
89
|
}
|
|
84
90
|
else if (isDeleted) {
|
|
85
|
-
blessedText += `\x1b[31m${fullLine}\x1b[0m\n`;
|
|
91
|
+
blessedText += `\x1b[90m${formattedLineNumber}\x1b[0m\x1b[31m${fullLine}\x1b[0m\n`;
|
|
86
92
|
}
|
|
87
93
|
else {
|
|
88
|
-
blessedText += `\x1b[37m${fullLine}\x1b[0m\n`;
|
|
94
|
+
blessedText += `\x1b[90m${formattedLineNumber}\x1b[0m\x1b[37m${fullLine}\x1b[0m\n`;
|
|
89
95
|
}
|
|
90
96
|
}
|
|
91
97
|
if ($row.find('.d2h-info').length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-formatter.js","sourceRoot":"","sources":["../../src/utils/diff-formatter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,
|
|
1
|
+
{"version":3,"file":"diff-formatter.js","sourceRoot":"","sources":["../../src/utils/diff-formatter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -432,14 +432,14 @@ const searchBox = blessed.box({
|
|
|
432
432
|
if (f.status === 'added') color = '{green-fg}';
|
|
433
433
|
else if (f.status === 'deleted') color = '{red-fg}';
|
|
434
434
|
else if (f.status === 'modified') color = '{blue-fg}';
|
|
435
|
-
else if (f.status === 'unstaged') color = '{
|
|
435
|
+
else if (f.status === 'unstaged') color = '{green-fg}';
|
|
436
436
|
else if (f.status === 'unchanged') color = '{grey-fg}';
|
|
437
437
|
|
|
438
438
|
let statusSymbol = '';
|
|
439
439
|
if (f.status === 'added') statusSymbol = 'A ';
|
|
440
440
|
else if (f.status === 'deleted') statusSymbol = 'D ';
|
|
441
441
|
else if (f.status === 'modified') statusSymbol = 'M ';
|
|
442
|
-
else if (f.status === 'unstaged') statusSymbol = '
|
|
442
|
+
else if (f.status === 'unstaged') statusSymbol = '+ ';
|
|
443
443
|
else if (f.status === 'unchanged') statusSymbol = ' ';
|
|
444
444
|
|
|
445
445
|
return `${color}${statusSymbol}${f.path}{/}`;
|
|
@@ -18,30 +18,37 @@ export function formatDiffWithDiff2Html(diffString: string, searchTerm?: string)
|
|
|
18
18
|
|
|
19
19
|
let blessedText = '';
|
|
20
20
|
|
|
21
|
-
$('.d2h-diff-tbody tr').each((_, row) => {
|
|
22
|
-
const $row = $(row);
|
|
23
|
-
|
|
24
|
-
if ($row.find('.d2h-code-line').length > 0) {
|
|
25
|
-
const $
|
|
26
|
-
const isAdded = $row.find('td.d2h-ins').length > 0;
|
|
27
|
-
const isDeleted = $row.find('td.d2h-del').length > 0;
|
|
28
|
-
const $lineContent = $row.find('.d2h-code-line-ctn');
|
|
29
|
-
const $linePrefix = $row.find('.d2h-code-line-prefix');
|
|
30
|
-
const $lineWrapper = $row.find('.d2h-code-line');
|
|
31
|
-
|
|
32
|
-
let prefix = '';
|
|
33
|
-
let content = '';
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
21
|
+
$('.d2h-diff-tbody tr').each((_, row) => {
|
|
22
|
+
const $row = $(row);
|
|
23
|
+
|
|
24
|
+
if ($row.find('.d2h-code-line').length > 0) {
|
|
25
|
+
const $lineNumberCell = $row.find('td.d2h-code-linenumber');
|
|
26
|
+
const isAdded = $row.find('td.d2h-ins').length > 0;
|
|
27
|
+
const isDeleted = $row.find('td.d2h-del').length > 0;
|
|
28
|
+
const $lineContent = $row.find('.d2h-code-line-ctn');
|
|
29
|
+
const $linePrefix = $row.find('.d2h-code-line-prefix');
|
|
30
|
+
const $lineWrapper = $row.find('.d2h-code-line');
|
|
31
|
+
|
|
32
|
+
let prefix = '';
|
|
33
|
+
let content = '';
|
|
34
|
+
let lineNumber = '';
|
|
35
|
+
|
|
36
|
+
if ($lineNumberCell.length > 0) {
|
|
37
|
+
lineNumber = $lineNumberCell.text().trim();
|
|
38
|
+
}
|
|
39
|
+
if ($linePrefix.length > 0) {
|
|
40
|
+
prefix = $linePrefix.text();
|
|
41
|
+
}
|
|
42
|
+
if ($lineContent.length > 0) {
|
|
43
|
+
content = $lineContent.text();
|
|
44
|
+
} else {
|
|
45
|
+
content = $lineWrapper.text().trim();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
let fullLine = prefix + content;
|
|
49
|
+
|
|
50
|
+
// Add line number with proper formatting
|
|
51
|
+
const formattedLineNumber = lineNumber ? `${lineNumber}: ` : ' ';
|
|
45
52
|
|
|
46
53
|
// Highlight search term if present
|
|
47
54
|
if (searchTerm && fullLine.toLowerCase().includes(searchTerm.toLowerCase())) {
|
|
@@ -52,13 +59,13 @@ export function formatDiffWithDiff2Html(diffString: string, searchTerm?: string)
|
|
|
52
59
|
fullLine = fullLine.replace(regex, `\x1b[43m\x1b[30m$1\x1b[0m\x1b[${baseColor}m`);
|
|
53
60
|
}
|
|
54
61
|
|
|
55
|
-
if (isAdded) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
if (isAdded) {
|
|
63
|
+
blessedText += `\x1b[90m${formattedLineNumber}\x1b[0m\x1b[32m${fullLine}\x1b[0m\n`;
|
|
64
|
+
} else if (isDeleted) {
|
|
65
|
+
blessedText += `\x1b[90m${formattedLineNumber}\x1b[0m\x1b[31m${fullLine}\x1b[0m\n`;
|
|
66
|
+
} else {
|
|
67
|
+
blessedText += `\x1b[90m${formattedLineNumber}\x1b[0m\x1b[37m${fullLine}\x1b[0m\n`;
|
|
68
|
+
}
|
|
62
69
|
}
|
|
63
70
|
|
|
64
71
|
if ($row.find('.d2h-info').length > 0) {
|