     @insertNlJsx = new InsertNlJsx(@editor)
     @autoJsx = atom.config.get('language-babel').autoIndentJSX
     # regex to search for tag open/close tag and close tag
-    @JSXREGEXP = /(<)([$_A-Za-z](?:[$_.:\-A-Za-z0-9])*)|(\/>)|(<\/)([$_A-Za-z](?:[$._:\-A-Za-z0-9])*)(>)|(>)|({)|(})|(\?)|(:)|(if)|(else)|(case)|(default)|(return)/g
+    @JSXREGEXP = /(<)([$_A-Za-z](?:[$_.:\-A-Za-z0-9])*)|(\/>)|(<\/)([$_A-Za-z](?:[$._:\-A-Za-z0-9])*)(>)|(>)|({)|(})|(\?)|(:)|(if)|(else)|(case)|(default)|(return)|(\()|(\))/g
     @mouseUp = true
     @multipleCursorTrigger = 1
     @disposables = new CompositeDisposable()

TERNARY_ELSE            = 11      # Ternary :
JS_IF                   = 12      # JS IF
JS_ELSE                 = 13      # JS ELSE
SWITCH_BRACE_OPEN       = 14      # opening brace in swtich { }
SWITCH_BRACE_CLOSE      = 15      # closing brace in swtich { }
SWITCH_CASE             = 16      # switch case statement
SWITCH_DEFAULT          = 17      # switch defauklt statement
JS_RETURN               = 18      # JS return

# eslint property values
TAGALIGNED    = 'tag-aligned'

            if parentTokenIdx >=0 then tokenStack[parentTokenIdx].termsThisTagIdx = idxOfToken
            idxOfToken++

          # Javascript brace Start { or switch brace start { or paren (
          when BRACE_OPEN, SWITCH_BRACE_OPEN, PAREN_OPEN
            tokenOnThisLine = true
            if isFirstTokenOfLine
              stackOfTokensStillOpen.push parentTokenIdx = stackOfTokensStillOpen.pop()
