[Mono-bugs] [Bug 549472] New: CodeDOM produces unwanted newlines in C#output
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Fri Oct 23 03:29:03 EDT 2009
http://bugzilla.novell.com/show_bug.cgi?id=549472
Summary: CodeDOM produces unwanted newlines in C#output
Classification: Mono
Product: Mono: Class Libraries
Version: SVN
Platform: Other
OS/Version: Other
Status: NEW
Severity: Normal
Priority: P5 - None
Component: System
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: mkrueger at novell.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Currently the C# codedom output can produce following:
namespace Test
{
public class NewClass
{
public NewClass ()
{
}
}
}
That is because too many new lines are generated especially when
'BlankLinesBetweenMembers' is set.
Solution:
Don't output a blank line for the first member.
Ex.:
protected new void GenerateTypes (CodeNamespace e)
{
bool isFirst = true;
foreach (CodeTypeDeclaration type in e.Types) {
if (isFirst) {
isFirst = false;
} else {
if (Options.BlankLinesBetweenMembers)
Output.WriteLine ();
}
GenerateType (type);
}
}
Some things that we changed for mono develop:
Method GenerateTypes (as above)
Method GenerateType (almost the same as above but for the members instead of
the types - but the same pattern)
In GenerateNamespaceStart the OutputStartBrace doesn't need a new line after
the start brace (thats why we have two new lines after the namespace). Our
solution:
Break down "OutputStartBrace" into two methods:
-----------------------------------
private void OutputStartBrace ()
{
OutputStartBrace (true);
}
private void OutputStartBrace (bool appendNewLine)
{
if (Options.BracingStyle == "C") {
Output.WriteLine ("");
Output.Write ("{");
} else {
Output.Write (" {");
}
if (appendNewLine)
Output.WriteLine ();
}
----------------------------------
And use 'OutputStartBrace (false);' in the GenerateNamespaceStart method.
This bug in conjunction with 'Bug 540051 - Bug in
CSharpCodeGenerator.cs/PrivateImplementationType output' is a real show stopper
for monodevelop to use the CodeDOM output from mono.
--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the mono-bugs
mailing list