private void TryResolveMissingInfo(CompilerLogItem item) { try { if (item.Line == 0 && item.Column == 0) { if (item.Entity != null && !item.Entity.Region.IsEmpty) { item.Line = item.Entity.Region.BeginLine; item.Column = item.Entity.Region.BeginColumn; } else if (item.Node != null && !item.Node.StartLocation.IsEmpty) { item.Line = item.Node.StartLocation.Line; item.Column = item.Node.StartLocation.Column; } } if (item.ProjectRelativeFilename == null && item.AbsoluteFilename == null) { if (item.Node != null) item.ProjectRelativeFilename = item.Node.GetFileName(); else if (item.Entity != null && !item.Entity.Region.IsEmpty) item.ProjectRelativeFilename = item.Entity.Region.FileName; if (item.ProjectRelativeFilename.IsNotNullOrEmpty()) item.AbsoluteFilename = Path.GetFullPath(item.ProjectRelativeFilename); } } catch { } }
protected override void ParseCsFiles() { base.ParseCsFiles(); var errors = NFiles.SelectMany(t => t.SyntaxTree.Errors).ToList(); if (errors.Count == 0) { return; } foreach (var error in errors) { var item = new CompilerLogItem { ProjectRelativeFilename = error.Region.FileName, Line = error.Region.BeginLine, Column = error.Region.BeginColumn, Text = error.Message, Type = CompilerLogItemType.Error, }; if (error.ErrorType == ErrorType.Warning) { item.Type = CompilerLogItemType.Warning; } Compiler.Log.Log(item); } }
protected override void ParseCsFiles() { base.ParseCsFiles(); if (!CSharpParser.HasErrors) return; foreach (var error in CSharpParser.ErrorsAndWarnings) { var item = new CompilerLogItem { ProjectRelativeFilename = error.Region.FileName, Line = error.Region.BeginLine, Column = error.Region.BeginColumn, Text = error.Message, Type = CompilerLogItemType.Error, }; if (error.ErrorType == ErrorType.Warning) item.Type = CompilerLogItemType.Warning; Compiler.Log.Log(item); } }
protected override void ParseCsFiles() { base.ParseCsFiles(); var errors = NFiles.SelectMany(t => t.SyntaxTree.Errors).ToList(); if (errors.Count==0) return; foreach (var error in errors) { var item = new CompilerLogItem { ProjectRelativeFilename = error.Region.FileName, Line = error.Region.BeginLine, Column = error.Region.BeginColumn, Text = error.Message, Type = CompilerLogItemType.Error, }; if (error.ErrorType == ErrorType.Warning) item.Type = CompilerLogItemType.Warning; Compiler.Log.Log(item); } }
public void Log(CompilerLogItem item) { if (item == null) return; TryResolveMissingInfo(item); Items.Enqueue(item); var sb = new StringBuilder(); if (item.ProjectRelativeFilename.IsNotNullOrEmpty()) sb.AppendFormat("{0}", item.ProjectRelativeFilename); if (item.Line > 0 && item.Column > 0) sb.AppendFormat("({0},{1})", item.Line, item.Column); if (item.ProjectRelativeFilename.IsNotNullOrEmpty() || (item.Line > 0 && item.Column > 0)) sb.Append(": "); sb.AppendFormat("{0} {1}{2}: {3}", item.Type.ToString().ToLower(), "SK", item.Code.ToString("0000"), item.Text); if (item.AbsoluteFilename.IsNotNullOrEmpty()) sb.AppendFormat(" [{0}]", item.AbsoluteFilename); var ss = sb.ToString(); Console.WriteLine(ss); if (CompilerConfiguration.Current.EnableLogging) Debug(ss); //"Compilation\JsCompiler.cs(175,26): warning CS0169: The field 'SharpKit.JavaScript.Compilation.JsCompiler.__LastException' is never used [C:\Projects\SharpKit\googlecode\trunk\SharpKit.JsClr-4.1.0\SharpKit.JsClr-4.1.0.csproj] }
private void TryResolveMissingInfo(CompilerLogItem item) { try { if (item.Line == 0 && item.Column == 0) { if (item.Entity != null && !item.Entity.Region.IsEmpty) { item.Line = item.Entity.Region.BeginLine; item.Column = item.Entity.Region.BeginColumn; } else if (item.Node != null && !item.Node.StartLocation.IsEmpty) { item.Line = item.Node.StartLocation.Line; item.Column = item.Node.StartLocation.Column; } } if (item.ProjectRelativeFilename == null && item.AbsoluteFilename == null) { if (item.Node != null) { item.ProjectRelativeFilename = item.Node.GetFileName(); } else if (item.Entity != null && !item.Entity.Region.IsEmpty) { item.ProjectRelativeFilename = item.Entity.Region.FileName; } if (item.ProjectRelativeFilename.IsNotNullOrEmpty()) { item.AbsoluteFilename = Path.GetFullPath(item.ProjectRelativeFilename); } } } catch { } }
public void Log(CompilerLogItem item) { if (item == null) { return; } TryResolveMissingInfo(item); Items.Enqueue(item); var sb = new StringBuilder(); if (item.ProjectRelativeFilename.IsNotNullOrEmpty()) { sb.AppendFormat("{0}", item.ProjectRelativeFilename); } if (item.Line > 0 && item.Column > 0) { sb.AppendFormat("({0},{1})", item.Line, item.Column); } if (item.ProjectRelativeFilename.IsNotNullOrEmpty() || (item.Line > 0 && item.Column > 0)) { sb.Append(": "); } sb.AppendFormat("{0} {1}{2}: {3}", item.Type.ToString().ToLower(), "SK", item.Code.ToString("0000"), item.Text); if (item.AbsoluteFilename.IsNotNullOrEmpty()) { sb.AppendFormat(" [{0}]", item.AbsoluteFilename); } var ss = sb.ToString(); Console.WriteLine(ss); if (CompilerConfiguration.Current.EnableLogging) { Debug(ss); } //"Compilation\JsCompiler.cs(175,26): warning CS0169: The field 'SharpKit.JavaScript.Compilation.JsCompiler.__LastException' is never used [C:\Projects\SharpKit\googlecode\trunk\SharpKit.JsClr-4.1.0\SharpKit.JsClr-4.1.0.csproj] }