В раздумьях над следующей проблемой:
Скажем есть такой markup
<ul>
<li>one|</li>
<li>two</li>
</ul>
Где символом '|' обозначено положение каретки.
Теперь юзер жмет ENTER т.е. как бы "перевод строки".
Воможны (и требуется поддержать) два варианта изменений:
Первый (расширение LI блока путем создания параграфа внутри):
<ul>
<li>one
<p>|</p>
</li>
<li>two</li>
</ul>
Второй (создание нового LI блока):
<ul>
<li>one</li>
<li>|</li>
<li>two</li>
</ul>
Варианты решения которые я рассматриваю:
1) Эти два действа сидят на разных key strokes, например: Ctrl+Enter и Enter. Not enough WYSIWYG я бы сказал...
2) Расширение набора caret positions:
Т.е.
|<ul>
|<li>|o|n|e|</li>|
|<li>|t|w|o|</li>|
</ul>|
В этом варианте появляется потребность в "нетрадиционыых" изображениях каретки.
Вот эти две позиции каретки:
|<li>|one</li>
на самом деле находятся в одном месте canvas. Поэтому приходится рисовать "мигающий угол" в случае когда каретка находится перед началом блока. Перед началом первого символа вид каретки традиционный т.е. вопросов не вызывает.
Честно говоря я затрудняюсь в определении какой из вариантов лучше.
Т.е. либо стандартная каретка, но магические сочетания кнопок, либо такие вот "magic carets".