IndentX
A Sublime Text package for indenting and formatting XML and JSON content
Details
Installs
- Total 46K
- Win 25K
- Mac 15K
- Linux 7K
Nov 21 | Nov 20 | Nov 19 | Nov 18 | Nov 17 | Nov 16 | Nov 15 | Nov 14 | Nov 13 | Nov 12 | Nov 11 | Nov 10 | Nov 9 | Nov 8 | Nov 7 | Nov 6 | Nov 5 | Nov 4 | Nov 3 | Nov 2 | Nov 1 | Oct 31 | Oct 30 | Oct 29 | Oct 28 | Oct 27 | Oct 26 | Oct 25 | Oct 24 | Oct 23 | Oct 22 | Oct 21 | Oct 20 | Oct 19 | Oct 18 | Oct 17 | Oct 16 | Oct 15 | Oct 14 | Oct 13 | Oct 12 | Oct 11 | Oct 10 | Oct 9 | Oct 8 | Oct 7 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 3 | 3 | 1 | 2 | 1 | 0 | 4 | 0 | 0 | 7 | 8 | 0 | 5 | 5 | 10 | 3 | 2 | 9 | 2 | 1 | 1 | 2 | 2 | 5 | 2 | 0 | 0 | 7 | 3 | 5 | 7 | 5 | 0 | 1 | 5 | 7 | 7 | 2 | 7 | 1 | 1 | 5 | 0 | 4 | 4 | 2 |
Mac | 2 | 4 | 0 | 3 | 1 | 2 | 3 | 0 | 0 | 5 | 4 | 1 | 0 | 2 | 7 | 2 | 1 | 4 | 1 | 0 | 2 | 9 | 3 | 3 | 4 | 2 | 0 | 1 | 2 | 5 | 0 | 6 | 1 | 0 | 1 | 8 | 5 | 2 | 4 | 0 | 0 | 4 | 3 | 7 | 3 | 5 |
Linux | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 2 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 2 | 1 | 1 | 0 | 1 | 5 | 2 | 3 | 0 | 1 | 1 | 0 | 2 | 2 | 0 | 0 | 0 | 0 | 1 | 1 | 2 | 0 |
Readme
- Source
- raw.githubusercontent.com
IndentX
IndentX is a forgiving indentation plugin for Sublime Text inspired by Indent Xml, aimed primarily at preserving attribute ordering and working with invalid content.
Supported content types:
- XML-like content
- JSON-like content
Available Commands
- IndentX: Indent
- IndentX: Indent & format JSON
- IndentX: Convert JSON to YAML
- IndentX: Unindent
- IndentX: Report issue
Note: IndentX: Convert JSON to YAML should be considered alpha.
IndentX: Indent
The Indent command will format both XML and JSON like content (content guess based on the first character <
for XML) and can be accessed using the following keyboard short-cuts (think angle brackets: control
/command
+ k
+ <
):
- Windows:
control
+k
+,
- Mac:
command
+k
+,
- Linux:
control
+k
+,
XML before indenting:
XML after indenting:
IndentX: Indent & format JSON
The Indent & format JSON will try and indent and convert JavaScript-like objects to JSON (e.g. wrapping attributes in "
and converting '
strings to "
). It can be accessed using the following keyboard short-cuts (think curly braces: control
/command
+ k
+ {
):
- Windows:
control
+k
+[
- Mac:
command
+k
+[
- Linux:
control
+k
+[
JSON before and after formatting:
Note: If starting with a JavaScript object and you want to maintain the JavaScipt object format, use the Indent command instead.
IndentX: Convert JSON to YAML
The Convert JSON to YAML command will try to convert a JSON document into YAML. As this feature is still very new, my personal experience with YAML is limited, this feature should be considered very alpha. Please submit any issues you may have.
JSON before and YAML after converting:
IndentX: Unindent
The Unindent command removes comments and whitespace to format content into one line.
IndentX: Report issue
Launches a browser window with the recommended issue structure.
How it works
IndentX uses regular expressions (probably more than it should) to identify tokens to:
- insert new lines
- increase indentation (begin tag/object)
- decrease indentation (end tag/object)
This technique has the following benefits:
- doesn't require valid strict XML or JSON (close enough should be good enough)
- preserves attribute order
Installation
Install using Package Control.
Issues
Known issues
There is a known issue when upgrading from previous versions of IndentX where sub modules aren't reloaded. The work-around for this is to restart Sublime Text.
A solution to this issue should be available soon.
Reporting issues
Please report any issues with this plugin with the following sample structure in the body:
Issue with command: {command name}
Sample input:
```
// provide sample here
```
Expected result:
```
// provide expected result here
```
Alternatively, the IndentX: Report issue command will launch a browser with this content pre-filled.