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:
Diffstat (limited to 'main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Parser/T4Parser.cs')
-rw-r--r--main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Parser/T4Parser.cs15
1 files changed, 9 insertions, 6 deletions
diff --git a/main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Parser/T4Parser.cs b/main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Parser/T4Parser.cs
index a18ebdbc6a..d348e6340e 100644
--- a/main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Parser/T4Parser.cs
+++ b/main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Parser/T4Parser.cs
@@ -28,32 +28,35 @@ using System;
using System.IO;
using Mono.TextTemplating;
using MonoDevelop.Ide.TypeSystem;
-using ICSharpCode.NRefactory.TypeSystem;
using MonoDevelop.Projects;
using System.Collections.Generic;
+using MonoDevelop.Ide.Editor;
+using MonoDevelop.Core.Text;
namespace MonoDevelop.TextTemplating.Parser
{
public class T4Parser : TypeSystemParser
{
- public override ParsedDocument Parse (bool storeAst, string fileName, TextReader content, Project project = null)
+ public override System.Threading.Tasks.Task<ParsedDocument> Parse (ParseOptions parseOptions, System.Threading.CancellationToken cancellationToken)
{
+ var fileName = parseOptions.FileName;
ParsedTemplate template = new ParsedTemplate (fileName);
+ var readOnlyDoc = TextEditorFactory.CreateNewReadonlyDocument (parseOptions.Content, fileName);
+
try {
- var tk = new Tokeniser (fileName, content.ReadToEnd ());
+ var tk = new Tokeniser (fileName, readOnlyDoc.Text);
template.ParseWithoutIncludes (tk);
} catch (ParserException ex) {
template.LogError (ex.Message, ex.Location);
}
-
var errors = new List<Error> ();
foreach (System.CodeDom.Compiler.CompilerError err in template.Errors) {
- errors.Add (new Error (err.IsWarning ? ErrorType.Warning : ErrorType.Error, err.ErrorText, err.Line, err.Column));
+ errors.Add (new Error (err.IsWarning ? ErrorType.Warning : ErrorType.Error, err.ErrorText, new DocumentLocation (err.Line, err.Column)));
}
var doc = new T4ParsedDocument (fileName, template.RawSegments, errors);
doc.Flags |= ParsedDocumentFlags.NonSerializable;
- return doc;
+ return System.Threading.Tasks.Task.FromResult((ParsedDocument)doc);
}
}
}