private static SourceText AddSymbolNamesToSourceText(SourceText sourceText, IEnumerable<string> newSymbolNames) { HashSet<string> lines = GetLinesFromSourceText(sourceText); foreach (var name in newSymbolNames) { lines.Add(name); } var sortedLines = lines.OrderBy(s => s, StringComparer.Ordinal); var newSourceText = sourceText.Replace(new TextSpan(0, sourceText.Length), string.Join(Environment.NewLine, sortedLines)); return newSourceText; }
private static SourceText RemoveSymbolNamesFromSourceText(SourceText sourceText, ImmutableHashSet<string> linesToRemove) { if (linesToRemove.IsEmpty) { return sourceText; } HashSet<string> lines = GetLinesFromSourceText(sourceText); var newLines = lines.Where(line => !linesToRemove.Contains(line)); IOrderedEnumerable<string> sortedLines = newLines.OrderBy(s => s, StringComparer.Ordinal); SourceText newSourceText = sourceText.Replace(new TextSpan(0, sourceText.Length), string.Join(Environment.NewLine, sortedLines)); return newSourceText; }