hunk.code_window:   function onCompositionStart(event, change, editor) {
       isComposing = true
       compositionCount++
       debug('onCompositionStart', { event })
     }
     /**
      * On copy.
  
hunk.labels: keep keep keep keep add keep keep keep keep keep
hunk.after_edit:     // HACK: we need to re-render the editor here so that it will update its
       // placeholder in case one is currently rendered. This should be handled
       // differently ideally, in a less invasive way?
       editor.setState({ isComposing: true })
  
hunk.file_path: packages/slate-react/src/plugins/before.js
hunk.type: add
file: 
  /** @jsx h */
  
  import React from 'react'
  import h from '../helpers/h'
  
  export const rules = [
    {
      serialize(obj, children) {
        if (obj.kind == 'block' && obj.type == 'paragraph') {
          return React.createElement('p', {}, children)
        }
  
        if (obj.kind == 'inline' && obj.type == 'link') {
          return React.createElement('a', {}, children)
        }
  
        if (obj.kind == 'inline' && obj.type == 'hashtag') {
          return React.createElement('span', {}, children)
        }
      }
    }
  ]
  
  export const input = (
    <value>
      <document>
        <paragraph>
          <link>
            <hashtag>
              one
            </hashtag>
          </link>
        </paragraph>
      </document>
    </value>
  )
  
  export const output = `
  <p><a><span>one</span></a></p>
  `.trim()
  