형식 있는 텍스트 삽입 시 더 나은 되돌리기 지원 추가

고맙습니다! 현재 실행 취소(undo)가 작동하지 않는 기능을 다음과 같이 확인했습니다:

컴포저 버튼에서:

  • 인용구(Blockquote)
  • 불릿 목록(Bulleted list)
  • 번호 매긴 목록(Numbered list)

다른 작업들 (이 부분은 예상대로입니다):

  • 붙여넣기로 이미지 업로드
  • @user, #category/tag, :emoji:

그 외 제가 시도해 본 것들은 모두 실행 취소가 가능했습니다. 굵게 만들기, 서식이 적용된 텍스트 붙여넣기, 텍스트 위에 링크를 붙여넣어 링크화하는 작업 등 기본적인 작업들도 포함됩니다.

다만, 실행 취소가 가능한 작업과 불가능한 작업을 함께 사용할 때 몇 가지 문제를 발견했습니다.


버그 1:

  • 편집기 열기 (처음부터 시작하는 것이 중요합니다)
  • hello 입력
  • 편집기의 모든 텍스트 삭제
  • 인용구 버튼 클릭 (실행 취소 불가)
    • 편집기에 > Blockquote가 표시됩니다
  • Ctrl+Z 누름
    • 편집기에 > Blockquotehello가 표시됩니다

버그 2:

  • 편집기 열기 (처음부터 시작하는 것이 중요합니다)
  • hello 입력
  • 인용구 버튼 클릭 (실행 취소 불가)
    • 편집기에 hello (줄바꿈) > Blockquote가 표시됩니다
  • Ctrl+Z를 5번 누름 (5번째 누를 때 커서가 이동하는 것을 확인하세요)
  • Ctrl+Y 누름
    편집기에 hello (줄바꿈) > Blockquotehhello가 표시됩니다
  • Ctrl+Y를 계속 누름
    • 편집기에 hello (줄바꿈) > Blockquotehellohello가 표시됩니다

이 문제가 발생하는 시점까지 실행 취소 버튼을 누르는 횟수는 원래 입력한 글자 수(hello인 제 예시에서)에 따라 달라집니다.

인용구 버튼을 누르는 대신 멘션(mentions) 같은 경우에도 이 문제가 발생할 수 있으며, 멘션은 제안을 받기 위해 입력해야 하므로 더 이상합니다. 즉, "다시 실행(redo)"을 하면 해당 텍스트가 일부 표시됩니다. 예를 들어:

  • "hello @dav"를 입력하고 제안 목록에서 사용자 이름을 선택 (실행 취소 불가)
  • 이전 예시처럼 커서가 편집기 맨 앞으로 이동할 때까지 Ctrl+Z를 누름
  • Ctrl+Y 누름
    • 편집기에 hello @david hhello @dav가 표시됩니다
  • Ctrl+Y를 계속 누름
    • 편집기에 hello @david hello @davhello @dav가 표시됩니다
1개의 좋아요