@@ -160,14 +160,18 @@ impl DisplaySet<'_> {
160
160
& self ,
161
161
line_offset : usize ,
162
162
label : & [ DisplayTextFragment < ' _ > ] ,
163
+ needs_colon : bool ,
163
164
stylesheet : & Stylesheet ,
164
165
buffer : & mut StyledBuffer ,
165
166
) -> fmt:: Result {
166
- for fragment in label {
167
+ for ( i , fragment) in label. iter ( ) . enumerate ( ) {
167
168
let style = match fragment. style {
168
169
DisplayTextStyle :: Regular => stylesheet. none ( ) ,
169
170
DisplayTextStyle :: Emphasis => stylesheet. emphasis ( ) ,
170
171
} ;
172
+ if i == 0 && needs_colon {
173
+ buffer. append ( line_offset, ": " , * style) ;
174
+ }
171
175
buffer. append ( line_offset, fragment. content , * style) ;
172
176
}
173
177
Ok ( ( ) )
@@ -191,10 +195,10 @@ impl DisplaySet<'_> {
191
195
for _ in 0 ..formatted_len + 2 {
192
196
buffer. append ( line_offset, " " , Style :: new ( ) ) ;
193
197
}
194
- return self . format_label ( line_offset, & annotation. label , stylesheet, buffer) ;
198
+ return self . format_label ( line_offset, & annotation. label , false , stylesheet, buffer) ;
195
199
}
196
200
if formatted_len == 0 {
197
- self . format_label ( line_offset, & annotation. label , stylesheet, buffer)
201
+ self . format_label ( line_offset, & annotation. label , false , stylesheet, buffer)
198
202
} else {
199
203
let id = match & annotation. id {
200
204
Some ( id) => format ! ( "[{id}]" ) ,
@@ -207,8 +211,7 @@ impl DisplaySet<'_> {
207
211
) ;
208
212
209
213
if !is_annotation_empty ( annotation) {
210
- buffer. append ( line_offset, ": " , stylesheet. none ) ;
211
- self . format_label ( line_offset, & annotation. label , stylesheet, buffer) ?;
214
+ self . format_label ( line_offset, & annotation. label , true , stylesheet, buffer) ?;
212
215
}
213
216
Ok ( ( ) )
214
217
}
0 commit comments