ajaxorg/ace — pull request #1055 by lennartcl (2012-10-22 11:43:50+00:00)
Title: Selective bracket insertion

This changes bracket insertion to address #758. Essentially, it makes bracket insertion and closing bracket skipping more context-sensitive.

* For insertion, it looks at the current token and the token that follow the cursor.
* For the bracket skipping, it maintains a stack of "hot" closing brackets that the user can type over. So if you type `((()))` you get `((()))` but if you see a syntax error in some code like `foo(bar()` and type a new `)` it will still add that `)`.

I hope that with this we can enable bracket insertion by default in Cloud9 without it getting in the way. IDEs like Visual Studio and Eclipse have it enabled by default with similar techniques.

@ajaxorg/liskov @gjtorikian