Reputation: 9133
As I type the following javascript code (exact keystrokes):
myObject
.doSomething()
.doSomethingElse();
I'd expect it to automatically become the following...
myObject
.doSomething()
.doSomethingElse();
... as would any other programmer, right?
How do I enable this, and why isn't it enabled by default?
Upvotes: 14
Views: 2237
Reputation: 766
You can use Sublime Code formatter with support JavaScript/JSON Beautifier, this link will show you how to usage this plugin.
Or another way is to insert your code inside Key Bindings - User
file:
{"keys": ["alt+shift+f"], "command": "reindent", "args": {"single_line": false}}
Upvotes: 13
Reputation: 2382
This happens because sublime's smart_indent
is not smart enough.
You can fix indentation post factum using code formatter plugin like JsFomat.
Or preventively indent first chained method call. Following lines will have same level of indentation. This solution can be slightly improved by creating new key binding:
{ "keys": ["alt+enter"], "command": "insert", "args": {"characters": "\n\t"} }
Press alt+enter
instead of enter, tab
for newline to have extra indentation.
Upvotes: 0