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

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


{  123{123}123}
[1,2,3,4,5]
[{name:"test"},{name:"test"},{name:"test"},{name:"test"},{name:"test"},]
Date: Mon, 17 Sep 2018 09:08:59 GMT

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

123
123123123
123 nginx_1 | 2018-09-17T08:18:57 172.16.2.1 - - [17/Sep/2018:08:18:57 +0000] "GET /assets/common/components/ui/ HTTP/2.0" 206 34589 "Mozilla/5.0" "-" 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; }