void ShowReferences(List <MonoDevelop.Projects.CodeGeneration.MemberReference> references) { RemoveMarkers(false); HashSet <int> lineNumbers = new HashSet <int> (); if (references != null) { bool alphaBlend = false; foreach (var r in references) { UsageMarker marker = GetMarker(r.Line); int offset = textEditorData.Document.LocationToOffset(r.Line, r.Column); if (!alphaBlend && textEditorData.Parent.TextViewMargin.SearchResults.Any(sr => sr.Contains(offset) || sr.Contains(offset + r.Name.Length) || offset < sr.Offset && sr.EndOffset < offset + r.Name.Length)) { textEditorData.Parent.TextViewMargin.AlphaBlendSearchResults = alphaBlend = true; } marker.Usages.Add(new Mono.TextEditor.Segment(offset, r.Name.Length)); lineNumbers.Add(r.Line); } } foreach (int line in lineNumbers) { textEditorData.Document.CommitLineUpdate(line); } }
UsageMarker GetMarker(int line) { UsageMarker result; if (!markers.TryGetValue(line, out result)) { result = new UsageMarker(); TextEditorData.Document.AddMarker(line, result); markers.Add(line, result); } return(result); }
UsageMarker GetMarker (int line) { UsageMarker result; if (!markers.TryGetValue (line, out result)) { result = new UsageMarker (); textEditorData.Document.AddMarker (line, result); markers.Add (line, result); } return result; }