Skip to content

Commit 113a681

Browse files
author
Orta Therox
authored
Do not show the additional file/errors table when there's 1 file with many errors (microsoft#47345)
* Use relative paths for the end of compile report * Have a tighter suffix for multiple errors in one file * Review feedback * Refactors, and adds color * Update baselinies
1 parent 9f64839 commit 113a681

File tree

39 files changed

+153
-144
lines changed

39 files changed

+153
-144
lines changed

src/compiler/diagnosticMessages.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4165,7 +4165,6 @@
41654165
"category": "Message",
41664166
"code": 6041
41674167
},
4168-
41694168
"Generates corresponding '.map' file.": {
41704169
"category": "Message",
41714170
"code": 6043
@@ -4949,7 +4948,7 @@
49494948
"category": "Message",
49504949
"code": 6259
49514950
},
4952-
"Found {0} errors in 1 file.": {
4951+
"Found {0} errors in the same file, starting at: {1}": {
49534952
"category": "Message",
49544953
"code": 6260
49554954
},

src/compiler/watch.ts

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,15 @@ namespace ts {
130130
Diagnostics.Found_0_errors_Watching_for_file_changes;
131131
}
132132

133+
function prettyPathForFileError(error: ReportFileInError, cwd: string) {
134+
const line = formatColorAndReset(":" + error.line, ForegroundColorEscapeSequences.Grey);
135+
if (pathIsAbsolute(error.fileName) && pathIsAbsolute(cwd)) {
136+
return getRelativePathFromDirectory(cwd, error.fileName, /* ignoreCase */ false) + line;
137+
}
138+
139+
return error.fileName + line;
140+
}
141+
133142
export function getErrorSummaryText(
134143
errorCount: number,
135144
filesInError: readonly (ReportFileInError | undefined)[],
@@ -140,22 +149,27 @@ namespace ts {
140149
const nonNilFiles = filesInError.filter(fileInError => fileInError !== undefined);
141150
const distinctFileNamesWithLines = nonNilFiles.map(fileInError => `${fileInError!.fileName}:${fileInError!.line}`)
142151
.filter((value, index, self) => self.indexOf(value) === index);
152+
153+
const firstFileReference = nonNilFiles[0] && prettyPathForFileError(nonNilFiles[0], host.getCurrentDirectory());
154+
143155
const d = errorCount === 1 ?
144156
createCompilerDiagnostic(
145157
filesInError[0] !== undefined ?
146158
Diagnostics.Found_1_error_in_1 :
147159
Diagnostics.Found_1_error,
148160
errorCount,
149-
distinctFileNamesWithLines[0]) :
161+
firstFileReference) :
150162
createCompilerDiagnostic(
151163
distinctFileNamesWithLines.length === 0 ?
152164
Diagnostics.Found_0_errors :
153165
distinctFileNamesWithLines.length === 1 ?
154-
Diagnostics.Found_0_errors_in_1_file :
166+
Diagnostics.Found_0_errors_in_the_same_file_starting_at_Colon_1 :
155167
Diagnostics.Found_0_errors_in_1_files,
156168
errorCount,
157-
distinctFileNamesWithLines.length);
158-
return `${newLine}${flattenDiagnosticMessageText(d.messageText, newLine)}${newLine}${newLine}${errorCount > 1 ? createTabularErrorsDisplay(nonNilFiles, host) : ""}`;
169+
distinctFileNamesWithLines.length === 1 ? firstFileReference : distinctFileNamesWithLines.length);
170+
171+
const suffix = distinctFileNamesWithLines.length > 1 ? createTabularErrorsDisplay(nonNilFiles, host) : "";
172+
return `${newLine}${flattenDiagnosticMessageText(d.messageText, newLine)}${newLine}${newLine}${suffix}`;
159173
}
160174

