?

Log in

No account? Create an account
Winnie C++ Colorizer - Valse oubliée [entries|archive|friends|userinfo]
aruslan

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]
[ delicious | aruslan's delicious ]

Links
[Links:| Tags Profile Friends FG1 PP gamedev XNA FF Entries Comments Memories ]

Winnie C++ Colorizer [Dec. 3rd, 2005|04:15 pm]
aruslan
[Tags|]

http://dobrokot.nm.ru/WinnieColorizer.html

Наконец-то появилась тулза, которой не стыдно пользоваться.
Наиболее актуальная область применения - цитирование исходников в html-media типа LJ или домашних web-страничек.
Так что прошу любить и жаловать.

(Пост _winnie о Winnie C++ Colorizer)

В настоящий момент Winnie C++ Colorizer вполне пристойно обрабатывает почти все разумного вида исходники.
Есть некоторые проблемы (странный стиль у литерала 0, нет нумерации строк, очень хардкодный конфигуратор стилей исходников, незнание declspecов и т.п.), но всё это быстро обходится небольшими короткими хаками в BNF и в генераторе (программа доступна в исходных текстах).

_winnie использует велосипедный мини-spirit, что одновременно и забавно и поучительно.
Winnie C++ Colorizer довольно корректно воспринимает извращённый C++ - а это большая редкость (например, GeSHi - совсем никакой в этом отношении).

Можно подумать о хостинге этой тулзы на каком-нибудь сайте (типа Comeau Online).
Возможно, проще будет договориться с каким-нибудь rafb net paste, я думаю.

А товарищу _winnie - большое спасибо за заботу о юзерах ЖЖ :)
LinkReply

Comments:
[User Picture]From: __anubis__
2005-12-03 02:40 pm (UTC)
Круто, да!:) Винни малацца!!!
(Reply) (Thread)
[User Picture]From: _winnie
2005-12-03 03:22 pm (UTC)
^_^

>странный стиль у литерала 0
Ну, это префикс восьмеричной константы :)
(Reply) (Thread)
[User Picture]From: _winnie
2005-12-03 03:25 pm (UTC)
Основная feature lack, мне кажется, что нет поддежки html-стлией, просто используются теги <font color=...", <i></;i> <b></;b>
...
надо сделать.
(Reply) (Thread)
[User Picture]From: _winnie
2005-12-03 03:40 pm (UTC)
>странный стиль у литерала 0,
можно в настройках указать, что бы префиксы не раскашивать. 0 - восьмеричная константа.

(Reply) (Thread)
From: ex_snoobot367
2005-12-11 10:52 am (UTC)
а что такое "велосипедный мини-spirit" ?
(Reply) (Thread)
[User Picture]From: aruslan
2005-12-11 04:40 pm (UTC)
Посмотрите на исходники.
(Reply) (Parent) (Thread)
From: do_
2005-12-11 01:29 pm (UTC)
pol'zuyus' dlya etih celej redactorom vim i vpolne dovolen. a nekotorye prodolzhayut izobretat' velosiped
(Reply) (Thread)
[User Picture]From: aruslan
2005-12-11 04:40 pm (UTC)
А как мне поможет редактор vim при выкладывании шмотка C++ кода в LJ?
(Reply) (Parent) (Thread)
From: do_
2005-12-11 05:41 pm (UTC)
открываете нужный файл, выделяете нужный кусочек текста(или не выделяете, если нужен весь файл целиком) и набираете команду :TOhtml

после этого открывается окно со сгенерённым HTML-кодом. Его вы выделяете и копипастите либо в форму, либо в Semagic.

притом, так можно сгенерить подсветку не только для C++, но и почти для любого другого известного языка, поскольку vim идёт с большим комплектом файлов синтаксиса.

Естественно, должны быть правильно выставлены настройки в конфигурационном файле, что обычно имеет место для GUI-версии по дефолту, но может не иметь места для дефолтной консольной версии.
(Reply) (Parent) (Thread)
[User Picture]From: aruslan
2005-12-11 06:05 pm (UTC)
Спасибо, не знал.
Стоит его посмотреть, что скажете?
Честно говоря, у меня всё, что начинается на vi до сих пор вызывает острый приступ юниксовой юзабилитифобии в плане простых человеческих слабостей.
В vi можно открывать несколько документов и иметь простые радости типа multiedit или VAX?
(Reply) (Parent) (Thread)
From: do_
2005-12-12 07:35 am (UTC)
Только речь идёт о vim(Vi iMproved), а не о vi. У vi как такового возможностей довольно мало.

Открывать несколько документов -- можно. С multiedit сравнить не могу, поскольку никогда последним не пользовался.

Посмотреть, наверно, стоит, но предупреждаю сразу:
a)Он очень сильно отличается от обычных редакторов, управление полностью нестандартное(собственно, в общих чертах такое же, что и у vi)
b)Фич много, но узнать о наличии той или иной фичи как правило можно только лишь ежедневно читая help
c) Консольная версия -- вообще классическая юникс-программа с принципом: "если хочешь, чтоб что-то работало -- пропиши сначала в конфиге"
(например, в консольной версии vim есть поддержка мыши, но почти все работают без неё, потому что не знают, что её нужно прописать в конфиге!)

В общем, в любом случае ничто не мешает использовать только для генерации подсветки
(Reply) (Parent) (Thread)