Share reporter detail rendering
This commit is contained in:
29
reporter.go
29
reporter.go
@@ -405,21 +405,7 @@ func renderTerminalLocked(state *reportingState, explanation Explanation) error
|
||||
writeErr = writer.writeError
|
||||
}
|
||||
if writeErr == nil {
|
||||
for _, detail := range explanation.Details {
|
||||
if detail == nil {
|
||||
continue
|
||||
}
|
||||
writer := &coordinatedWriter{state: state, destination: destinationDiagnostics}
|
||||
detailErr := detail(writer)
|
||||
detailWriteErr := writer.writeError
|
||||
detailRenderErr := recordRendererErrorLocked(state, destinationDiagnostics, detailErr, detailWriteErr)
|
||||
if renderErr == nil {
|
||||
renderErr = detailRenderErr
|
||||
}
|
||||
if writeErr == nil {
|
||||
writeErr = detailWriteErr
|
||||
}
|
||||
}
|
||||
renderErr, writeErr = renderDetailsLocked(state, explanation.Details, true)
|
||||
}
|
||||
if renderErr == nil && writeErr == nil {
|
||||
destination.delivered = true
|
||||
@@ -469,6 +455,14 @@ func (state *reportingState) submitMessageLocked(category messageCategory, messa
|
||||
if visible && writeErr != nil {
|
||||
return writeErr
|
||||
}
|
||||
renderErr, writeErr = renderDetailsLocked(state, details, visible)
|
||||
if visible && renderErr == nil && writeErr == nil {
|
||||
destination.delivered = true
|
||||
}
|
||||
return combineOperationErrors(renderErr, writeErr)
|
||||
}
|
||||
|
||||
func renderDetailsLocked(state *reportingState, details []Detail, visible bool) (renderErr, writeErr error) {
|
||||
for _, detail := range details {
|
||||
if detail == nil {
|
||||
continue
|
||||
@@ -489,10 +483,7 @@ func (state *reportingState) submitMessageLocked(category messageCategory, messa
|
||||
writeErr = detailWriteErr
|
||||
}
|
||||
}
|
||||
if visible && renderErr == nil && writeErr == nil {
|
||||
destination.delivered = true
|
||||
}
|
||||
return combineOperationErrors(renderErr, writeErr)
|
||||
return renderErr, writeErr
|
||||
}
|
||||
|
||||
func (state *reportingState) visible(category messageCategory) bool {
|
||||
|
||||
Reference in New Issue
Block a user