private static CodeElement CreateCodeElement(SerializationContext context) { var element = new CodeElement(); Snippet snippet = context.Snippet; if (snippet.CodeText != null) { if (TextUtility.ContainsCDataEnd(snippet.CodeText)) { throw new InvalidOperationException("Snippet code cannot contain CDATA ending sequence ']]>'."); } element.Code = snippet.CodeText; } if (!snippet.HasDefaultDelimiter || !context.Settings.OmitDefaultDelimiter) { element.Delimiter = new string(snippet.Delimiter, 1); } if (snippet.ContextKind != ContextKind.None) { element.Kind = snippet.ContextKind.ToString(); } element.Language = LanguageMapper.MapEnumToText(snippet.Language); return(element); }
private static void LoadCodeElement(CodeElement element, Snippet snippet) { if (element.Delimiter?.Length == 1) { snippet.Delimiter = element.Delimiter[0]; } if (element.Kind != null && ContextKinds.TryGetValue(element.Kind, out ContextKind kind)) { snippet.ContextKind = kind; } if (element.Language != null) { snippet.Language = LanguageMapper.MapTextToEnum(element.Language); } if (element.Code != null) { snippet.CodeText = element.Code; } }