public static int FindNextWordStart(IDocument document, int offset) { LineSegment lineSegmentForOffset = document.GetLineSegmentForOffset(offset); int num = lineSegmentForOffset.Offset + lineSegmentForOffset.Length; TextUtilities.CharacterType characterType = TextUtilities.GetCharacterType(document.GetCharAt(offset)); while (offset < num) { if (TextUtilities.GetCharacterType(document.GetCharAt(offset)) != characterType) { break; } offset++; } while (offset < num && TextUtilities.GetCharacterType(document.GetCharAt(offset)) == TextUtilities.CharacterType.WhiteSpace) { offset++; } return(offset); }
public static int FindPrevWordStart(IDocument document, int offset) { if (offset > 0) { LineSegment lineSegmentForOffset = document.GetLineSegmentForOffset(offset); TextUtilities.CharacterType characterType = TextUtilities.GetCharacterType(document.GetCharAt(offset - 1)); while (offset > lineSegmentForOffset.Offset && TextUtilities.GetCharacterType(document.GetCharAt(offset - 1)) == characterType) { offset--; } if (characterType == TextUtilities.CharacterType.WhiteSpace && offset > lineSegmentForOffset.Offset) { characterType = TextUtilities.GetCharacterType(document.GetCharAt(offset - 1)); while (offset > lineSegmentForOffset.Offset && TextUtilities.GetCharacterType(document.GetCharAt(offset - 1)) == characterType) { offset--; } } } return(offset); }
public TextMarker ErrMarker(CompilerError err) { IDocument doc = editor.Document; LineSegment line = null; if (err.Line > 0 && err.Line < doc.LineSegmentCollection.Count + 1) { line = doc.GetLineSegment(err.Line - 1); } if (line != null) { int start = line.Offset + err.Column - 1; int end = line.Offset + line.Length; int offset = start; TextMarker marker; if (offset < end) { TextUtilities.CharacterType type = TextUtilities.GetCharacterType(doc.GetCharAt(offset++)); while (offset < end && (TextUtilities.GetCharacterType(doc.GetCharAt(offset)) == type)) { offset++; } } Color color; if (err.IsWarning) { color = Color.Blue; } else { color = Color.Red; } marker = new TextMarker(start, offset - start, TextMarkerType.WaveLine, color); marker.ToolTip = err.ErrorText; return(marker); } return(null); }