@@ -28,6 +28,8 @@ pub(super) fn format_file_metadata(entry: &DirectoryEntry) -> String {
2828 format ! ( "({}, modified {})" , size, modified)
2929}
3030
31+ // Removed unused traditional_metadata function
32+
3133pub ( super ) fn format_colorized_metadata ( entry : & DirectoryEntry , config : & DisplayConfig ) -> String {
3234 if !colors:: should_use_colors ( config) {
3335 return format_metadata ( entry) ;
@@ -44,85 +46,108 @@ pub(super) fn format_colorized_metadata(entry: &DirectoryEntry, config: &Display
4446 . as_secs ( ) ;
4547 let time_diff = now. saturating_sub ( modified_secs) ;
4648
49+ // Define separators
50+ let separator = colors:: colorize ( " | " , colors:: get_separator_color ( config) , config) ;
51+
4752 if entry. is_dir {
48- let files_text = format ! ( "{} files" , entry. metadata. files_count) ;
49- let files_colored = if config. size_colorize {
53+ // Format files count
54+ let files_label = colors:: colorize ( "files: " , colors:: get_label_color ( config) , config) ;
55+ let files_value = if config. size_colorize {
5056 colors:: colorize (
51- & files_text ,
57+ & format ! ( "{}" , entry . metadata . files_count ) ,
5258 colors:: get_size_color ( entry. metadata . size , config) ,
5359 config
5460 )
5561 } else {
5662 colors:: colorize (
57- & files_text ,
58- colors:: get_metadata_color ( config) ,
63+ & format ! ( "{}" , entry . metadata . files_count ) ,
64+ colors:: get_value_color ( config) ,
5965 config
6066 )
6167 } ;
68+ let files_section = format ! ( "{}{}" , files_label, files_value) ;
6269
63- let size_text = format_size ( entry. metadata . size ) ;
64- let size_colored = if config. size_colorize {
70+ // Format size
71+ let size_label = colors:: colorize ( "size: " , colors:: get_label_color ( config) , config) ;
72+ let size_value = if config. size_colorize {
6573 colors:: colorize (
66- & size_text ,
74+ & format_size ( entry . metadata . size ) ,
6775 colors:: get_size_color ( entry. metadata . size , config) ,
6876 config
6977 )
7078 } else {
7179 colors:: colorize (
72- & size_text ,
73- colors:: get_metadata_color ( config) ,
80+ & format_size ( entry . metadata . size ) ,
81+ colors:: get_value_color ( config) ,
7482 config
7583 )
7684 } ;
85+ let size_section = format ! ( "{}{}" , size_label, size_value) ;
7786
78- let date_text = format ! ( "modified {}" , format_time( entry. metadata. modified) ) ;
79- let date_colored = if config. date_colorize {
87+ // Format date
88+ let date_label = colors:: colorize ( "mod: " , colors:: get_label_color ( config) , config) ;
89+ let date_value = if config. date_colorize {
8090 colors:: colorize (
81- & date_text ,
91+ & format_time ( entry . metadata . modified ) ,
8292 colors:: get_date_color ( time_diff, config) ,
8393 config
8494 )
8595 } else {
8696 colors:: colorize (
87- & date_text ,
88- colors:: get_metadata_color ( config) ,
97+ & format_time ( entry . metadata . modified ) ,
98+ colors:: get_value_color ( config) ,
8999 config
90100 )
91101 } ;
102+ let date_section = format ! ( "{}{}" , date_label, date_value) ;
92103
93- format ! ( "({}, {}, {})" , files_colored, size_colored, date_colored)
104+ format ! ( "({}{}{}{}{})" ,
105+ files_section,
106+ separator,
107+ size_section,
108+ separator,
109+ date_section
110+ )
94111 } else {
95- let size_text = format_size ( entry. metadata . size ) ;
96- let size_colored = if config. size_colorize {
112+ // Format size
113+ let size_label = colors:: colorize ( "size: " , colors:: get_label_color ( config) , config) ;
114+ let size_value = if config. size_colorize {
97115 colors:: colorize (
98- & size_text ,
116+ & format_size ( entry . metadata . size ) ,
99117 colors:: get_size_color ( entry. metadata . size , config) ,
100118 config
101119 )
102120 } else {
103121 colors:: colorize (
104- & size_text ,
105- colors:: get_metadata_color ( config) ,
122+ & format_size ( entry . metadata . size ) ,
123+ colors:: get_value_color ( config) ,
106124 config
107125 )
108126 } ;
127+ let size_section = format ! ( "{}{}" , size_label, size_value) ;
109128
110- let date_text = format ! ( "modified {}" , format_time( entry. metadata. modified) ) ;
111- let date_colored = if config. date_colorize {
129+ // Format date
130+ let date_label = colors:: colorize ( "mod: " , colors:: get_label_color ( config) , config) ;
131+ let date_value = if config. date_colorize {
112132 colors:: colorize (
113- & date_text ,
133+ & format_time ( entry . metadata . modified ) ,
114134 colors:: get_date_color ( time_diff, config) ,
115135 config
116136 )
117137 } else {
118138 colors:: colorize (
119- & date_text ,
120- colors:: get_metadata_color ( config) ,
139+ & format_time ( entry . metadata . modified ) ,
140+ colors:: get_value_color ( config) ,
121141 config
122142 )
123143 } ;
144+ let date_section = format ! ( "{}{}" , date_label, date_value) ;
124145
125- format ! ( "({}, {})" , size_colored, date_colored)
146+ format ! ( "({}{}{})" ,
147+ size_section,
148+ separator,
149+ date_section
150+ )
126151 }
127152}
128153
@@ -151,80 +176,111 @@ pub(super) fn format_detailed_metadata(entry: &DirectoryEntry, config: &DisplayC
151176 let file_type = colors:: determine_file_type ( entry) ;
152177 let type_str = format ! ( "{:?}" , file_type) ;
153178
154- // Start building parts
155- let mut parts = Vec :: new ( ) ;
179+ // Define separators
180+ let separator = colors:: colorize ( " | " , colors:: get_separator_color ( config) , config) ;
181+
182+ // Build sections
156183
157- // Size info
158- let size_text = format_size ( entry . metadata . size ) ;
159- let size_colored = if config. size_colorize {
184+ // Size section
185+ let size_label = colors :: colorize ( " size: " , colors :: get_label_color ( config ) , config ) ;
186+ let size_value = if config. size_colorize {
160187 colors:: colorize (
161- & size_text ,
188+ & format_size ( entry . metadata . size ) ,
162189 colors:: get_size_color ( entry. metadata . size , config) ,
163190 config
164191 )
165192 } else {
166193 colors:: colorize (
167- & size_text ,
168- colors:: get_metadata_color ( config) ,
194+ & format_size ( entry . metadata . size ) ,
195+ colors:: get_value_color ( config) ,
169196 config
170197 )
171198 } ;
172- parts . push ( size_colored ) ;
199+ let size_section = format ! ( "{}{}" , size_label , size_value ) ;
173200
174- // Type info
175- let type_colored = colors:: colorize (
201+ // Type section
202+ let type_label = colors:: colorize ( "type: " , colors:: get_label_color ( config) , config) ;
203+ let type_value = colors:: colorize (
176204 & type_str,
177205 colors:: get_name_color ( entry, config) ,
178206 config
179207 ) ;
180- parts . push ( type_colored ) ;
208+ let type_section = format ! ( "{}{}" , type_label , type_value ) ;
181209
182- // Date info - modified
183- let modified_text = format ! ( "mod: {} " , format_time ( entry . metadata . modified ) ) ;
184- let modified_colored = if config. date_colorize {
210+ // Modified date section
211+ let mod_label = colors :: colorize ( "mod: " , colors :: get_label_color ( config ) , config ) ;
212+ let mod_value = if config. date_colorize {
185213 colors:: colorize (
186- & modified_text ,
214+ & format_time ( entry . metadata . modified ) ,
187215 colors:: get_date_color ( time_diff, config) ,
188216 config
189217 )
190218 } else {
191219 colors:: colorize (
192- & modified_text ,
193- colors:: get_metadata_color ( config) ,
220+ & format_time ( entry . metadata . modified ) ,
221+ colors:: get_value_color ( config) ,
194222 config
195223 )
196224 } ;
197- parts . push ( modified_colored ) ;
225+ let mod_section = format ! ( "{}{}" , mod_label , mod_value ) ;
198226
199- // Date info - created
200- let created_text = format ! ( "created: {} " , format_time ( entry . metadata . created ) ) ;
201- let created_colored = if config. date_colorize {
227+ // Created date section
228+ let created_label = colors :: colorize ( "created: " , colors :: get_label_color ( config ) , config ) ;
229+ let created_value = if config. date_colorize {
202230 colors:: colorize (
203- & created_text ,
231+ & format_time ( entry . metadata . created ) ,
204232 colors:: get_date_color ( created_diff, config) ,
205233 config
206234 )
207235 } else {
208236 colors:: colorize (
209- & created_text ,
210- colors:: get_metadata_color ( config) ,
237+ & format_time ( entry . metadata . created ) ,
238+ colors:: get_value_color ( config) ,
211239 config
212240 )
213241 } ;
214- parts . push ( created_colored ) ;
242+ let created_section = format ! ( "{}{}" , created_label , created_value ) ;
215243
216- // Add files count for directories
244+ // For directories, add files count section
217245 if entry. is_dir {
218- let files_text = format ! ( "{} files" , entry. metadata. files_count) ;
219- let files_colored = colors:: colorize (
220- & files_text,
221- colors:: get_metadata_color ( config) ,
222- config
223- ) ;
224- parts. push ( files_colored) ;
246+ let files_label = colors:: colorize ( "files: " , colors:: get_label_color ( config) , config) ;
247+ let files_value = if config. size_colorize {
248+ colors:: colorize (
249+ & format ! ( "{}" , entry. metadata. files_count) ,
250+ colors:: get_size_color ( entry. metadata . size , config) ,
251+ config
252+ )
253+ } else {
254+ colors:: colorize (
255+ & format ! ( "{}" , entry. metadata. files_count) ,
256+ colors:: get_value_color ( config) ,
257+ config
258+ )
259+ } ;
260+ let files_section = format ! ( "{}{}" , files_label, files_value) ;
261+
262+ format ! ( "({}{}{}{}{}{}{}{}{})" ,
263+ size_section,
264+ separator,
265+ type_section,
266+ separator,
267+ mod_section,
268+ separator,
269+ created_section,
270+ separator,
271+ files_section
272+ )
273+ } else {
274+ format ! ( "({}{}{}{}{}{}{})" ,
275+ size_section,
276+ separator,
277+ type_section,
278+ separator,
279+ mod_section,
280+ separator,
281+ created_section
282+ )
225283 }
226-
227- format ! ( "({})" , parts. join( ", " ) )
228284}
229285
230286pub ( super ) fn format_size ( size : u64 ) -> String {
0 commit comments