public override void Analyze (Document doc, LineSegment line, Chunk startChunk, int startOffset, int endOffset) { if (endOffset <= startOffset || startOffset >= doc.Length) return; string text = doc.GetTextAt (startOffset, endOffset - startOffset); int startColumn = startOffset - line.Offset; var markers = new List <UrlMarker> (line.Markers.Where (m => m is UrlMarker).Cast<UrlMarker> ()); markers.ForEach (m => doc.RemoveMarker (m)); foreach (System.Text.RegularExpressions.Match m in urlRegex.Matches (text)) { line.AddMarker (new UrlMarker (doc, line, m.Value, UrlType.Url, syntax, startColumn + m.Index, startColumn + m.Index + m.Length)); } foreach (System.Text.RegularExpressions.Match m in mailRegex.Matches (text)) { line.AddMarker (new UrlMarker (doc, line, m.Value, UrlType.Email, syntax, startColumn + m.Index, startColumn + m.Index + m.Length)); } }
void RemoveErrorUnderlines (Document doc) { errors.ForEach (err => doc.RemoveMarker (err)); errors.Clear (); }
public void RemoveFromLine(Mono.TextEditor.Document doc) { doc.RemoveMarker(marker); }