ajaxorg/ace — pull request #1152 by gjtorikian (2012-12-13 00:45:02+00:00)
Title: [wip] Feature/elastictabstops

Addresses #215.

I became interested in elastic tabstops after taking a look at the issue above:

![60RvQ](https://f.cloud.github.com/assets/64050/9714/9d1f9662-44bd-11e2-910b-53864aab98c0.gif)

Since I'm a masochist (and I didn't feel like looking at Nick's Java code), I actually took a peak at [this Python/Sublime text plugin](https://github.com/SublimeText/ElasticTabstops), and did a port of that instead.

It's mostly working at this point. Remaining issues include:

* Performance issues
* Lack of multiple cursor support
* A setting to enable / disable

The reason I'm opening this PR now is to ask @nightwing / @fjakobs questions on preferences for conventions.

This feature adds quite a few utility (`$`) functions. Is it preferred to stick them in a file somewhere, instead of littering _editor.js_ with them ? On top of that, this only really works when a real `\t` is used. I'm not sure if that's a limitation or a "feature."

As an added bonus, I am absolutely ashamed at the state of the API docs, there's quite a few missing or inaccurate info. I fixed a few of the ones I referred to but in a separate PR I'll need to fix it all up properly.