public override void Run (DocGenerator generator, ISymbol member)
		{
			if (!generator.EvaluateCondition (Attributes, member))
				return;
			foreach (var caseSection in CaseSections) {
				if (generator.EvaluateCondition (caseSection.Attributes, member)) {
					caseSection.Children.ForEach (child => child.Run (generator, member));
					return;
				}
			}
			Children.ForEach (child => child.Run (generator, member));
		}
Exemple #2
0
		public override void Run (DocGenerator generator)
		{
			string str = StringParserService.Parse (Documentation, generator.tags).Trim ();
			if (!char.IsUpper (str[0]))
				str = char.ToUpper (str[0]) + str.Substring (1);
			if (!Override) {
				if (generator.curName != null) {
					if (generator.sections.Where (s => s.Name == Name) .Any (s => s.Attributes.Any (attr => attr.Value == generator.curName)))
						return;
				} else if (generator.sections.Any (s => s.Name == Name)) {
					return;
				}
			}
			generator.Set (Name, generator.curName, str);
		}
		public override void Run (DocGenerator generator)
		{
			if (!generator.EvaluateCondition (Attributes))
				Children.ForEach (child => child.Run (generator));
		}
			public override void Run (DocGenerator generator, ISymbol member)
			{
				if (generator.EvaluateCondition (Attributes, member))
					Children.ForEach (child => child.Run (generator, member));
			}
		internal static string GenerateEmptyDocumentation (TextEditorData data, IEntity member, string indent)
		{
			StringBuilder result = new StringBuilder ();
			
			DocGenerator generator = new DocGenerator (data);
			generator.GenerateDoc (member);
			
			bool first = true;
			foreach (Section section in generator.sections) {
				if (first) {
					result.Append (indent);
					result.Append ("/// <");
					first = false;
				} else {
					result.AppendLine ();
					result.Append (indent);
					result.Append ("/// <");
				}
				result.Append (section.Name);
				foreach (var attr in section.Attributes) {
					result.Append (" ");
					result.Append (attr.Key);
					result.Append ("=\"");
					result.Append (attr.Value);
					result.Append ("\"");
				}
				if (section.Name == "summary")
				{
					result.AppendLine (">");
					result.Append (indent);
					result.Append ("/// ");
					result.AppendLine ();
					result.Append (indent);
					result.Append ("/// ");
				}
				else
				{
					result.Append (">");
				}

//				bool inTag = false;
//				int column = indent.Length + "/// ".Length;

				result.Append ("</");
				result.Append (section.Name);
				result.Append (">");
			}
			result.AppendLine ();
			return result.ToString ();
		}
		internal static string GenerateDocumentation (TextEditorData data, IEntity member, string indent, string prefix)
		{
			StringBuilder result = new StringBuilder ();
			
			DocGenerator generator = new DocGenerator (data);
			generator.GenerateDoc (member);
			
			bool first = true;
			foreach (Section section in generator.sections) {
				if (first) {
					result.Append (indent);
					result.Append (prefix);
					result.Append ("<");
					first = false;
				} else {
					result.AppendLine ();
					result.Append (indent);
					result.Append (prefix);
					result.Append ("<");
				}
				result.Append (section.Name);
				foreach (var attr in section.Attributes) {
					result.Append (" ");
					result.Append (attr.Key);
					result.Append ("=\"");
					result.Append (attr.Value);
					result.Append ("\"");
				}
				if (section.Name == "summary")
				{
					result.AppendLine (">");
					result.Append (indent);
					result.Append (prefix);
				}
				else
				{
					result.Append (">");
				}
				bool inTag = false;
				int column = indent.Length + prefix.Length;
				StringBuilder curWord = new StringBuilder ();
				foreach (char ch in section.Documentation) {
					if (ch == '<')
						inTag = true;
					if (ch == '>')
						inTag = false;

					if (ch =='\n') {
						result.Append (curWord.ToString ());
						curWord.Length = 0;

						result.AppendLine ();
						result.Append (indent);
						result.Append (prefix);
						column = indent.Length + prefix .Length;
					} else if (!inTag && char.IsWhiteSpace (ch)) {
						if (column + curWord.Length > 120) {
							result.Length--; // trunk last char white space.
							result.AppendLine ();
							result.Append (indent);
							result.Append (prefix);
							column = indent.Length + prefix .Length;
						}
						result.Append (curWord.ToString ());
						result.Append (ch);
						column += curWord.Length + 1;
						curWord.Length = 0;
					} else {
						curWord.Append (ch);
					}
				}
				if (section.Name == "summary")
				{
					result.AppendLine(curWord.ToString ());
					result.Append(indent);
					result.Append(prefix);
				}
				else
				{
					result.Append(curWord.ToString ());
				}

				result.Append ("</");
				result.Append (section.Name);
				result.Append (">");
			}
			result.AppendLine ();
			return result.ToString ();
		}
Exemple #7
0
		public abstract void Run (DocGenerator generator, object member);
		public abstract void Run (DocGenerator generator, ISymbol member);
Exemple #9
0
		public abstract void Run (DocGenerator generator);