Пример #1
0
			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);
			}
Пример #2
0
 void ReportError(BuildNode source, BuildError error)
 {
     if (!error.IsWarning)
     {
         source.hasErrors = true;
     }
     results.Add(error);
     ReportMessage(source, error.ToString());
     if (combinedBuildFeedbackSink != null)
     {
         combinedBuildFeedbackSink.ReportError(error);
     }
 }
Пример #3
0
		void ReportError(BuildNode source, BuildError error)
		{
			if (!error.IsWarning)
				source.hasErrors = true;
			results.Add(error);
			ReportMessage(source, error.ToString());
			if (combinedBuildFeedbackSink != null) {
				combinedBuildFeedbackSink.ReportError(error);
			}
		}