     equation.children('.token').each ->
       $(this).replaceWith('#' + $(this).data('id') + '#')
 
+    if @options.operators
+      @range = @getRange()
+      operator = @range.startContainer.data.trim() if @range.startContainer.data
+      if operator && @options.operators.map((op) -> op.toLowerCase()).includes(operator.toLowerCase())
+        @word = [@range.startContainer.data] #TODO: Make this not a hack
+        @addItem($('<span data-id='+operator.toUpperCase()+'>'+operator.toUpperCase()+'</span>'), true)
     # if @options.operators
     #   equation.children('.operator').each ->
     #     $(this).replaceWith('@' + $(this).text() + '@')

            @addItem(result)
          else if @resultList.find("li").length == 1
            @addItem(@resultList.find("li").first())

        when 32 # Space
          if @options.operators
            @range = @getRange()
            operator = @range.startContainer.data.trim() if @range.startContainer.data
            if operator && @options.operators.map((op) -> op.toLowerCase()).includes(operator.toLowerCase())
              @word = [operator] #TODO: Make this not a hack
              @addItem($('<span data-id='+operator.toUpperCase()+'>'+operator.toUpperCase()+'</span>'), true)

        when 40 # Down arrow
          if @resultList.find("li").length > 0

      node.className = 'operator'
      # see note on 196
      node.contentEditable = false unless navigator.userAgent.toLowerCase().indexOf('firefox') > -1
      node.innerHTML = '&nbsp;'+name+'&nbsp;'
    else
      # Create and insert new token.
      node.className = 'token'
