Форматирование кода после получения
Ситуация такая:
Прилетает код:
function($k){$d = $t->d('c', $k); $d .= $t->f($d); return $d;}
Как сделать так, чтобы он от форматировался сам сразу и стал таким:
function($k){
$d = $t->d('c', $k);
$d .= $t->f($d);
return $d;
}
Может быть и такой код:
function($k, int $t= 0) {$f = c::f($k);if (0 < $t) {if ((time() - $t) > filemtime($f)) {return unlink($f);}}return is_file($f);}
Что должно получиться:
function($k, int $t= 0) {
$f = c::f($k);
if (0 < $t) {
if ((time() - $t) > filemtime($f)) {
return unlink($f);
}
}
return is_file($f);
}
Как это делают многие другие сервисы (когда вставляем код, нажимаем кнопку и воаля - готово), как такой код написать, чтобы он сам автоматом форматирование проводил, когда запускается функция?
Я даже не могу врубиться, что для этого нужно и как это отследить. Вариант с:
func.replace(/{/g, "\{\n ").replace(/; /g, ";\n ").replace(/;}/g, ";\n}");
Работает только если будет 1 тело функции, потом он просто сливается построчно без нужных табуляций.
По хорошему бы, одной регуляркой решить вопрос, было-бы замечательно.
Ответы (2 шт):
Да у меня тоже только что-то в таком духе приходит. А для чего это нужно?
let myFunction = "function($k){$d = $t->d('c', $k); $d .= $t->f($d); return $d;}";
const neuFunction = myFunction.replace(/{/g, "\{\n ").replace(/; /g, ";\n ").replace(/;}/g, ";\n}");
console.log(neuFunction)
Все оказалось очень просто.
Берем это и радуемся:
console.log(js_beautify('function($k, int $t= 0) {$f = c::f($k);if (0 < $t) {if ((time() - $t) > filemtime($f)) {return unlink($f);}}return is_file($f);}'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-beautify/1.11.0/beautify.min.js"></script>