public void ConstructMenu(GetSmartTagItemsEventArgs ea) { var artifacts = new ApprovalArtifacts(CodeRush.Source.ActiveMethod); ea.Add(new RunTestItem("Test")); if (artifacts.HasReceivedFile()) { var received = new SmartTagItem("Received File"); received.AddItem(new OpenFileItem("View", artifacts.Received)); received.AddItem(new CopyPathItem("Copy File Path", artifacts.Received)); received.AddItem(new OpenInExplorerItem("Show in Explorer", artifacts.Received)); ea.Add(received); } var approved = new SmartTagItem("Approved File"); approved.AddItem(new OpenFileItem("View", artifacts.Approved)); approved.AddItem(new CopyPathItem("Copy File Path", artifacts.Approved)); approved.AddItem(new OpenInExplorerItem("Show in Explorer", artifacts.Approved)); approved.AddItem(new LoadApproveItem("Set Approval", artifacts.Approved)); ea.Add(approved); if (artifacts.HasReceivedFile() && artifacts.HasApprovalFile()) ea.Add(new DiffItem("Diff", artifacts.Received, artifacts.Approved)); if (artifacts.HasReceivedFile()) { ea.Add(new OpenFileItem("View Received", artifacts.Received)); ea.Add(new ApproveItem("Approve", artifacts.Received, artifacts.Approved)); } }