Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Скрипт для упрощения инспекции кода

Anna | 15.06.2014 | нет комментариев
Мне доводится читать много кода. Различного. Начиная от ассемблерных простыней на много тысяч строк, заканчивая прикладными программами на DSL, про которые никто за границами предметной области не слышал. А обнаружить и настроить себе читалку на все случаи жизни отчего-то оказалось задачей нетривиальной. Одна не понимает cp866, иная не может подсвечивать файлы с неправильным растяжением, третья каждому отменна, но на двадцатой тысяче строк начинает досадно подтормаживать.

Благо, нет такой задачи, которую невозможно было бы решить небольшим скриптом на питоне. Я сделал скрипт, тот, что принимает параметром имя сорца, делает из него прекрасный HTML, кладет его во непостоянный файл, а файл данный отдает браузеру по умолчанию. То есть читалкой выступает браузер, тот, что берет на себя функции распознавания кодировки и рендера, а скрипт делает подсветку и форматирование кода.

image

Основная фича скрипта — это универсальная подсветка. Подсветка не синтаксическая, цвет слова получается из первого рандомного числа при засевании генератора хешем слова. То есть идентичные слова подсвечиваются идентично, различные — настоль различно, насколько повезет.

image

С одной стороны, получается непривычно пестро. С иной — дюже комфортно, что uint32_t на глаз отличается от int32_t.

Если при написании кода значимо, Дабы типы отличались, скажем, от имен переменных, то при чтении, так как код теснее был удачно написан, откомпилирован, а то и протестирован, больше значимо видеть нюансы. Подсветка хеша разрешает легко примечать рекурсивные конструкции, отслеживать метаморфозы переменной либо видеть повторяющиеся имена в различных конструкциях.

Еще одна фича разметки — выделение уникальных слов курсивным начертанием. Сама по себе уникальность ничего не говорит, но в определенном контексте может быть отличным предупреждением. Скажем, если имя локальной переменной уникально, то она не применяется. Если имя библиотечной функции уникально, то она не покрыта модульным тестом.

Третья фича необходима для того, Дабы слать злые письма автору кода. Номера строк в левой колонке сделаны ссылками на mailto по первому адресу, встречающемуся в тексте, а как правило это почта автора и есть. Там же в теме письма прописаны имя файла и номер строки, а в теле письма — сама строчка. Mailto открывает почтовый заказчик по умолчанию, никаких дополнительных настроек ему не нужно.

Еще одна мелочь — слабый градиент серого на фоне. Зависит от настройки монитора, безусловно, но в идеале его не должно быть приметно среди текста, но видно на пустом месте. Он немножко помогает ориентироваться при бесчисленных отступах.

Некоторые славные дополнения дарятся самим браузером. Скажем, увеличение и уменьшение текста, закладки, история просмотров. Не говоря теснее о знакомых жгучих клавишах и плагинах. Скажем, Awesome Screenshot разрешает снять кусок страницы и запостить его в Твитер, а Preparera Chinese — разбирать по словам китайские комментарии.

Сам скрипт доступен на Гитхабе под Апачевской лицензией, то есть его дозволено вольно брать, применять по назначению и без, переписывать и доделывать под свой вкус беспрепятственно.

Источник: programmingmaster.ru
Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB