public void StripTrailingSpaces()
{
NativeScintilla.BeginUndoAction();
for (int line = this.startingLine; line < this.endingLine; line++)
{
int lineStart = NativeScintilla.PositionFromLine(line);
int lineEnd = NativeScintilla.GetLineEndPosition(line);
int i = lineEnd - 1;
char ch = NativeScintilla.GetCharAt(i);
while ((i >= lineStart) && ((ch == ' ') || (ch == '\t')))
{
i--;
ch = NativeScintilla.GetCharAt(i);
}
if (i == lineStart - 1)
{
ch = NativeScintilla.GetCharAt(i + 1);
while (i < lineEnd && ch == '\t')
{
i++;
ch = NativeScintilla.GetCharAt(i + 1);
}
}
if (i < (lineEnd - 1))
{
NativeScintilla.SetTargetStart(i + 1);
NativeScintilla.SetTargetEnd(lineEnd);
NativeScintilla.ReplaceTarget(0, string.Empty);
}
}
NativeScintilla.EndUndoAction();
}