Redbox: skip column number if it is 0

Summary:
Format before:
```
methodName
file_name.js @ 42:0
```

Format after
```
methodName
file_name.js:42
```

Reviewed By: javache

Differential Revision: D3350320

fbshipit-source-id: 456deb66bd34deb24bf8b8aa958883bdf4f99129
This commit is contained in:
Alex Kotliarskyi 2016-05-27 11:38:28 -07:00 committed by Facebook Github Bot 9
parent 1623e34c51
commit 0656b96354
1 changed files with 19 additions and 13 deletions

View File

@ -159,11 +159,7 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithCoder:(NSCoder *)aDecoder)
for (NSDictionary *stackFrame in _lastStackTrace) {
[fullStackTrace appendString:[NSString stringWithFormat:@"%@\n", stackFrame[@"methodName"]]];
if (stackFrame[@"file"]) {
NSString *lineInfo = [NSString stringWithFormat:@" %@ @ %zd:%zd\n",
[stackFrame[@"file"] lastPathComponent],
[stackFrame[@"lineNumber"] integerValue],
[stackFrame[@"column"] integerValue]];
[fullStackTrace appendString:lineInfo];
[fullStackTrace appendFormat:@" %@\n", [self formatFrameSource:stackFrame]];
}
}
@ -171,6 +167,19 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithCoder:(NSCoder *)aDecoder)
[pb setString:fullStackTrace];
}
- (NSString *)formatFrameSource:(NSDictionary *)stackFrame
{
NSString *lineInfo = [NSString stringWithFormat:@"%@:%zd",
[stackFrame[@"file"] lastPathComponent],
[stackFrame[@"lineNumber"] integerValue]];
NSInteger column = [stackFrame[@"column"] integerValue];
if (column != 0) {
lineInfo = [lineInfo stringByAppendingFormat:@":%zd", column];
}
return lineInfo;
}
#pragma mark - TableView
- (NSInteger)numberOfSectionsInTableView:(__unused UITableView *)tableView
@ -231,10 +240,7 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithCoder:(NSCoder *)aDecoder)
cell.textLabel.text = stackFrame[@"methodName"];
if (stackFrame[@"file"]) {
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@ @ %zd:%zd",
[stackFrame[@"file"] lastPathComponent],
[stackFrame[@"lineNumber"] integerValue],
[stackFrame[@"column"] integerValue]];
cell.detailTextLabel.text = [self formatFrameSource:stackFrame];
} else {
cell.detailTextLabel.text = @"";
}