/// <summary>
/// Performs indentation using the specified document accessor.
/// </summary>
/// <param name="document">Object used for accessing the document line-by-line</param>
/// <param name="keepEmptyLines">Specifies whether empty lines should be kept</param>
public int Indent(IDocumentAccessor document, bool keepEmptyLines, int caretIndex)
{
if (document == null)
{
throw new ArgumentNullException("document");
}
var settings = new IndentationSettings();
settings.IndentString = IndentationString;
settings.LeaveEmptyLines = keepEmptyLines;
var r = new IndentationReformatter();
r.Reformat(document, settings);
return(caretIndex);
}