public void SetExtension(ExtensionDirection i) { Extension = i; switch (i) { case ExtensionDirection.None: { Limleft = 0; Limright = 1; break; } case ExtensionDirection.Left: { Limleft = -ExtensionRatio; Limright = 1; break; } case ExtensionDirection.Right: { Limleft = 0; Limright = 1 + ExtensionRatio; break; } case ExtensionDirection.Both: { Limleft = -ExtensionRatio; Limright = 1 + ExtensionRatio; break; } } }
public void RemoveExtension(ExtensionDirection i) { switch (Extension) { case ExtensionDirection.Left: if (i == ExtensionDirection.Left) { SetExtension(ExtensionDirection.None); } break; case ExtensionDirection.Right: if (i == ExtensionDirection.Right) { SetExtension(ExtensionDirection.None); } break; case ExtensionDirection.Both: if (i == ExtensionDirection.Left) { SetExtension(ExtensionDirection.Right); } else if (i == ExtensionDirection.Right) { SetExtension(ExtensionDirection.Left); } else { SetExtension(ExtensionDirection.None); } break; } }
private ExtensionDirection GetExtensionDirection() { bool searching = true; ExtensionDirection direction = ExtensionDirection.None; if (Offset != 0) { itsOffset++; } itsEndOffset--; do { if (MoveLeft() && IsLeftBlockChar(itsDocument.GetCharAt(Offset))) { direction = ExtensionDirection.Right; searching = false; } else if (MoveRight() && IsRightBlockChar(itsDocument.GetCharAt(EndOffset))) { if (EndOffset == (itsDocument.TextLength - 1)) { direction = ExtensionDirection.None; } else { direction = ExtensionDirection.Left; } searching = false; } if (searching) { if (itsDocument.GetCharAt(Offset) == '\n') { direction = ExtensionDirection.Right; } if (itsDocument.GetCharAt(EndOffset) == '\n') { direction = ExtensionDirection.Left; } if (direction != ExtensionDirection.None) { searching = false; } } } while (searching); return(direction); }
public void AddExtension(ExtensionDirection i) { switch (Extension) { case ExtensionDirection.Left: if (i == ExtensionDirection.Right) { i = ExtensionDirection.Both; } break; case ExtensionDirection.Right: if (i == ExtensionDirection.Left) { i = ExtensionDirection.Both; } break; } SetExtension(i); }
private void ExtendBlock() { ExtensionDirection direction = GetExtensionDirection(); if (direction == ExtensionDirection.Right) { ExtendSelectionRight(); } if (direction == ExtensionDirection.Left) { ExtendSelectionLeft(); } /* * //TODO direction search * if (direction == ExtensionDirection.None) * System.Diagnostics.Debug.WriteLine("None direction"); */ }