internal void GoWordLeft(bool shift) { Range range = this.Clone();//for OnSelectionChanged disable Place prev; bool findIdentifier = IsIdentifierChar(range.CharBeforeStart); do { prev = range.Start; if (IsIdentifierChar(range.CharBeforeStart) ^ findIdentifier) { break; } //move left range.GoLeft(shift); } while (prev != range.Start); this.Start = range.Start; this.End = range.End; if (tb.lineInfos[Start.iLine].VisibleState != VisibleState.Visible) { GoRight(shift); } }
public void GoWordLeft(bool shift) { ColumnSelectionMode = false; if (!shift) { if (start > end) { Start = End; return; } } Range range = this.Clone();//for OnSelectionChanged disable Place prev; bool findIdentifier = IsIdentifierChar(range.CharBeforeStart); do { prev = range.Start; if (IsIdentifierChar(range.CharBeforeStart) ^ findIdentifier) { break; } //move left range.GoLeft(shift); } while (prev != range.Start); this.Start = range.Start; this.End = range.End; if (tb.lineInfos[Start.iLine].VisibleState != VisibleState.Visible) { GoRight(shift); } }
internal void GoWordLeft(bool shift) { Range range = this.Clone();//for OnSelectionChanged disable Place prev; bool wasNonSpace = false; do { prev = range.Start; switch (range.CharBeforeStart) { case ' ': case '\r': case '\n': if (wasNonSpace) { goto found; } break; default: wasNonSpace = true; break; } //move left range.GoLeft(shift); } while (prev != range.Start); found: this.Start = range.Start; this.End = range.End; if (tb.lines[Start.iLine].VisibleState != VisibleState.Visible) { GoRight(shift); } }