collapse = TRUE will collapse messages into source blocks, too.

message("this is a message")
#> this is a message

warning("this is a warning")
#> this is a warning

stop("this is an error")
#> Error: this is an error

Not collapsing or striping blank lines:

message("this is a message")
#> this is a message
warning("this is a warning")
#> this is a warning
stop("this is an error")
#> Error: this is an error

Collapsing without striping blank lines:

message("this is a message")
#> this is a message
warning("this is a warning")
#> this is a warning
stop("this is an error")
#> Error: this is an error