/// <summary> /// Adds markers for each XPathNodeMatch. /// </summary> public static void AddMarkers(MarkerStrategy markerStrategy, XPathNodeMatch[] nodes) { foreach (XPathNodeMatch node in nodes) { AddMarker(markerStrategy, node); } }
/// <summary> /// Current instruction frames /// </summary> public void RefreshDebugHighlightings() { foreach (var marker in MarkerStrategy.TextMarkers.ToArray()) { if (marker is CoreManager.DebugManagement.DebugStackFrameMarker) { marker.Delete(); } } if (!CoreManager.DebugManagement.IsDebugging) { return; } var bps = CoreManager.DebugManagement.Engine.CallStack; if (bps != null) { foreach (var stack in bps) { string fn; uint ln; if (CoreManager.DebugManagement.Engine.Symbols.GetLineByOffset(stack.InstructionOffset, out fn, out ln)) { if (AbsoluteFilePath.EndsWith(fn) && ln < Editor.Document.LineCount) { var m = new CoreManager.DebugManagement.DebugStackFrameMarker(MarkerStrategy, stack, Editor.Document.GetOffset((int)ln, 0)); MarkerStrategy.Add(m); m.Redraw(); } } } } }
public ResultMessage TakeGeo([FromBody] GeoMessage message) { Strategy strategy; switch (message.Type) { case MessageType.Marker: { strategy = new MarkerStrategy(); break; } case MessageType.Sos: { strategy = new SosStrategy(); break; } default: { strategy = new UnknownTypeStrategy(); break; } } return(strategy.Execute(message)); }
public void AddMarker(MarkerStrategy markerStrategy, CodeCoverageSequencePoint sequencePoint) { if (!IsValidSequencePoint(markerStrategy.Document, sequencePoint)) { return; } if (sequencePoint.EndLine == sequencePoint.Line) { LineSegment lineSegment = markerStrategy.Document.GetLineSegment(sequencePoint.Line - 1); markerStrategy.AddMarker(new CodeCoverageTextMarker(lineSegment.Offset + sequencePoint.Column - 1, sequencePoint)); } else { // Sequence point spread across lines. for (int line = sequencePoint.Line; line <= sequencePoint.EndLine; ++line) { LineSegment lineSegment = markerStrategy.Document.GetLineSegment(line - 1); if (line == sequencePoint.Line) { // First line. markerStrategy.AddMarker(new CodeCoverageTextMarker(lineSegment.Offset + sequencePoint.Column - 1, lineSegment.Length - (sequencePoint.Column - 1), sequencePoint)); } else if (line == sequencePoint.EndLine) { // Last line. markerStrategy.AddMarker(new CodeCoverageTextMarker(lineSegment.Offset, sequencePoint.EndColumn - 1, sequencePoint)); } else { markerStrategy.AddMarker(new CodeCoverageTextMarker(lineSegment.Offset, lineSegment.Length, sequencePoint)); } } } }
/// <summary> /// Adds text markers for the code coverage sequence points. /// </summary> /// <remarks>The sequence points are added to the marker strategy even /// if they are not all for the same document.</remarks> public void AddMarkers(MarkerStrategy markerStrategy, List <CodeCoverageSequencePoint> sequencePoints) { foreach (CodeCoverageSequencePoint sequencePoint in sequencePoints) { AddMarker(markerStrategy, sequencePoint); } }
public void Init() { try { string configFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "NCoverAddIn.Tests"); PropertyService.InitializeService(configFolder, Path.Combine(configFolder, "data"), "NCoverAddIn.Tests"); } catch (Exception) {} IDocument document = MockDocument.Create(); MarkerStrategy markerStrategy = new MarkerStrategy(document); string xml = "<PartCoverReport>\r\n" + "\t<File id=\"1\" url=\"c:\\Projects\\XmlEditor\\Test\\Schema\\SingleElementSchemaTestFixture.cs\"/>\r\n" + "\t<Assembly id=\"1\" name=\"XmlEditor.Tests\" module=\"C:\\Projects\\Test\\XmlEditor.Tests\\bin\\XmlEditor.Tests.DLL\" domain=\"test-domain-XmlEditor.Tests.dll\" domainIdx=\"1\" />\r\n" + "\t<Type name=\"XmlEditor.Tests.Schema.SingleElementSchemaTestFixture\" asmref=\"1\">\r\n" + "\t\t<Method name=\"GetSchema\">\r\n" + "\t\t\t<pt visit=\"1\" fid=\"1\" sl=\"0\" sc=\"3\" el=\"0\" ec=\"4\" />\r\n" + "\t\t\t<pt visit=\"1\" fid=\"1\" sl=\"-1\" sc=\"4\" el=\"9\" ec=\"20\" />\r\n" + "\t\t\t<pt visit=\"1\" fid=\"1\" sl=\"10\" sc=\"3\" el=\"10\" ec=\"4\" />\r\n" + "\t\t</Method>\r\n" + "\t</Type>\r\n" + "</PartCoverReport>"; CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageMethod method = results.Modules[0].Methods[0]; CodeCoverageHighlighter highlighter = new CodeCoverageHighlighter(); highlighter.AddMarkers(markerStrategy, method.SequencePoints); markers = new List <CodeCoverageTextMarker>(); foreach (CodeCoverageTextMarker marker in markerStrategy.TextMarker) { markers.Add(marker); } }
/// <summary> /// Adds a single marker for the XPathNodeMatch. /// </summary> public static void AddMarker(MarkerStrategy markerStrategy, XPathNodeMatch node) { if (node.HasLineInfo() && node.Value.Length > 0) { LineSegment lineSegment = markerStrategy.Document.GetLineSegment(node.LineNumber); markerStrategy.AddMarker(new XPathNodeTextMarker(lineSegment.Offset + node.LinePosition, node)); } }
public void MarkErrors(ICompilable item, bool sourceHeader) { RemoveMarks(); MarkerStrategy markers = editor.Document.MarkerStrategy; string filename = Compiler.SourceFile(item).ToLower(); errors.Rows.Clear(); foreach (CompilerError err in Errors(item, sourceHeader)) { if (filename == err.FileName.ToLower()) { TextMarker marker = ErrMarker(err); if (marker != null) { markers.AddMarker(marker); } // update data grid DataGridViewRow row = new DataGridViewRow(); DataGridViewImageCell img = new DataGridViewImageCell(); if (err.IsWarning) { img.Value = Properties.Resources.warningimg; } else { img.Value = Properties.Resources.errorimg; } img.Tag = item; row.Cells.Add(img); DataGridViewTextBoxCell pos = new DataGridViewTextBoxCell(); pos.Value = err.Line.ToString() + ":" + err.Column.ToString(); row.Cells.Add(pos); DataGridViewTextBoxCell text = new DataGridViewTextBoxCell(); text.Value = CompilerErrors.Message(err); text.Style.WrapMode = DataGridViewTriState.True; text.Tag = err; row.Cells.Add(text); errors.Rows.Add(row); row.Resizable = DataGridViewTriState.False; } } errors.AutoResizeRows(); if (item.CompilerResults.Errors.Count > 0) { ShowErrors(); } editor.Refresh(); }
public void SetUpFixture() { try { string configFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "NCoverAddIn.Tests"); PropertyService.InitializeService(configFolder, Path.Combine(configFolder, "data"), "NCoverAddIn.Tests"); } catch (Exception) {} IDocument document = MockDocument.Create(); string code = "\t\t{\r\n" + "\t\t\tAssert.AreEqual(0, childElementCompletionData.Length, \"\" +\r\n" + "\t\t\t \"Not expecting any child elements.\");\r\n" + "\t\t}\r\n"; document.TextContent = code; MarkerStrategy markerStrategy = new MarkerStrategy(document); string xml = "<PartCoverReport>\r\n" + "\t<file id=\"1\" url=\"c:\\Projects\\XmlEditor\\Test\\Schema\\SingleElementSchemaTestFixture.cs\" />\r\n" + "\t<Assembly id=\"1\" name=\"XmlEditor.Tests\" module=\"C:\\Projects\\Test\\XmlEditor.Tests\\bin\\XmlEditor.Tests.DLL\" domain=\"test-domain-XmlEditor.Tests.dll\" domainIdx=\"1\" />\r\n" + "\t<Type asmref=\"1\" name=\"XmlEditor.Tests.Schema.SingleElementSchemaTestFixture\">\r\n" + "\t\t<Method name=\"NoteElementHasNoChildElements\">\r\n" + "\t\t\t<pt visit=\"1\" fid=\"1\" sl=\"1\" sc=\"3\" el=\"1\" ec=\"4\" />\r\n" + "\t\t\t<pt visit=\"1\" fid=\"1\" sl=\"2\" sc=\"4\" el=\"3\" ec=\"57\" />\r\n" + "\t\t\t<pt visit=\"1\" fid=\"1\" sl=\"4\" sc=\"3\" el=\"4\" ec=\"4\" />\r\n" + "\t\t</Method>\r\n" + "\t</Type>\r\n" + "</PartCoverReport>"; CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageMethod method = results.Modules[0].Methods[0]; CodeCoverageHighlighter highlighter = new CodeCoverageHighlighter(); highlighter.AddMarkers(markerStrategy, method.SequencePoints); foreach (CodeCoverageTextMarker marker in markerStrategy.TextMarker) { if (markerOne == null) { markerOne = marker; } else if (markerTwo == null) { markerTwo = marker; } else if (markerThree == null) { markerThree = marker; } else if (markerFour == null) { markerFour = marker; } } }
static bool ContainsCodeCoverageMarkers(MarkerStrategy markerStrategy) { foreach (TextMarker marker in markerStrategy.TextMarker) { if (marker is CodeCoverageTextMarker) { return(true); } } return(false); }
static bool ContainsNonCodeCoverageMarkers(MarkerStrategy markerStrategy) { int count = 0; foreach (TextMarker marker in markerStrategy.TextMarker) { if (marker is CodeCoverageTextMarker) { return(false); } count++; } return(count > 0); }
public void SetUpFixture() { try { string configFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "NCoverAddIn.Tests"); PropertyService.InitializeService(configFolder, Path.Combine(configFolder, "data"), "NCoverAddIn.Tests"); } catch (Exception) {} document = MockDocument.Create(); string code = "\t\t{\r\n" + "\t\t\tint count = 0;\r\n" + "\t\t}\r\n"; document.TextContent = code; markerStrategy = new MarkerStrategy(document); string xml = "<PartCoverReport>\r\n" + "<File id=\"1\" url=\"c:\\Projects\\Foo\\FooTestFixture.cs\" />\r\n" + "<Assembly id=\"1\" name=\"Foo.Tests\" module=\"C:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\" domain=\"test-domain-Foo.Tests.dll\" domainIdx=\"1\" />\r\n" + "\t<Type asmref=\"1\" name=\"Foo.Tests.FooTestFixture\" flags=\"1232592\">\r\n" + "\t\t<Method name=\"SimpleTest\">\r\n" + "\t\t\t<pt visit=\"1\" sl=\"1\" fid=\"1\" sc=\"3\" el=\"1\" ec=\"4\" document=\"c:\\Projects\\Foo\\Foo1TestFixture.cs\" />\r\n" + "\t\t\t<pt visit=\"1\" sl=\"2\" fid=\"1\" sc=\"4\" el=\"2\" ec=\"18\" document=\"c:\\Projects\\Foo\\Foo1TestFixture.cs\" />\r\n" + "\t\t\t<pt visit=\"0\" sl=\"3\" fid=\"1\" sc=\"3\" el=\"3\" ec=\"4\" document=\"c:\\Projects\\Foo\\Foo1TestFixture.cs\" />\r\n" + "\t\t</Method>\r\n" + "\t</Type>\r\n" + "</PartCoverReport>"; CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageMethod method = results.Modules[0].Methods[0]; CodeCoverageHighlighter highlighter = new CodeCoverageHighlighter(); highlighter.AddMarkers(markerStrategy, method.SequencePoints); foreach (CodeCoverageTextMarker marker in markerStrategy.TextMarker) { if (markerOne == null) { markerOne = marker; } else if (markerTwo == null) { markerTwo = marker; } else if (markerThree == null) { markerThree = marker; } } }
public void SetUpFixture() { try { string configFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "NCoverAddIn.Tests"); PropertyService.InitializeService(configFolder, Path.Combine(configFolder, "data"), "NCoverAddIn.Tests"); } catch (Exception) {} IDocument document = MockDocument.Create(); string code = "\t\t{\r\n" + "\t\t\treturn \"<?xml version=\\\"1.0\\\"?>\\r\\n\" +\r\n" + "\t\t\t\t\"<xs:schema xmlns:xs=\\\"http://www.w3.org/2001/XMLSchema\\\"\\r\\n\" +\r\n" + "\t\t\t\t\"targetNamespace=\\\"http://www.w3schools.com\\\"\\r\\n\" +\r\n" + "\t\t\t\t\"xmlns=\\\"http://www.w3schools.com\\\"\\r\\n\" +\r\n" + "\t\t\t\t\"elementFormDefault=\\\"qualified\\\">\\r\\n\" +\r\n" + "\t\t\t\t\"<xs:element name=\\\"note\\\">\\r\\n\" +\r\n" + "\t\t\t\t\"</xs:element>\\r\\n\" +\r\n" + "\t\t\t\t\"</xs:schema>\";\r\n" + "\t\t}\r\n"; document.TextContent = code; MarkerStrategy markerStrategy = new MarkerStrategy(document); string xml = "<PartCoverReport>\r\n" + "\t<File id=\"1\" url=\"c:\\Projects\\XmlEditor\\Test\\Schema\\SingleElementSchemaTestFixture.cs\" />\r\n" + "\t<Assembly id=\"1\" name=\"XmlEditor.Tests\" module=\"C:\\Projects\\Test\\XmlEditor.Tests\\bin\\XmlEditor.Tests.DLL\" domain=\"test-domain-XmlEditor.Tests.dll\" domainIdx=\"1\" />\r\n" + "\t<Type asmref=\"XmlEditor.Tests\" name=\"XmlEditor.Tests.Schema.SingleElementSchemaTestFixture\" flags=\"1232592\">\r\n" + "\t\t<Method name=\"GetSchema\">\r\n" + "\t\t\t<pt visit=\"1\" fid=\"1\" sl=\"1\" sc=\"3\" el=\"1\" ec=\"4\" />\r\n" + "\t\t\t<pt visit=\"1\" fid=\"1\" sl=\"2\" sc=\"4\" el=\"9\" ec=\"20\" />\r\n" + "\t\t\t<pt visit=\"1\" fid=\"1\" sl=\"10\" sc=\"3\" el=\"10\" ec=\"4\" />\r\n" + "\t\t</Method>\r\n" + "\t</Type>\r\n" + "</PartCoverReport>"; CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageMethod method = results.Modules[0].Methods[0]; CodeCoverageHighlighter highlighter = new CodeCoverageHighlighter(); highlighter.AddMarkers(markerStrategy, method.SequencePoints); markers = new List <CodeCoverageTextMarker>(); foreach (CodeCoverageTextMarker marker in markerStrategy.TextMarker) { markers.Add(marker); } }
public void OneNodeMarked() { string xml = "<root><foo/></root>"; XPathNodeMatch[] nodes = XmlView.SelectNodes(xml, "//root"); IDocument doc = MockDocument.Create(); doc.TextContent = xml; MarkerStrategy markerStrategy = new MarkerStrategy(doc); XPathNodeTextMarker.AddMarkers(markerStrategy, nodes); List <TextMarker> markers = new List <TextMarker>(); foreach (TextMarker marker in markerStrategy.TextMarker) { markers.Add(marker); } // Remove markers. XPathNodeTextMarker.RemoveMarkers(markerStrategy); List <TextMarker> markersAfterRemove = new List <TextMarker>(); foreach (TextMarker markerAfterRemove in markerStrategy.TextMarker) { markers.Add(markerAfterRemove); } XPathNodeTextMarker xpathNodeTextMarker = (XPathNodeTextMarker)markers[0]; Assert.AreEqual(1, markers.Count); Assert.AreEqual(1, xpathNodeTextMarker.Offset); Assert.AreEqual(4, xpathNodeTextMarker.Length); Assert.AreEqual(TextMarkerType.SolidBlock, xpathNodeTextMarker.TextMarkerType); Assert.AreEqual(0, markersAfterRemove.Count); Assert.AreEqual(XPathNodeTextMarker.MarkerBackColor, xpathNodeTextMarker.Color); }
void RunXPathQuery() { XmlView view = XmlView.ActiveXmlView; if (view == null) { return; } try { MarkerStrategy markerStrategy = view.TextEditorControl.Document.MarkerStrategy; fileName = view.PrimaryFileName; // Clear previous XPath results. ClearResults(); XPathNodeTextMarker.RemoveMarkers(markerStrategy); // Run XPath query. XPathNodeMatch[] nodes = view.SelectNodes(xPathComboBox.Text, GetNamespaces()); if (nodes.Length > 0) { AddXPathResults(nodes); XPathNodeTextMarker.AddMarkers(markerStrategy, nodes); } else { AddNoXPathResult(); } AddXPathToHistory(); } catch (XPathException xpathEx) { AddErrorResult(xpathEx); } catch (XmlException xmlEx) { AddErrorResult(xmlEx); } finally { BringResultsTabToFront(); view.TextEditorControl.Refresh(); } }
public void RefreshErrorHighlightings() { // Clear old markers foreach (var marker in MarkerStrategy.TextMarkers.ToArray()) { if (marker is ErrorMarker) { marker.Delete(); } } foreach (var err in CoreManager.ErrorManagement.GetErrorsForFile(AbsoluteFilePath)) { var m = ErrorMarker.Create(this, err); if (m != null) { MarkerStrategy.Add(m); m.Redraw(); } } }
public void NamespaceQuery() { string xml = "<?xml version='1.0'?>\r\n" + "<Xml1></Xml1>"; XPathNodeMatch[] nodes = XmlView.SelectNodes(xml, "//namespace::*"); IDocument doc = MockDocument.Create(); doc.TextContent = xml; MarkerStrategy markerStrategy = new MarkerStrategy(doc); XPathNodeTextMarker.AddMarkers(markerStrategy, nodes); List <TextMarker> markers = new List <TextMarker>(); foreach (TextMarker marker in markerStrategy.TextMarker) { markers.Add(marker); } Assert.AreEqual(0, markers.Count); Assert.AreEqual(1, nodes.Length); }
public void EmptyCommentNode() { string xml = "<!----><root/>"; XPathNodeMatch[] nodes = XmlView.SelectNodes(xml, "//comment()"); IDocument doc = MockDocument.Create(); doc.TextContent = xml; MarkerStrategy markerStrategy = new MarkerStrategy(doc); XPathNodeTextMarker.AddMarkers(markerStrategy, nodes); List <TextMarker> markers = new List <TextMarker>(); foreach (TextMarker marker in markerStrategy.TextMarker) { markers.Add(marker); } Assert.AreEqual(0, markers.Count); Assert.AreEqual(1, nodes.Length); }
public void RefreshBreakpointHighlightings() { // Clear old markers foreach (var marker in MarkerStrategy.TextMarkers.ToArray()) { if (marker is BreakpointMarker) { marker.Delete(); } } var bps = CoreManager.BreakpointManagement.GetBreakpointsAt(AbsoluteFilePath); if (bps != null) { foreach (var bpw in bps) { var m = new BreakpointMarker(this, bpw); MarkerStrategy.Add(m); m.Redraw(); } } }
/// <summary> /// Removes all CodeCoverageMarkers from the marker strategy. /// </summary> public void RemoveMarkers(MarkerStrategy markerStrategy) { markerStrategy.RemoveAll(IsCodeCoverageTextMarkerMatch); }
/// <summary> /// Removes all the XPathNodeMarkers from the marker strategy. /// </summary> public static void RemoveMarkers(MarkerStrategy markerStrategy) { markerStrategy.RemoveAll(IsXPathNodeTextMarkerMatch); }