LINUX.ORG.RU

глубина undo/redo в редакторе.

 


0

1

Какова по вашему должна быть глубина undo/redo в редакторе мечты.

варианты

  • непонятное, вообще не нужно

  • бесконечная глубина

  • фиксированная неким большим числом. при превышении лимита самый старая undo запись выбрасывается, при вставке новой

★★★

По мне, так фиксированное большое число, думаю сотни, может тысячи даже хватит.

Меня больше напрягает, когда делаешь undo после redo и теряешь предыдущую ветку redo. Редко, но бывает нужно.

Loki13 ★★★★★
()
Ответ на: комментарий от Loki13

в человеческом редакторе (емаксе) история древовидная с незапамятных. плюс undo можно сделать локально в выделенном куске текста и это не затронет остальной текст. ну а в ваших убогих недоблокнотах, естественно, все через ж сделано. для вас такая элементарная фича это только в «редакторе мечты».

anonymous
()

Очевидны три вещи:

  • undo нужно
  • бесконечную глубину делать проще, потому что ограничение нужно явно писать
  • история занимает память

Итого остаётся только одна неизвестная - сколько именно памяти занимает ваша история, от неё и зависит ответ. Если редактор писал жопорук и у него на каждый уровень хранится снапшот документа, то конечно стоит ограничить. В нормальной реализации объём истории будет пропорционален размеру документа и можно ничего специально не делать.

anonymous
()
Ответ на: комментарий от anonymous

емаксом не пользовался. древовидная история, без половины фарша от гита, малополезна. придется пристраивать всякие там ребейзы, просмотр диффов веток, перенос изменений между ветками, и хранить к тому ж историю файла на диске, иначе зачем оно вообще нужно. то есть брать половину работы гита на себя. не наш путь.

undo в блоке - фича интересная.

alysnix ★★★
() автор топика
Ответ на: комментарий от anonymous

никакие снапшоты не нужны.

история хранится в виде изменений то есть записей вида - {вставить, позиция, размер блока}. при удалении в виде - {удалить, позиция, данные блока}. глубина может быть до сотен тыщ, в силу компактности представления изменений. понятно, что в реальности никто не будет откатываться назад на сотни тыщ изменений. к тому ж, поскольку данные хранятся только в течении сессии, вряд ли кто-то вообще накопит сотни тыщ изменений за сессию.

alysnix ★★★
() автор топика
Ответ на: комментарий от anonymous

Во-первых, не всем нужно, для кого-то обязательное требование к «редактору мечты» - отсутствие таких сложностей. Во-вторых, вопрос в равной степени применим и к древовидной истории.

Не понятно зачем вы вообще это написали - похоже что только ради понтов, а значит на деле позер сидящий на венде в vs code.

anonymous
()
Ответ на: комментарий от anonymous

Если это не нужно, то и анду не нужен тогда совсем. Потому что единственное назначение анду - не потерять информацию. Линейная история позволяет потерять информацию очень легко - одно сучайное нажатие после анду и реду сделать уже некуда.

Sent from my iPhone using Tapatalk.

anonymous
()
Ответ на: комментарий от alysnix

емаксом не пользовался.

ну поэтому и не понимаешь о чем пишешь. ребейзы какие-то, на диске чего-то ранить собрался… совсем плохой.

то есть брать половину работы гита на себято есть брать половину работы гита на себя

если ты хочешь перманентно ранить вообще всё-всё то сделай хук который тебе будет в гит это коммитить или по таймеру или по сохранению файла. но зачем?

anonymous
()