Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@novell.com>2010-01-11 17:42:41 +0300
committerMike Krüger <mkrueger@novell.com>2010-01-11 17:42:41 +0300
commit6580c85490fac94ca9ece6f30ae2e96ee6cfcbf1 (patch)
tree154840eca74e8967c28c1fd4e03862a14d8fbd0d /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates
parent64ec3cb46e1edafa6eb36a37c44bfc39a8dcbb83 (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.cs23
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;
}