Hacker News new | past | comments | ask | show | jobs | submit login
tabIndent.js - A JavaScript Library For Tab-Enabled TextAreas (julianlam.github.com)
76 points by Hirvesh on Nov 30, 2012 | hide | past | favorite | 33 comments



This is awesome. I'd love if the developer would add (even if it were optional) Command+[ / Command+] functionality to indent multiple lines at a time.


multiple lines indentation at a time is supported. You have to select multiple lines and press tab (to indent) or shift+tab (to remove indentation).

I like the fact that if you select multiple lines with one line partially selected, it works as expected (selecting whole of the partially selected line)


Windows/Emacs user here. What does these shortcuts do ?


If you have a block of code/text selected, Cmd+[ and Cmd+] shift the entire textblock one tabindent to the left or right, maintaining the relative indent level of each individual line.


Is it different from ctrl+tab / ctrl+shift+tab ? Because these shortcuts works in this editor ("Multi-line highlighted text is also tab-able, and shift-tab removes a tab character instead").


Thanks for your interest! It has been noted. Once I work through the existing backlog of bugs, I'll revisit ideas such as this one.


Something like this would make markdown editing in Github comments usable.


Awesome. One could make a useful bookmarklet out of this.

I'm worried about accessibility.

Most of the time tabs are used to navigate between fields, so it'd be cool if this was "opt-in", eg entering the textarea would render an icon to click that enabled this feature. Or at least some way to tell the user that pressing the ESCAPE key is how you should tab-out of the field.


Hi dergachev -- a helpful Reddit user (where I posted the project originally) went ahead and did this: http://www.reddit.com/r/javascript/comments/13tfpf/burned_th...


You could also let people tab-through by not enabling this functionality until you move within the text-field.


Very interesting. I recently explored several different projects for tab-enabled textareas and currently use https://github.com/wjbryant/taboverride.

One interesting thing about most implementations of tabs in textareas is that the insertion of a tab typically breaks the browser undo/redo stack for the textarea. This guy implemented it correctly though as mentioned in the bug filed on tabIndent.js: http://www.reddit.com/r/javascript/comments/13tfpf/burned_th...


Via Functionn - Open Source Resources For Web Developers & Designers: http://functionn.blogspot.com/2012/11/tabindentjs-javascript...

P.S. Functionn contains a whole lot more of awesome resouces like tabIndent.js. There only a fraction of them I can post here at a time. Take a look if you're interested, and subscribe:

http://functionn.blogspot.com


Thanks again for the shoutout, Hirvesh :)


I'm a little late to the discussion here, but thought I'd post a comment anyway. My project (https://github.com/wjbryant/taboverride) has been around for a while and I'm always open to pull requests and feature enhancements / improvements. It looks like you're trying to solve the same problems and implement features which I've already implemented. Why not collaborate?


It's rather unfortunate that tab is also used for keyboard navigation between fields, since this would be the default behavior of text areas I would like.


Indeed. Many of the commenters have suggested alternatives, such as using Ctrl-[ and Ctrl-] instead, but the best by far that I've seen would be also binding a listener to the "escape" key, so that tab functionality is restored.

I believe I'll probably end up doing that, unless somebody else does it before I do.


Hi everybody, this is Julian, the author of the project. I had no idea a small weekend project like this would be so widely accepted! Thank you all for your comments -- I'll be keeping track of them, and implementing features based on demand.

Follow the development on the issue tracker: https://github.com/julianlam/tabIndent.js/issues

Thanks again!


Feature wish: when pressing enter, indent the new line as deep as the previous line.


I don't see a license specified anywhere. What is it released under?


I posted an issue re. the license type on the library's github page, the author replied with MIT License. Updated the post as well: http://functionn.blogspot.com/2012/11/tabindentjs-javascript...


Hi rpicard, as Hirvesh mentioned, the project is released under MIT. I will be adding the license details to the repo files shortly. Thanks for your interest!


Great, thanks!


Good stuff! I was going to point out the undo/redo and multiline tabbing affecting the line with the cursor on it, but bugs are already filed on 'thub.


Very nice, it would be great if stackoverflow used this.


Seeing as delete will remove a tab I think shift-tab would be better used for the normal behaviour, take you to the next input.


Shift-tab generally has the meaning of "untab" already. Overloading it to mean "move to next input" would be very confusing for those of us expecting the old behaviour, and not at all discoverable for anyone else.


shift-tab over selected lines removes one level of indentation.


Very cool. Now somebody just needs to pack this into a Chrome extension so that all text areas do this.



Done! Well, I hope it's done - I haven't made a chrome extension before. Let me know if it breaks... https://github.com/Ilink/tabIndent.js Cloned the project, should be available in the "extension/chrome" directory.


This is really awesome! I've always wondered why is this not the default behaviour on a text area?


Because it would brake tab-index functionality.


Pretty cool! Would be even cooler with vim commands ;-)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: