       @markerLayer.markBufferRange(range, @markerOptions)
 
   updateEditorElement: ->
-    @editorElement.classList.toggle("has-occurrence", @hasMarkers())
+    hasMarkers = @hasMarkers()
+    @editorElement.classList.toggle("has-occurrence", hasMarkers)
+    if hasMarkers
+      @editorElement.classList.toggle("at-occurrence", @cursorIsAtOccurrenceMarker())
+    else
+      @editorElement.classList.remove("at-occurrence")
+
+  cursorIsAtOccurrenceMarker: ->
+    @getMarkerAtPoint(@editor.getCursorBufferPosition())?
 
   # Callback get passed following object
   # - pattern: can be undefined on reset event

      range.intersectsWith(marker.getBufferRange(), exclusive)

  getMarkerAtPoint: (point) ->
    @markerLayer.findMarkers(containsBufferPosition: point)[0]

  # Select occurrence marker bufferRange intersecting current selections.
  # - Return: true/false to indicate success or fail

      else
        @clearMarkers()

    @disposables.add @editor.onDidChangeCursorPosition ({cursor}) =>
      if cursor.isLastCursor() and @hasMarkers()
        @editorElement.classList.toggle("at-occurrence", @cursorIsAtOccurrenceMarker())

    @markerLayer.onDidUpdate(@destroyInvalidMarkers.bind(this))

  markBufferRangeByPattern: (pattern, occurrenceType) ->
