         commandListener.call(@getModel(), event)
   newCommandListeners
 
-stopEventPropagationAndGroupUndo = (commandListeners) ->
+stopEventPropagationAndGroupUndo = (config, commandListeners) ->
   newCommandListeners = {}
   for commandName, commandListener of commandListeners
     do (commandListener) ->
       newCommandListeners[commandName] = (event) ->
         event.stopPropagation()
         model = @getModel()
-        model.transact atom.config.get('editor.undoGroupingInterval'), ->
+        model.transact config.get('editor.undoGroupingInterval'), ->
           commandListener.call(model, event)
   newCommandListeners

    'editor:select-line': -> @selectLinesContainingCursors()
  )

  atom.commands.add 'atom-text-editor', stopEventPropagationAndGroupUndo(
    'core:backspace': -> @backspace()
    'core:delete': -> @delete()
    'core:cut': -> @cutSelectedText()

    'editor:scroll-to-cursor': -> @scrollToCursorPosition()
  )

  atom.commands.add 'atom-text-editor:not([mini])', stopEventPropagationAndGroupUndo(atom.config,
    'editor:indent': -> @indent()
    'editor:auto-indent': -> @autoIndentSelectedRows()
    'editor:indent-selected-rows': -> @indentSelectedRows()
