diff options
Diffstat (limited to 'main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Parser/T4Parser.cs')
-rw-r--r-- | main/src/addins/TextTemplating/MonoDevelop.TextTemplating/Parser/T4Parser.cs | 15 |
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); } } } |