private void osbideCommandBarEvent_Click(object CommandBarControl, ref bool Handled, ref bool CancelDefault) { ErrorListItem listItem = new ErrorListItem(); DTE2 dte = (DTE2)this.GetService(typeof(SDTE)); if (dte != null) { Array selectedItems = (Array)dte.ToolWindows.ErrorList.SelectedItems; if (selectedItems != null) { foreach (ErrorItem item in selectedItems) { listItem = ErrorListItem.FromErrorItem(item); } } } if (string.IsNullOrEmpty(listItem.CriticalErrorName) == false) { string url = string.Format("{0}?errorTypeStr={1}&component={2}", StringConstants.ActivityFeedUrl, listItem.CriticalErrorName, OsbideVsComponent.FeedOverview); OpenActivityFeedWindow(url); } else { MessageBox.Show("OSBIDE only supports search for errors"); } }
/// <summary> /// Function to append error in errors dictionary. /// </summary> /// <param name="errorsDictionary">Errors dictionary</param> /// <param name="error">Error information</param> private static void Append(Dictionary<string, string> errorsDictionary, ErrorListItem error) { if (!errorsDictionary.ContainsKey(error.FieldName)) { errorsDictionary.Add(error.FieldName, error.Message); } }
public virtual void ErrorsDuringMethodBodyEditing() { VisualStudio.Editor.SetText( @" Namespace N Class C Private F As Integer Sub S() ' Comment End Sub End Class End Namespace " ); VisualStudio.Editor.PlaceCaret(" Comment", charsOffset: -2); VisualStudio.SendKeys.Send("F = 0"); VisualStudio.ErrorList.ShowErrorList(); var expectedContents = new ErrorListItem[] { }; var actualContents = VisualStudio.ErrorList.GetErrorListContents(); AssertEx.EqualOrDiff( string.Join <ErrorListItem>(Environment.NewLine, expectedContents), string.Join <ErrorListItem>(Environment.NewLine, actualContents) ); VisualStudio.Editor.Activate(); VisualStudio.Editor.PlaceCaret("F = 0 ' Comment", charsOffset: -1); VisualStudio.Editor.SendKeys("F"); VisualStudio.ErrorList.ShowErrorList(); expectedContents = new ErrorListItem[] { new ErrorListItem( severity: "Error", description: "'FF' is not declared. It may be inaccessible due to its protection level.", project: "TestProj", fileName: "Class1.vb", line: 6, column: 13 ) }; actualContents = VisualStudio.ErrorList.GetErrorListContents(); AssertEx.EqualOrDiff( string.Join <ErrorListItem>(Environment.NewLine, expectedContents), string.Join <ErrorListItem>(Environment.NewLine, actualContents) ); VisualStudio.Editor.Activate(); VisualStudio.Editor.PlaceCaret("FF = 0 ' Comment", charsOffset: -1); VisualStudio.Editor.SendKeys(VirtualKey.Delete); VisualStudio.ErrorList.ShowErrorList(); expectedContents = new ErrorListItem[] { }; actualContents = VisualStudio.ErrorList.GetErrorListContents(); AssertEx.EqualOrDiff( string.Join <ErrorListItem>(Environment.NewLine, expectedContents), string.Join <ErrorListItem>(Environment.NewLine, actualContents) ); }
public virtual void ErrorsAfterClosingFile() { VisualStudio.Editor.SetText( @" class Program2 { static void Main(string[] args) { int aa = 7; int a = aa; } } " ); VisualStudio.ErrorList.ShowErrorList(); var expectedContents = new ErrorListItem[] { }; var actualContents = VisualStudio.ErrorList.GetErrorListContents(); AssertEx.EqualOrDiff( string.Join <ErrorListItem>(Environment.NewLine, expectedContents), string.Join <ErrorListItem>(Environment.NewLine, actualContents) ); VisualStudio.Editor.Activate(); VisualStudio.Editor.PlaceCaret("a = aa", charsOffset: -1); VisualStudio.Editor.SendKeys("a"); VisualStudio.ErrorList.ShowErrorList(); expectedContents = new[] { new ErrorListItem( severity: "Error", description: "A local variable or function named 'aa' is already defined in this scope", project: "TestProj", fileName: "Class1.cs", line: 7, column: 13 ) }; actualContents = VisualStudio.ErrorList.GetErrorListContents(); AssertEx.EqualOrDiff( string.Join <ErrorListItem>(Environment.NewLine, expectedContents), string.Join <ErrorListItem>(Environment.NewLine, actualContents) ); // Close the current document and verify diagnostics for closed document are not removed from error list. VisualStudio.SolutionExplorer.SaveAll(); VisualStudio.Editor.SendExplicitFocus(); VisualStudio.Editor.SendKeys(new KeyPress(VirtualKey.F4, ShiftState.Ctrl)); VisualStudio.ErrorList.ShowErrorList(); actualContents = VisualStudio.ErrorList.GetErrorListContents(); AssertEx.EqualOrDiff( string.Join <ErrorListItem>(Environment.NewLine, expectedContents), string.Join <ErrorListItem>(Environment.NewLine, actualContents) ); }
public virtual void ErrorsDuringMethodBodyEditing() { VisualStudio.Editor.SetText( @" class Program2 { static void Main(string[] args) { int aa = 7; int a = aa; } } " ); VisualStudio.ErrorList.ShowErrorList(); var expectedContents = new ErrorListItem[] { }; var actualContents = VisualStudio.ErrorList.GetErrorListContents(); AssertEx.EqualOrDiff( string.Join <ErrorListItem>(Environment.NewLine, expectedContents), string.Join <ErrorListItem>(Environment.NewLine, actualContents) ); VisualStudio.Editor.Activate(); VisualStudio.Editor.PlaceCaret("a = aa", charsOffset: -1); VisualStudio.Editor.SendKeys("a"); VisualStudio.ErrorList.ShowErrorList(); expectedContents = new[] { new ErrorListItem( severity: "Error", description: "A local variable or function named 'aa' is already defined in this scope", project: "TestProj", fileName: "Class1.cs", line: 7, column: 13 ) }; actualContents = VisualStudio.ErrorList.GetErrorListContents(); AssertEx.EqualOrDiff( string.Join <ErrorListItem>(Environment.NewLine, expectedContents), string.Join <ErrorListItem>(Environment.NewLine, actualContents) ); VisualStudio.Editor.Activate(); VisualStudio.Editor.PlaceCaret("aa = aa", charsOffset: -1); VisualStudio.Editor.SendKeys(VirtualKey.Delete); VisualStudio.ErrorList.ShowErrorList(); expectedContents = new ErrorListItem[] { }; actualContents = VisualStudio.ErrorList.GetErrorListContents(); AssertEx.EqualOrDiff( string.Join <ErrorListItem>(Environment.NewLine, expectedContents), string.Join <ErrorListItem>(Environment.NewLine, actualContents) ); }
private Guid LogMessage(ErrorViewModel viewModel) { var log = new ErrorListItem( itemType: Sdk.Enums.ErrorListItemType.Message, number: 1, description: "New message log " + DateTime.Now.Ticks, path: "Message Path", line: 3, column: 1); viewModel.LogError(log); return(log.Id); }
private Guid LogWarning(ErrorViewModel viewModel) { var log = new ErrorListItem( itemType: Sdk.Enums.ErrorListItemType.Warning, number: 1, description: "New warning log " + DateTime.Now.Ticks, path: "Warning Path", line: 2, column: 1); viewModel.LogError(log); return(log.Id); }
private void OnErrorItemQuery(object sender, ErrorListItem e) { var shell = IoC.Get <IShell>(); var editor = shell.Documents.OfType <ICodeEditor>() .FirstOrDefault(p => string.Equals(p.FilePath, e.Path, StringComparison.OrdinalIgnoreCase)); if (editor == null) { return; } shell.OpenDocument(editor); HideCommand?.Execute(this); editor.Goto(e.Line ?? 0, Math.Max(0, e.Column ?? 0)); }
private void InitializeBookmark(TextMarkerService textMarkerService, int lineNumber, int column, int startOffset, int length, string message, string fileName) { // Create a text marker OffsetInLine = column; TextMarker = textMarkerService.TryCreate(startOffset, length); if (TextMarker != null) { switch (BookmarkType) { case BookmarkType.AnalyzerInfo: TextMarker.MarkerColor = Colors.AliceBlue; break; case BookmarkType.AnalyzerWarning: TextMarker.MarkerColor = Colors.DarkGoldenrod; break; } } var errorListItemType = default(ErrorListItemType); switch (BookmarkType) { case BookmarkType.AnalyzerInfo: errorListItemType = ErrorListItemType.Message; break; case BookmarkType.AnalyzerWarning: errorListItemType = ErrorListItemType.Warning; break; } // Create an error list item Execute.OnUIThread(() => { lock (_lock) { ErrorListItem = new ErrorListItem(errorListItemType, _errorList.Items.Count, message, fileName, lineNumber, column); _errorList.Items.Add(ErrorListItem); } }); }
public virtual void ErrorsDuringMethodBodyEditing() { VisualStudio.Editor.SetText(@" using System; class Program2 { static void Main(string[] args) { Func<int, int> a = aa => 7; } } "); VisualStudio.ErrorList.ShowErrorList(); var expectedContents = new ErrorListItem[] { }; var actualContents = VisualStudio.ErrorList.GetErrorListContents(); Assert.Equal(expectedContents, actualContents); VisualStudio.Editor.Activate(); VisualStudio.Editor.PlaceCaret("a = aa", charsOffset: -1); VisualStudio.Editor.SendKeys("a"); VisualStudio.ErrorList.ShowErrorList(); expectedContents = new[] { new ErrorListItem( severity: "Error", description: "A local or parameter named 'aa' cannot be declared in this scope because that name is used in an enclosing local scope to define a local or parameter", project: "TestProj.csproj", fileName: "Class1.cs", line: 8, column: 29) }; actualContents = VisualStudio.ErrorList.GetErrorListContents(); Assert.Equal(expectedContents, actualContents); VisualStudio.Editor.Activate(); VisualStudio.Editor.PlaceCaret("aa = aa", charsOffset: -1); VisualStudio.Editor.SendKeys(VirtualKey.Delete); VisualStudio.ErrorList.ShowErrorList(); expectedContents = new ErrorListItem[] { }; actualContents = VisualStudio.ErrorList.GetErrorListContents(); Assert.Equal(expectedContents, actualContents); }
public static ErrorListItem ErrorItemToErrorListItem(ErrorItem item) { var eli = new ErrorListItem(); //the original comment from AC //Sometimes ErrorItem references are invalid. Not sure why. try { eli.Project = item.Project; eli.Column = item.Column; eli.Line = item.Line; eli.File = item.FileName; eli.Description = item.Description; } catch (Exception) { // ignored } return(eli); }
public override void OnBuildDone(vsBuildScope Scope, vsBuildAction Action) { base.OnBuildDone(Scope, Action); //this might take a while, so throw it in its own thread //System.Threading.Tasks.Task.Factory.StartNew( // () => // { BuildEvent build = new BuildEvent(); List <string> filesWithErrors = new List <string>(); build.SolutionName = dte.Solution.FullName; build.EventDate = DateTime.UtcNow; //start at 1 when iterating through Error List for (int i = 1; i <= dte.ToolWindows.ErrorList.ErrorItems.Count; i++) { ErrorItem item = dte.ToolWindows.ErrorList.ErrorItems.Item(i); BuildEventErrorListItem beli = new BuildEventErrorListItem(); beli.BuildEvent = build; beli.ErrorListItem = ErrorListItem.FromErrorItem(item); //only worry about critical errors if (beli.ErrorListItem.CriticalErrorName.Length > 0) { build.ErrorItems.Add(beli); //add the file with the error to our list of items that have errors if (filesWithErrors.Contains(beli.ErrorListItem.File.ToLower()) == false) { filesWithErrors.Add(beli.ErrorListItem.File.ToLower()); } } } //add in breakpoint information for (int i = 1; i <= dte.Debugger.Breakpoints.Count; i++) { BreakPoint bp = new BreakPoint(dte.Debugger.Breakpoints.Item(i)); BuildEventBreakPoint bebp = new BuildEventBreakPoint(); bebp.BreakPoint = bp; bebp.BuildEvent = build; build.Breakpoints.Add(bebp); } //get all files in the solution List <CodeDocument> files = build.GetSolutionFiles(dte.Solution); //add in associated documents foreach (CodeDocument file in files) { BuildDocument bd = new BuildDocument(); bd.Build = build; bd.Document = file; build.Documents.Add(bd); } byte[] data = EventFactory.ToZippedBinary(build); //let others know that we have created a new event NotifyEventCreated(this, new EventCreatedArgs(build)); //} //); }
public void LogError(ErrorListItem error) { Items.Add(error); }