Перейти к контенту

PHP CodeSweeper


Рекомендуемые сообщения

Никто случайно не натыкался на тулзу, чтобы стилизировать PHP-код?

 

Т.е. на входе имеем код, без отсупов, а если и есть - то беспорядочные, непонятно как расставлены переходы строк и вообще - читать код невозможно, суём в тулзу и получаем аккуратный и красивый код, в R&K стиле желательно.

 

PS: Сам написал какой смог - теперь боюсь попробывать скормить ему проблемный файл.

Ссылка на комментарий
Поделиться на других сайтах

Интерпретатор проще - там все отсутпы повырезал и интерпретируй скока влезет :-)
Ссылка на комментарий
Поделиться на других сайтах

Интерпретатор проще - там все отсутпы повырезал и интерпретируй скока влезет :-)

Гениально..

 

Интерпретатор - транслятор, способный параллельно переводить и выполнять программу, написанную на алгоритмическом языке высокого уровня.

Ссылка на комментарий
Поделиться на других сайтах

Написать такую штуку наверно как написать свой интерпретатор :D

Ничего сложного.

 

1. Разбить на строки, удалить пустые строки.

2. Бежим по строкам, сохраняя текущий отступ. Если предыдущая строка содержала "{" - увеличиваем его. Если текущая строка - "}", то уменьшая. "}" раскидываем по отдельным строкам. Если текущая строка содержит "function" - вставляем n пустых строк перед ней. Сложно, возможно, будет выравнять операторы присваивания. И так далее, ещё несколько действий по анализу кода...

 

Никто случайно не натыкался на тулзу, чтобы стилизировать PHP-код?

Я попробовал прогнать по сорцам GNU indent - отлично форматирует код, хотя он предназначен для C и, наверное, с PHP-specific особенностями не справится (правда, ни одной PHP-specific особенности кода я навскидку не вспомнил). Кроме того, у indent'а огромное количество опций для настройки форматирования кода. Гуёвые морды к нему тоже есть.

 

Ну и вот ещё:

http://formatter.gerbenvv.nl/version3/index.php?lang=en - онлайн.

http://www.prettyprinter.de/index.php - онлайн.

http://www.textrush.com/code-indenter.htm - платный.

Ссылка на комментарий
Поделиться на других сайтах

2SphinX, всё несколько сложнее.

 

Например в конструкции <<<EOF не надо ничего форматировать... А вместо EOF можно написать всё, что душе угодно..

Ссылка на комментарий
Поделиться на других сайтах

Ну конечно может и не так тяжело, но все равно. Сложные синтаксические консрукции не так уж и просто разобрать, а если там еще и синтаксическая ошибка?

 

См. код:

<?
function test($test="{"){if (1){while(1){ echo "}{";?>}{ello!<?}echo "{$test}"}}

Ну это так примерно.

Ссылка на комментарий
Поделиться на других сайтах

это всё подойдёт если текущий код вообще без отступов, стеной.

А если уже остилизован? Тогда нужно ещё и все начальные отступы удалять.

Ссылка на комментарий
Поделиться на других сайтах

Удалять впринципе - не так сложно, нужно побайтное просто пропустить код в цикле и лишнее постирать, что мой COdeSweeper И делает.

 

Но мой вариант требует ещё отладки, т.к. есть сложные куски кода, который он неверно понимает.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.