public string FindEncoding([NotNull] IT4OutputDirective directive, [NotNull] IT4CodeGenerationInterrupter interrupter) { var attribute = directive.GetFirstAttribute(T4DirectiveInfoManager.Output.EncodingAttribute); var value = attribute?.Value; if (value == null) { return(null); } string rawEncoding = value.GetText(); if (IsCodePage(rawEncoding)) { return(rawEncoding); // Insert unquoted } if (IsEncodingName(rawEncoding)) { return($"\"{rawEncoding}\""); } interrupter.InterruptAfterProblem(T4FailureRawData.FromElement(value, "Unknown encoding")); return(null); }
public override void VisitOutputDirectiveNode(IT4OutputDirective outputDirectiveParam) => Result.Encoding = EncodingsManager.FindEncoding(outputDirectiveParam, Interrupter);