//methods private static Exception GetResultException(string _msg) { BuildError _be = BuildError.ExpandedNodeIdInvalidSyntax; Exception _ex = new ServiceResultException(TraceMessage.BuildErrorTraceMessage(_be, _msg), _be.ToString() + _msg); return(_ex); }
public void HandleError(BuildError error) { LoggingService.Debug("FxCopLogger got " + error.ToString()); string[] moreData = (error.Subcategory ?? "").Split('|'); string checkId = error.ErrorCode; error.ErrorCode = (error.ErrorCode != null) ? error.ErrorCode.Split(':')[0] : null; if (FileUtility.IsValidPath(error.FileName) && Path.GetFileName(error.FileName) == "SharpDevelop.CodeAnalysis.targets") { error.FileName = null; } IProject project = ProjectService.GetProject(engineWorker.ProjectFileName); if (project != null) { IProjectContent pc = ParserService.GetProjectContent(project); if (pc != null) { if (error.FileName != null) { int pos = error.FileName.IndexOf("positionof#", StringComparison.Ordinal); if (pos >= 0) { string memberName = error.FileName.Substring(pos + 11); FilePosition filePos = GetPosition(pc, memberName); if (filePos.IsEmpty == false && filePos.CompilationUnit != null) { error.FileName = filePos.FileName ?? ""; error.Line = filePos.Line; error.Column = filePos.Column; } else { error.FileName = null; } } } if (moreData.Length > 1 && !string.IsNullOrEmpty(moreData[0])) { error.Tag = new FxCopTaskTag { ProjectContent = pc, TypeName = moreData[0], MemberName = moreData[1], Category = error.HelpKeyword, CheckID = checkId }; } else { error.Tag = new FxCopTaskTag { ProjectContent = pc, Category = error.HelpKeyword, CheckID = checkId }; } error.ContextMenuAddInTreeEntry = "/SharpDevelop/Pads/ErrorList/CodeAnalysisTaskContextMenu"; if (moreData.Length > 2) { (error.Tag as FxCopTaskTag).MessageID = moreData[2]; } } } nextChainElement.HandleError(error); }