1
1
use anyhow:: Context ;
2
2
use documented:: DocumentedFields ;
3
+ use inkjet:: {
4
+ formatter:: Terminal ,
5
+ theme:: { vendored, Theme } ,
6
+ Highlighter , Language ,
7
+ } ;
3
8
use itertools:: Itertools ;
4
9
use log:: warn;
5
10
use std:: {
@@ -9,6 +14,7 @@ use std::{
9
14
path:: { Path , PathBuf } ,
10
15
} ;
11
16
use struct_field_names_as_array:: FieldNamesAsArray ;
17
+ use termcolor:: { ColorChoice , StandardStream } ;
12
18
use toml_edit:: { DocumentMut , RawString } ;
13
19
14
20
use serde:: { de:: Error , Deserializer , Serializer } ;
@@ -358,6 +364,19 @@ pub fn get_example_config_str() -> String {
358
364
document. to_string ( )
359
365
}
360
366
367
+ pub fn print_example_config_highlighted ( ) {
368
+ let config = get_example_config_str ( ) ;
369
+ let mut highlighter = Highlighter :: new ( ) ;
370
+ let language = Language :: Toml ;
371
+ let theme: Theme = Theme :: from_helix ( vendored:: BASE16_TERMINAL ) . unwrap ( ) ;
372
+ let stream = StandardStream :: stdout ( ColorChoice :: Auto ) ;
373
+ let formatter = Terminal :: new ( theme, stream) ;
374
+ highlighter
375
+ . highlight_to_writer ( language, & formatter, & config, & mut std:: io:: sink ( ) )
376
+ . unwrap ( ) ;
377
+ println ! ( ) ;
378
+ }
379
+
361
380
pub fn write_example_config ( filename : & Path ) -> anyhow:: Result < ( ) > {
362
381
let mut file = std:: fs:: File :: create_new ( filename)
363
382
. context ( format ! ( "Failed creating config file {:?}" , filename) ) ?;
0 commit comments