Форматирование кода после получения

Ситуация такая:

Прилетает код:

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 шт):

Автор решения: Ilia Brykin

Да у меня тоже только что-то в таком духе приходит. А для чего это нужно?

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)

→ Ссылка
Автор решения: FixiDens

Все оказалось очень просто.
Берем это и радуемся:

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>

→ Ссылка