hunk.code_window:     }
       else if (selection.isAtStartOf(startNode)) {
         const parent = document.getParent(startNode)
         const previous = document.getPreviousSibling(parent).nodes.first()
         after = selection.collapseToEndOf(previous)
       }
       else {
         after = selection.moveBackward(n)
  
hunk.labels: keep keep keep replace replace replace keep keep keep keep
hunk.after_edit:       const previous = document.getPreviousText(startNode)
         const prevBlock = document.getClosestBlock(previous)
         const prevInline = document.getClosestInline(previous)
         if (prevBlock && prevBlock.isVoid) {
           after = selection
         } else if (prevInline && prevInline.isVoid) {
           after = selection
         } else {
           after = selection.collapseToEndOf(previous)
         }
  
hunk.file_path: lib/models/state.js
hunk.type: replace
file: 
  export default function (state) {
    const { document, selection } = state
    const texts = document.getTextNodes()
    const first = texts.first()
    const range = selection.merge({
      anchorKey: first.key,
      anchorOffset: 1,
      focusKey: first.key,
      focusOffset: 2
    })
  
    return state
      .transform()
      .unmarkAtRange(range, 'bold')
      .apply()
  }
  