66
77use  anyhow:: { Context ,  Result } ; 
88use  code2prompt_core:: { 
9-     configuration:: Code2PromptConfig ,  session:: Code2PromptSession ,  sort:: FileSortMethod , 
10-     template:: extract_undefined_variables,  tokenizer:: TokenizerType , 
9+     configuration:: Code2PromptConfig , 
10+     session:: Code2PromptSession , 
11+     sort:: FileSortMethod , 
12+     template:: { OutputFormat ,  extract_undefined_variables} , 
13+     tokenizer:: TokenizerType , 
1114} ; 
1215use  inquire:: Text ; 
1316use  log:: error; 
@@ -55,7 +58,6 @@ pub fn build_session(
5558            expand_comma_separated_patterns ( & args. exclude ) , 
5659        ) 
5760    } ; 
58- 
5961    configuration
6062        . include_patterns ( include_patterns) 
6163        . exclude_patterns ( exclude_patterns) ; 
@@ -64,14 +66,20 @@ pub fn build_session(
6466    let  cfg_line_numbers = cfg. map ( |c| c. line_numbers ) . unwrap_or ( false ) ; 
6567    let  cfg_absolute = cfg. map ( |c| c. absolute_path ) . unwrap_or ( false ) ; 
6668    let  cfg_full_tree = cfg. map ( |c| c. full_directory_tree ) . unwrap_or ( false ) ; 
67- 
6869    configuration
6970        . line_numbers ( args. line_numbers  || cfg_line_numbers) 
7071        . absolute_path ( args. absolute_paths  || cfg_absolute) 
7172        . full_directory_tree ( args. full_directory_tree  || cfg_full_tree) ; 
7273
73-     // Output format: CLI value 
74-     configuration. output_format ( args. output_format . clone ( ) ) ; 
74+     // Output format: CLI overrides config 
75+     let  output_format = if  let  Some ( output_format_str)  = args. output_format  { 
76+         output_format_str
77+     }  else  if  let  Some ( c)  = cfg { 
78+         c. output_format . unwrap_or ( OutputFormat :: Markdown ) 
79+     }  else  { 
80+         OutputFormat :: Markdown 
81+     } ; 
82+     configuration. output_format ( output_format) ; 
7583
7684    // Sort method: CLI overrides config 
7785    let  sort_method = if  let  Some ( sort_str)  = args. sort  { 
@@ -81,9 +89,9 @@ pub fn build_session(
8189    }  else  { 
8290        FileSortMethod :: NameAsc 
8391    } ; 
84- 
8592    configuration. sort_method ( sort_method) ; 
8693
94+     // Tokenizer settings: CLI overrides config 
8795    let  tokenizer_type = if  let  Some ( encoding)  = args. encoding  { 
8896        encoding
8997    }  else  if  let  Some ( c)  = cfg { 
@@ -92,6 +100,7 @@ pub fn build_session(
92100        TokenizerType :: Cl100kBase 
93101    } ; 
94102
103+     // Token format: CLI overrides config 
95104    let  token_format = if  let  Some ( format)  = args. token_format  { 
96105        format
97106    }  else  if  let  Some ( c)  = cfg { 
0 commit comments