     cursor = @editor.getCursor()
     tempPoint = cursor.getBufferPosition().toArray()
     @character = @editor.getTextInBufferRange([cursor.getBufferPosition(),new Point(tempPoint[0],tempPoint[1] + 1)])
-    if @character == ']'
-      @matching = '['
-      @reverse = true
-    else if @character == '['
-      @matching = ']'
-      @reverse = false
-    else if @character == ')'
-      @matching = '('
-      @reverse = true
-    else if @character == '('
-      @matching = ')'
-      @reverse = false
-    else if @character == '}'
-      @matching = '{'
-      @reverse = true
-    else if @character == '{'
-      @matching = '}'
-      @reverse = false
-    else
-      @character = ''
+    @startUp = false;
+    index = @characters.indexOf(@character)
+    if index >= 0
+      @matching = @charactersMatching[index]
+      @reverse = @reverseSearch[index]
+    else
+      @startUp = true
 
     @character
 

        retVal.push(matchesMatching[winner])
      @matches = retVal


  execute: (count=1) ->
    super(count) if @input.characters.length > 0


  select: (count=1) ->
    @scan()
    if @startUp
      cur = @startUpPos
    else
      cur = @editor.getCursorBufferPosition()

    @match count, (pos) =>
      if @reverse
        tempPoint = cur.toArray()
