Один симпатичный принтер "чтобы управлять ими всеми"
Я ищу инструмент, который может красиво напечатать (AKA Tidy или Beautify) исходный код на максимально возможном количестве языков. Те, которые мне особенно интересны, включают:
- Джава
- JSP
- HTML
- JavaScript
- SQL
- JSON
- XML
В идеале инструмент должен иметь возможность обновлять исходные файлы на месте и иметь возможность форматировать более одного файла за раз. Было бы здорово, если бы он мог форматировать файлы, содержащие несколько языков (например, JSP, содержащий исходный код HTML, Java и JavaScript), но это, вероятно, требует много.
Я уже нашел коммерческий инструмент, который, кажется, охватывает много языков, но бесплатный был бы еще лучше:)
Кстати, я знаю, что есть симпатичный принтер, доступный для большинства языков, но я ищу "универсальный магазин".
Ура, Дон
5 ответов
Для Haskell у меня есть это в ~/bin/pp.hs
:
#!/usr/bin/env runhaskell
module Main (main) where
import Language.Haskell.Parser
import Language.Haskell.Pretty
import System.Environment
pp f = case parseModule f
of ParseOk m -> prettyPrint m
a -> show a
main = do args <- getArgs
mapM_ (>>= putStrLn . pp) $
if null args then [getContents] else map readFile args
В Vim, :set equalprg=~/bin/pp.hs
, выберите регион, нажмите =
и бум, это становится претенциозным.
Хорошо, это не очень общее. Но я полагаю, что у меня есть небольшой шанс помочь кому-нибудь, если я добавлю это сюда.
Я использую Vim, чтобы делать это все время. Он не очень хорошо справляется с HTML, но с остальными. Команды Vim легко использовать для автоматизации работы с несколькими файлами.
В Википедии есть большой список. Мне интересно посмотреть, какой консенсус может возникнуть здесь, хотя.
Несколько работают с несколькими языками; например
PrettyPrinter, (открытый исходный код для всех языков программирования)
UniversalIndentGUI (графический пользовательский интерфейс для любого красивого принтера с предварительным просмотром для настроек форматирования)
prettyprinter.de, (онлайн-украшение для PHP, Java, C++, C, Perl, JavaScript, CSS)
Emacs - мой личный фаворит. Существуют дополнения, которые позволяют использовать практически любой язык.
Я использую UltraEdit и нахожу, что это в целом довольно хорошо. Это не бесплатно, но и не так дорого.