diff options
author | Mike Krüger <mkrueger@novell.com> | 2010-01-11 17:42:41 +0300 |
---|---|---|
committer | Mike Krüger <mkrueger@novell.com> | 2010-01-11 17:42:41 +0300 |
commit | 6580c85490fac94ca9ece6f30ae2e96ee6cfcbf1 (patch) | |
tree | 154840eca74e8967c28c1fd4e03862a14d8fbd0d /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates | |
parent | 64ec3cb46e1edafa6eb36a37c44bfc39a8dcbb83 (diff) |
* MonoDevelop.Ide.StandardHeader/StandardHeaderService.cs:
* MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs:
Templates now take care of line ending conventions.
svn path=/trunk/monodevelop/; revision=149306
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs index 52c4105e4d..afacce1e6f 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs @@ -39,6 +39,7 @@ using MonoDevelop.Projects.Text; using MonoDevelop.Ide.Gui; using MonoDevelop.Ide.StandardHeader; using System.Text; +using MonoDevelop.Ide.Gui.Content; namespace MonoDevelop.Ide.Templates { @@ -232,28 +233,40 @@ namespace MonoDevelop.Ide.Templates // project and language parameters are optional public virtual Stream CreateFileContent (SolutionItem policyParent, Project project, string language, string fileName) { - Dictionary<string,string> tags = new Dictionary<string,string> (); + Dictionary<string, string> tags = new Dictionary<string, string> (); ModifyTags (policyParent, project, language, null, fileName, ref tags); string content = CreateContent (project, tags, language); content = StringParserService.Parse (content, tags); string mime = DesktopService.GetMimeTypeForUri (fileName); IFormatter formatter = !String.IsNullOrEmpty (mime) ? TextFileService.GetFormatter (mime) : null; + if (formatter != null) content = formatter.FormatText (policyParent, mime, content); + IPrettyPrinter prettyPrinter = !String.IsNullOrEmpty (mime) ? TextFileService.GetPrettyPrinter (mime) : null; if (prettyPrinter != null) - content = prettyPrinter.FormatText (policyParent, mime, content); + content = prettyPrinter.FormatText (policyParent, mime, content); MemoryStream ms = new MemoryStream (); byte[] data; if (AddStandardHeader) { - string header = StandardHeaderService.GetHeader (policyParent, language, fileName, true); + string header = StandardHeaderService.GetHeader (policyParent, language, fileName, true); data = System.Text.Encoding.UTF8.GetBytes (header); ms.Write (data, 0, data.Length); } - data = System.Text.Encoding.UTF8.GetBytes (content); - ms.Write (data, 0, data.Length); + Mono.TextEditor.Document doc = new Mono.TextEditor.Document (); + doc.Text = content; + + TextStylePolicy textPolicy = policyParent != null ? policyParent.Policies.Get<TextStylePolicy> ("text/plain") : MonoDevelop.Projects.Policies.PolicyService.GetDefaultPolicy<TextStylePolicy> ("text/plain"); + string eolMarker = TextStylePolicy.GetEolMarker (textPolicy.EolMarker); + byte[] eolMarkerBytes = System.Text.Encoding.UTF8.GetBytes (eolMarker); + foreach (Mono.TextEditor.LineSegment line in doc.Lines) { + data = System.Text.Encoding.UTF8.GetBytes (doc.GetTextAt (line.Offset, line.EditableLength)); + ms.Write (data, 0, data.Length); + ms.Write (eolMarkerBytes, 0, eolMarkerBytes.Length); + } + ms.Position = 0; return ms; } |