public static string RemoveExtraSpacesLeavingIndentation(this string line)
{
var newString = new StringBuilder();
var lastWasWhiteSpace = false;
if (line.All(char.IsWhiteSpace))
{
return line;
}
var firstNonwhitespaceIndex = line.IndexOf(line.FirstOrDefault(c => !char.IsWhiteSpace(c)));
for (var i = 0; i < line.Length; i++)
{
if (i < firstNonwhitespaceIndex)
{
newString.Append(line[i]);
continue;
}
if (char.IsWhiteSpace(line[i]) && lastWasWhiteSpace) { continue; }
newString.Append(line[i]);
lastWasWhiteSpace = char.IsWhiteSpace(line[i]);
}
return newString.ToString().Replace('\r', ' ');
}