161175
function createTabularErrorsDisplay(filesInError: (ReportFileInError | undefined)[], host: HasCurrentDirectory) {
@@ -180,8 +194,8 @@ namespace ts {
180194
" ".repeat(leftPaddingGoal - errorCountDigitsLength)
181195
: "";
182196

183-
const relativePath = getRelativePathFromDirectory(host.getCurrentDirectory(), file!.fileName, /* ignoreCase */ false);
184-
tabularData += `${leftPadding}${errorCount} ${relativePath}:${file!.line}\n`;
197+
const fileRef = prettyPathForFileError(file!, host.getCurrentDirectory());
198+
tabularData += `${leftPadding}${errorCount} ${fileRef}\n`;
185199
});
186200

187201
return tabularData;

tests/baselines/reference/deeplyNestedAssignabilityIssue.errors.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,5 @@
6565
}
6666
}
6767

68-
Found 2 errors in 1 file.
68+
Found 2 errors in the same file, starting at: tests/cases/compiler/deeplyNestedAssignabilityIssue.ts:22
6969

70-
Errors Files
71-
2 tests/cases/compiler/deeplyNestedAssignabilityIssue.ts:22

tests/baselines/reference/duplicateIdentifierRelatedSpans1.errors.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,6 @@
9595
Found 6 errors in 3 files.
9696

9797
Errors Files
98-
2 tests/cases/compiler/file1.ts:1
99-
2 tests/cases/compiler/file2.ts:1
100-
2 tests/cases/compiler/file3.ts:1
98+
2 tests/cases/compiler/file1.ts:1
99+
2 tests/cases/compiler/file2.ts:1
100+
2 tests/cases/compiler/file3.ts:1

tests/baselines/reference/duplicateIdentifierRelatedSpans2.errors.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,5 @@
4848
Found 2 errors in 2 files.
4949

5050
Errors Files
51-
1 tests/cases/compiler/file1.ts:1
52-
1 tests/cases/compiler/file2.ts:1
51+
1 tests/cases/compiler/file1.ts:1
52+
1 tests/cases/compiler/file2.ts:1

tests/baselines/reference/duplicateIdentifierRelatedSpans3.errors.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,5 +88,5 @@
8888
Found 6 errors in 2 files.
8989

9090
Errors Files
91-
3 tests/cases/compiler/file1.ts:2
92-
3 tests/cases/compiler/file2.ts:2
91+
3 tests/cases/compiler/file1.ts:2
92+
3 tests/cases/compiler/file2.ts:2

tests/baselines/reference/duplicateIdentifierRelatedSpans4.errors.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,5 @@
5050
Found 2 errors in 2 files.
5151

5252
Errors Files
53-
1 tests/cases/compiler/file1.ts:1
54-
1 tests/cases/compiler/file2.ts:1
53+
1 tests/cases/compiler/file1.ts:1
54+
1 tests/cases/compiler/file2.ts:1

tests/baselines/reference/duplicateIdentifierRelatedSpans5.errors.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,5 +95,5 @@
9595
Found 6 errors in 2 files.
9696

9797
Errors Files
98-
3 tests/cases/compiler/file1.ts:3
99-
3 tests/cases/compiler/file2.ts:4
98+
3 tests/cases/compiler/file1.ts:3
99+
3 tests/cases/compiler/file2.ts:4

tests/baselines/reference/duplicateIdentifierRelatedSpans6.errors.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,5 +95,5 @@
9595
Found 6 errors in 2 files.
9696

9797
Errors Files
98-
3 tests/cases/compiler/file1.ts:3
99-
3 tests/cases/compiler/file2.ts:5
98+
3 tests/cases/compiler/file1.ts:3
99+
3 tests/cases/compiler/file2.ts:5

tests/baselines/reference/duplicateIdentifierRelatedSpans7.errors.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,5 @@
5959
Found 2 errors in 2 files.
6060

6161
Errors Files
62-
1 tests/cases/compiler/file1.ts:1
63-
1 tests/cases/compiler/file2.ts:3
62+
1 tests/cases/compiler/file1.ts:1
63+
1 tests/cases/compiler/file2.ts:3

0 commit comments

Comments
 (0)