   User events
   ###
 
-  onContentsModified: =>
-    @parse()
+  onBufferChanged: =>
+    clearTimeout @bufferChangedTimeoutId
+    @bufferChangedTimeoutId = setTimeout @parse, 0
 
   onCursorMoved: =>
-    # clearTimeout @timeoutId
-    # @timeoutId = setTimeout @updateReferences, 0
-    # nextTick => @updateReferences()
-    @updateReferences()
+    clearTimeout @cursorMovedTimeoutId
+    @cursorMovedTimeoutId = setTimeout @updateReferences, 0
 
 
   ###

    @statusView?.destruct()

    # Remove references
    delete @module
    delete @ripper
    delete @referenceView

  5. Start listening cursor move event.
  ###

  parse: =>
    @editorView.off 'cursor:moved', @onCursorMoved
    @hideError()
    @referenceView.update()
