@@ -165,6 +165,8 @@ impl ChangesComponent {
165
165
166
166
match & item. kind {
167
167
FileTreeItemKind :: File ( status_item) => {
168
+ let status_char =
169
+ Self :: item_status_char ( & status_item. status ) ;
168
170
let file = Path :: new ( & status_item. path )
169
171
. file_name ( )
170
172
. unwrap ( )
@@ -173,28 +175,22 @@ impl ChangesComponent {
173
175
174
176
let txt = if selected {
175
177
format ! (
176
- "{}{:w$}" ,
178
+ "{} {}{:w$}" ,
179
+ status_char,
177
180
indent_str,
178
181
file,
179
182
w = width as usize
180
183
)
181
184
} else {
182
- format ! ( "{}{} " , indent_str, file)
185
+ format ! ( "{} {}{} " , status_char , indent_str, file) //M + - R
183
186
} ;
184
187
185
- let mut style = Style :: default ( ) . fg (
186
- match status_item
187
- . status
188
- . unwrap_or ( StatusItemType :: Modified )
189
- {
190
- StatusItemType :: Modified => {
191
- Color :: LightYellow
192
- }
193
- StatusItemType :: New => Color :: LightGreen ,
194
- StatusItemType :: Deleted => Color :: LightRed ,
195
- _ => Color :: White ,
196
- } ,
197
- ) ;
188
+ let mut style =
189
+ Style :: default ( ) . fg ( Self :: item_color (
190
+ status_item
191
+ . status
192
+ . unwrap_or ( StatusItemType :: Modified ) ,
193
+ ) ) ;
198
194
199
195
if selected {
200
196
style = style. bg ( select_color) ;
@@ -209,15 +205,15 @@ impl ChangesComponent {
209
205
210
206
let txt = if selected {
211
207
format ! (
212
- "{}{}{:w$}" ,
208
+ " {}{}{:w$}" ,
213
209
indent_str,
214
210
collapse_char,
215
211
item. info. path,
216
212
w = width as usize
217
213
)
218
214
} else {
219
215
format ! (
220
- "{}{}{}" ,
216
+ " {}{}{}" ,
221
217
indent_str, collapse_char, item. info. path,
222
218
)
223
219
} ;
@@ -232,6 +228,30 @@ impl ChangesComponent {
232
228
}
233
229
}
234
230
}
231
+
232
+ fn item_color ( item_type : StatusItemType ) -> Color {
233
+ match item_type {
234
+ StatusItemType :: Modified => Color :: LightYellow ,
235
+ StatusItemType :: New => Color :: LightGreen ,
236
+ StatusItemType :: Deleted => Color :: LightRed ,
237
+ StatusItemType :: Renamed => Color :: LightMagenta ,
238
+ _ => Color :: White ,
239
+ }
240
+ }
241
+
242
+ fn item_status_char ( item_type : & Option < StatusItemType > ) -> char {
243
+ if let Some ( item_type) = item_type {
244
+ match item_type {
245
+ StatusItemType :: Modified => 'M' ,
246
+ StatusItemType :: New => '+' ,
247
+ StatusItemType :: Deleted => '-' ,
248
+ StatusItemType :: Renamed => 'R' ,
249
+ _ => ' ' ,
250
+ }
251
+ } else {
252
+ ' '
253
+ }
254
+ }
235
255
}
236
256
237
257
impl DrawableComponent for ChangesComponent {
0 commit comments