Edit like an Ace
github.com
github.com
Also makes theming changes quite a lot easier using css.
(http://groups.google.com/group/ace-internals/browse_thread/t..., http://groups.google.com/group/ace-internals/browse_thread/t...)
http://www.whatwg.org/specs/web-apps/current-work/multipage/...
They wanted to be ambitious and to their credit they got very far. They gave a few talks on the hurdles they had to overcome. Measuring the height of text, making their own custom scrollbars, resizing woes, etc. They did a good job with a lot of it.
They admitted it was fun but too hard to get everything right. They ran into most of the problems in the spec: "Unlike Skywriter, Ace uses the DOM to render instead of the <canvas> element making it compatible with a wider range of browsers and potentially giving it a leg up in accessibility."
http://mozillalabs.com/skywriter/2011/01/18/mozilla-skywrite...
The code for Skywriter was actually really good. I used a lot of it to make my in-canvas scrollbars before moving on to my own code.
IIRC, Ben and Dion originally went the canvas route for:
1. fun 2. performance 3. total control over rendering
I was never personally involved in the rendering part of Bespin. I do remember talking with Dion one day and he was telling me that he thought it would be possible to make a DOM-based renderer that performed well. We had lots of other stuff to do, though.
Time passed... We rejiggered Bespin a good deal before it became Skywriter.
Then, last September, I was in Berlin with Joe Walker and Patrick Walton. We were walking from the hotel to JSConf.eu and talking about accessibility and DOM-based rendering. Coincidentally, that very day Fabian Jakobs of Ajax.org showed off Cloud9 and Ace (which used DOM-based rendering and was, indeed, quite fast).
I'll just note that accessibility and full internationalization are *hard, if not actually impossible, to do with pure JS in the browser alone. I recently started a feature page to start gathering information about exposing more APIs to browser content to enable the creation of fully a10y- and i18n-ready editors:
Just fork a project to your account on github, edit in Ace, and then make a pull request when you are done.
Would people do this? If not, is Ace just going to be for minor edits, etc?
I'm curious how other people will use this.
EDIT: people the child comments are telling me the fork is done automatically for you - cool. I need to play around with this on other projects!
If you want an online-only workflow, Cloud9 already offers github as a backend for an Ace powered IDE. I think Ajax.org have hired someone to work on IntelliSense style auto-complete for Cloud9, not sure if those will be suitable to be put into Ace itself.
or the pull request would accumulate changes?
I cannot reproduce but I noticed a situation when I was issuing multiple pull requests and the previous pull request somehow got commits that weren't intended to end up there; so I begin to think that it was intentional.
(just asking because I would like to avoid creating a tmp github account just to try that out, otherwise I wouldn't bother you with silly questions)
Github's edit feature does all that: if you're trying to edit a file in a third party's project, it creates a fork and opens the file for editing, and creates a pull request when you commit your edit.
> If not, is Ace just going to be for minor edits, etc?
Well yeah, since you can't really test the code (for now at least, maybe they'll build some sort of testrunner via VMs later on) it's not like you can perform significant code editions with it. But for docfixes, typos or minor stuff it's very handy.
Just fork a project to your account on github, edit in Ace, and then make a pull request when you are done.
I'm not sure that would be plausible for anything other than documentation or maybe typo fixes in string literals. I would ask contributors to my projects to make sure they've run tests (and made new ones, if need be) before sending a pull request.I run my blog (pepijndevos.nl) on Github, using its Jekyll feature, so my blog just got a much better online editor with preview functionality.
They could use an Emacs hacker to fix it up, but Emacs hackers already have perfectly fine editor, so I do not predict any great success in this field.
Like the emacs mode, it feels like it was implemented to check a feature off on a list, not because someone wanted to take advantage of the things that vi/emacs do well.
There's a bit of effort to go from that capability to a full set of bindings. I know that Gozala (on GitHub) worked a bit on vi bindings. For a motivated hacker, it's possible and likely not too much work to fit Ace with some slick bindings.
Just my two cents.
Support for IE<9 older browsers is a little sketchy at the moment, but hopefully greater exposure through github will see more fixes and features contributed. (Fabian Jakobs seems quite open to new features as long as they fit in with the projects goals)
Would love to see this feature given 1st class attention in other editors!
Is there a reason they miss out Internet Explorer? Makes it sound like it's not supported or something. Is it?
Does anyone know is there anything to give this a modular editor feel like vim?
If someone can deliver me an online experience with a fully functioning vim, I would be browser bound almost exclusively.
C-x k