Как отобразить пользовательский интерфейс сравнения с AttributedStrings
Я работаю над функцией, которая сравнивает новый ввод со старым вводом. Я бы хотел, чтобы это выглядело как git diff, как это видно в битбакете или github и т. д.
В настоящее время у меня есть массив символов с префиксом относительно того, были ли они добавлены или удалены. Теперь я застрял в отображении каждой из этих строк с другим цветом фона, сохраняя при этом некоторую нормальную структуру, похожую на предложение. Приведенный ниже код просто создает новый элемент Text() в новой строке, который не читается.
VStack {
ForEach(diff.indices, id: \.self) { index in
Text(diff[index]).foregroundColor(diff[index].hasPrefix("+add") ? .green : .black)
}
}
Люди приводят примеры использования «+» для объединения элементов Text(), но я не могу этого сделать в ForEach.
Мысли?