What is the goal of Indent plugin? Short answer is converting this XML
<root><node attr="1" attr2="4"><node /></node></root>
to this:
<root>
<node attr="1" attr2="4">
<node/>
</node>
</root>
Looks good? It also can convert this JSON
{ "root": [ { "field": "val1", "field2": "val2" }, { "arr": [1, 3, "three"] }] }
to this
{
"root": [
{
"field": "val1",
"field2": "val2"
},
{
"arr": [
1,
3,
"three"
]
}
]
}
Want more? It can indent only selected text - including multiple selections and even mixed XML / JSON selections. It is smart enough to recognize XML or JSON even if you are editing plain text. Indent plugin won't mess up your keyboard shortcuts because it uses "chord" command Ctrl+K, Ctrl+F (this means hold Ctrl, press K then press F, release Ctrl) and also available in "Selection" menu.
Indent plugin supports both Sublime Text 2 and Sublime Text 3
Just use Package Control and search for "indent xml" plugin.
Click on Tools->Command Pallette... (or Ctrl+Shift+P if you're a keyboard guy) and then chose "Indent XML".
Preferences -> Package Settings -> Indent XML
Available on Github
...is always welcome! Same place - Github
This software is distributed under MIT license (see License.txt for details).