Автоматическое выравнивание json, lua, js, css, html, c++ кода.

{
	"in": {
	"rc": "startFight",
	"result": { "coop": false, "fightId": "6301-1516702824", "fightIndex": 1, "fightType": "mission", "missionId": 1512
		"test":{}
	},
	"sq": "startFight;1",
	"uniqid": "1516702824;1"
	},
	"out": {
	"_cid": "6301",
	"err": "ERROR_START_FIGHT_NOT_ENOUGHT_MONEY",
	"rs": false,
	"tm": 1516702824,
	"uniqid": "1516702824;1"
	}
	}


{  123{123}123}


[extra]:after{content: attr(extra);color: rgba(0,0,0,0.3);}

123
123123123
123 URL test https://www.google.ru/search?newwindow=1&dcr=0&source=hp&ei=dqhoWsrHHYGwsQHp7YKwBw&q=test&oq=test& function getCaret(editableDiv) { var caretPos = 0, sel, range; if (window.getSelection) { sel = window.getSelection(); if (sel.rangeCount) { range = sel.getRangeAt(0); if (range.commonAncestorContainer.parentNode == editableDiv) { caretPos = range.endOffset; } } } else if (document.selection && document.selection.createRange) { range = document.selection.createRange(); if (range.parentElement() == editableDiv) { var tempEl = document.createElement("span"); editableDiv.insertBefore(tempEl, editableDiv.firstChild); var tempRange = range.duplicate(); tempRange.moveToElementText(tempEl); tempRange.setEndPoint("EndToEnd", range); caretPos = tempRange.text.length; } } return caretPos; }