@@ -15,27 +15,30 @@ public class TranslationContext
1515 {
1616 private readonly ExpressionAnalysisVisitor _analyzer ;
1717 private readonly Translator _globalTranslator ;
18+ private readonly ReadableStringSettings _settings ;
1819
19- private TranslationContext ( ExpressionAnalysisVisitor analyzer , Translator globalTranslator )
20+ private TranslationContext ( ExpressionAnalysisVisitor analyzer , Translator globalTranslator , ReadableStringSettings settings )
2021 {
2122 _analyzer = analyzer ;
2223 _globalTranslator = globalTranslator ;
23- }
24-
25- /// <summary>
26- /// Creates a <see cref="TranslationContext"/> containing information about the given
27- /// <paramref name="expression"/>.
28- /// </summary>
29- /// <param name="expression">
30- /// The <see cref="Expression"/> for which to create the <see cref="TranslationContext"/>.
31- /// </param>
32- /// <param name="globalTranslator">
33- /// A global <see cref="Translator"/> delegate with which to perform translations.
34- /// </param>
35- /// <returns>A <see cref="TranslationContext"/> for the given<paramref name="expression"/>.</returns>
36- public static TranslationContext For ( Expression expression , Translator globalTranslator )
24+ _settings = settings ;
25+ }
26+
27+ /// <summary>
28+ /// Creates a <see cref="TranslationContext"/> containing information about the given
29+ /// <paramref name="expression"/>.
30+ /// </summary>
31+ /// <param name="expression">
32+ /// The <see cref="Expression"/> for which to create the <see cref="TranslationContext"/>.
33+ /// </param>
34+ /// <param name="globalTranslator">
35+ /// A global <see cref="Translator"/> delegate with which to perform translations.
36+ /// </param>
37+ /// <param name="settings">Configuration for the translation</param>
38+ /// <returns>A <see cref="TranslationContext"/> for the given<paramref name="expression"/>.</returns>
39+ public static TranslationContext For ( Expression expression , Translator globalTranslator , ReadableStringSettings settings )
3740 {
38- return new TranslationContext ( ExpressionAnalysisVisitor . Analyse ( expression ) , globalTranslator ) ;
41+ return new TranslationContext ( ExpressionAnalysisVisitor . Analyse ( expression ) , globalTranslator , settings ) ;
3942 }
4043
4144 /// <summary>
@@ -44,12 +47,17 @@ public static TranslationContext For(Expression expression, Translator globalTra
4447 /// </summary>
4548 public IEnumerable < ParameterExpression > JoinedAssignmentVariables => _analyzer . JoinedAssignedVariables ;
4649
47- /// <summary>
48- /// Translates the given <paramref name="expression"/> to readable source code.
49- /// </summary>
50- /// <param name="expression">The <see cref="Expression"/> to translate.</param>
51- /// <returns>A source code translation of the given <paramref name="expression"/>.</returns>
52- public string Translate ( Expression expression )
50+ /// <summary>
51+ /// Configuration for translation in this context
52+ /// </summary>
53+ public ReadableStringSettings Settings { get => _settings ; }
54+
55+ /// <summary>
56+ /// Translates the given <paramref name="expression"/> to readable source code.
57+ /// </summary>
58+ /// <param name="expression">The <see cref="Expression"/> to translate.</param>
59+ /// <returns>A source code translation of the given <paramref name="expression"/>.</returns>
60+ public string Translate ( Expression expression )
5361 {
5462 return _globalTranslator . Invoke ( expression , this ) ;
5563 }
0 commit comments