Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Подсветка синтаксиса в trac (число прочтений - 12449 )
miksuny4
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 15
Зарегистрирован: 05. Декабря 2006
Подсветка синтаксиса в trac
25. Апреля 2007 :: 12:50
Печать  
Есть лексер для подсветки синтаксиса 1С в trac с использованием pygments. Может кому и пригодится.

Что нужно:

trac версии 0.10.4 (у меня стоит 0.10.4dev, но и на 0.10.4 должен работать)
http://trac.edgewall.org/wiki/TracDownload

установить библиотеку pygments версии 0.7.1
http://pygments.org/download/

установить плагин для трака TracPygmentsPlugin
http://trac-hacks.org/wiki/TracPygmentsPlugin

Далее, в файле C:\Python24\Lib\site-packages\trac\mimeview\api.py
в KNOWN_MIME_TYPES = {} добавляем строчку типа:
Код
Выбрать все
'text/x-1s':		  ['1s', 'prm', '1S', 'PRM'] 



Из прилагающегося архива копируем файл lexer.py в каталог
C:\Python24\Lib\site-packages\Pygments-0.7.1-py2.4.egg\pygments

файл 1S.py копируем в каталог

C:\Python24\Lib\site-packages\Pygments-0.7.1-py2.4.egg\pygments\lexers.

В файле py
добавляем строчку типа:
Код
Выбрать все
'OneSLexer': ('pygments.lexers.1S', '1S', ('1s',), ('*.1s', '*.prm', '*.1cpp'), ('text/x-1s',)) 



Запускаем файл py, чтобы pygments подхватил наш лексер, вот на этом, кажется и все.

Теперь в траке должна работать подсветка синтаксиса 1С для файлов с расширениями '*.1s', '*.prm', '*.1cpp'.
Должна также работать такая конструкция в вики:
Код
Выбрать все
{{{
#!1s
...
Код на языке 1С
...
}}}
 



Пользуйтесь, на здоровье (если кому это надо).
  

syntax-highlighting.zip ( 10 KB | Загрузки )
Наверх
 
IP записан
 
wlad
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 10. Мая 2007
Re: Подсветка синтаксиса в trac
Ответ #1 - 11. Мая 2007 :: 13:07
Печать  
Поставил, но явно наблюдаю траблы с кодировкой.

Нельзя ли посмотреть небольшой скрин того, как оно должно выглядеть?
И ещё вопросы - в какой кодировке база? не ставилось ли патчей на питон и трек?
  
Наверх
 
IP записан
 
miksuny4
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 15
Зарегистрирован: 05. Декабря 2006
Re: Подсветка синтаксиса в trac
Ответ #2 - 11. Мая 2007 :: 13:27
Печать  
wlad писал(а) 11. Мая 2007 :: 13:07:
Поставил, но явно наблюдаю траблы с кодировкой.

Нельзя ли посмотреть небольшой скрин того, как оно должно выглядеть?
И ещё вопросы - в какой кодировке база? не ставилось ли патчей на питон и трек?


База в кодировке windows-1251, как есть. Патчей на питон и трак не ставил. Возможно, стоит в trac.ini прописать:

Код
Выбрать все
[trac]
default_charset = windows-1251
 



Скрин прилагается.
  

trac.JPG ( 119 KB | Загрузки )
trac.JPG
Наверх
 
IP записан
 
wlad
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 10. Мая 2007
Re: Подсветка синтаксиса в trac
Ответ #3 - 11. Мая 2007 :: 13:34
Печать  
miksuny4 писал(а) 11. Мая 2007 :: 13:27:
База в кодировке windows-1251, как есть. Патчей на питон и трак не ставил.


Ясно, спасибо, так и предполагал. У меня utf-8 стоит. Не пашет подсветка.
Буду копать.

За скрин большое спасибо.
  
Наверх
 
IP записан
 
miksuny4
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 15
Зарегистрирован: 05. Декабря 2006
Re: Подсветка синтаксиса в trac
Ответ #4 - 11. Мая 2007 :: 13:57
Печать  
wlad писал(а) 11. Мая 2007 :: 13:34:
miksuny4 писал(а) 11. Мая 2007 :: 13:27:
База в кодировке windows-1251, как есть. Патчей на питон и трак не ставил.


Ясно, спасибо, так и предполагал. У меня utf-8 стоит. Не пашет подсветка.
Буду копать.

За скрин большое спасибо.


А для английских синономов подсветка работает? Если да, то надо копать в сторону lexer.py который лежит в Pygments. У меня была проблема в том, что сам исходный текст модуля передается как юникод (или конвертируется), а вот файл с определениями синтаксиса в win-1251.
lexer.py его считывает, компилирует регулярные выражения, а в юникод не переводит. И, соответственно, латиница распознается, а вот кирилица никак. Специально для этого добавил в lexer.py перевод в юникод:
Код
Выбрать все
from trac.util.text import to_unicode
...
 t = tdef[0]
 t = to_unicode(t)
#rex = re.compile(t, rflags)
rex = re.compile(t, rflags)
 

  
Наверх
 
IP записан
 
wlad
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 10. Мая 2007
Re: Подсветка синтаксиса в trac
Ответ #5 - 11. Мая 2007 :: 14:04
Печать  
miksuny4 писал(а) 11. Мая 2007 :: 13:57:
А для английских синономов подсветка работает?


Да, с ними порядок, подсвечиваются правильно.
А вот кириллица вся идёт красным цветом.
  
Наверх
 
IP записан
 
wlad
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 10. Мая 2007
Re: Подсветка синтаксиса в trac
Ответ #6 - 11. Мая 2007 :: 14:06
Печать  
То есть нет, не вся. Текст в кавычках и комментарии тоже подсвечивается корректно.
Остальное - красным.
  
Наверх
 
IP записан
 
miksuny4
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 15
Зарегистрирован: 05. Декабря 2006
Re: Подсветка синтаксиса в trac
Ответ #7 - 11. Мая 2007 :: 14:07
Печать  
wlad писал(а) 11. Мая 2007 :: 14:04:
miksuny4 писал(а) 11. Мая 2007 :: 13:57:
А для английских синономов подсветка работает?


Да, с ними порядок, подсвечиваются правильно.
А вот кириллица вся идёт красным цветом.

ну вот, смотри пост выше правленный. Ты может lexer.py не заменил в pygments? И в этом все и дело?
  
Наверх
 
IP записан
 
wlad
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 10. Мая 2007
Re: Подсветка синтаксиса в trac
Ответ #8 - 11. Мая 2007 :: 14:52
Печать  
miksuny4 писал(а) 11. Мая 2007 :: 14:07:
Ты может lexer.py не заменил в pygments? И в этом все и дело?


Нет, что с заменой, что без замены.

А вот лексер конвертнул в utf-8 и заработало. Что самое удивительное, но до этого десять раз проделывал эти же манипуляции.
  
Наверх
 
IP записан
 
wlad
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 10. Мая 2007
Re: Подсветка синтаксиса в trac
Ответ #9 - 11. Мая 2007 :: 15:00
Печать  
Лексер в смысле 1S.py
  
Наверх
 
IP записан
 
wlad
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 10. Мая 2007
Re: Подсветка синтаксиса в trac
Ответ #10 - 11. Мая 2007 :: 15:04
Печать  
Упс, сорри, не глянул правленный пост. Но всё равно, без конвертации в utf не работало.
Странно вообще.
  
Наверх
 
IP записан
 
miksuny4
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 15
Зарегистрирован: 05. Декабря 2006
Re: Подсветка синтаксиса в trac
Ответ #11 - 11. Мая 2007 :: 15:10
Печать  
Я тоже сначала конвертил 1SLexer.py в юникод, но наверное как-то неправильно конвертил  Смех, и поэтому в конце концов поправил lexer.py. Выложи, плиз, 1SLexer в юникоде.
  
Наверх
 
IP записан
 
wlad
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 10. Мая 2007
Re: Подсветка синтаксиса в trac
Ответ #12 - 11. Мая 2007 :: 15:15
Печать  
miksuny4 писал(а) 11. Мая 2007 :: 15:10:
Я тоже сначала конвертил 1SLexer.py в юникод, но наверное как-то неправильно конвертил  Смех, и поэтому в конце концов поправил lexer.py. Выложи, плиз, 1SLexer в юникоде.


Да я просто через iconv сконвертил.
  

1S_py.zip ( 4 KB | Загрузки )
Наверх
 
IP записан
 
miksuny4
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 15
Зарегистрирован: 05. Декабря 2006
Re: Подсветка синтаксиса в trac
Ответ #13 - 11. Мая 2007 :: 15:17
Печать  
Этот бы лексер как плагин подключить - есть вроде в pygments такая возможность. тогда не надо бы было столько ручками править...
  
Наверх
 
IP записан
 
wlad
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 10. Мая 2007
Re: Подсветка синтаксиса в trac
Ответ #14 - 11. Мая 2007 :: 16:06
Печать  
[quote author=miksuny4 link=1177505462/0#13 date=1178896668]Этот бы лексер как плагин подключить - есть вроде в pygments такая возможность. тогда не надо бы было столько ручками править...[/quote]

1S.py ? В mappings не обязательно добавлять

[code]
'OneSLexer': ('pygments.lexers.1S', '1S', ('1s',), ('*.1s', '*.prm', '*.1cpp'), ('text/x-1s',)) [/code]

Просто его запустить, он сам всё перечитает. Просто 1S.py в каталог к лексерам скопировать и _mappings.py запустить.

А в треке я в конфиг mimetype добавил, соответственно, исходники править тоже не требуется.
Плюс - при обновлении не нужно ходить и руками опять подправлять.
Минус - нужно править в конфиге каждого проекта.
  
Наверх
 
IP записан
 
miksuny4
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 15
Зарегистрирован: 05. Декабря 2006
Re: Подсветка синтаксиса в trac
Ответ #15 - 11. Мая 2007 :: 17:01
Печать  
[quote author=wlad link=1177505462/0#14 date=1178899597][quote author=miksuny4 link=1177505462/0#13 date=1178896668]Этот бы лексер как плагин подключить - есть вроде в pygments такая возможность. тогда не надо бы было столько ручками править...[/quote]

1S.py ? В mappings не обязательно добавлять

[code]
'OneSLexer': ('pygments.lexers.1S', '1S', ('1s',), ('*.1s', '*.prm', '*.1cpp'), ('text/x-1s',)) [/code]

Просто его запустить, он сам всё перечитает. Просто 1S.py в каталог к лексерам скопировать и _mappings.py запустить.

А в треке я в конфиг mimetype добавил, соответственно, исходники править тоже не требуется.
Плюс - при обновлении не нужно ходить и руками опять подправлять.
Минус - нужно править в конфиге каждого проекта.
[/quote]
Ну значит я тучу лишней работы сделал. :)

А насчет того, чтобы в каждом конфиге mimetype править - есть же где-то в /python24/share/trac config.ini, который используеьтся как дефолтный. Прописываешь там значения одинаковые для всех проектов - типа
default_charset=windows-1251 и все. ;)
  
Наверх
 
IP записан
 
miksuny4
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 15
Зарегистрирован: 05. Декабря 2006
Re: Подсветка синтаксиса в trac
Ответ #16 - 11. Мая 2007 :: 17:11
Печать  
как, кстати, строчка mime-type выглядит?
  
Наверх
 
IP записан
 
wlad
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 10. Мая 2007
Re: Подсветка синтаксиса в trac
Ответ #17 - 11. Мая 2007 :: 17:30
Печать  
miksuny4 писал(а) 11. Мая 2007 :: 17:11:
как, кстати, строчка mime-type выглядит?


Полностью:
Код
Выбрать все
mime_map = text/x-1s;charset=cp1251:1s:mdp:ord:frm 



Ещё пришлось править svn браузер, чтобы там mime_map цеплялся (было только из svn properties).
  
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Подсветка синтаксиса в trac
Ответ #18 - 16. Июня 2007 :: 16:21
Печать  
спасибо, я делал, но у меня был беднее)

кстати, 11-дев еще никто не пробовал ставить?
я хочу перейти, одновременно с переходом на питон 2.5
сейчас все вертится на 2.4
  
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Подсветка синтаксиса в trac
Ответ #19 - 16. Июня 2007 :: 16:23
Печать  
и еще, никто не смотрел как бы прикрутить подсветку при просмотре диффа?
  
Наверх
 
IP записан
 
wlad
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 10. Мая 2007
Re: Подсветка синтаксиса в trac
Ответ #20 - 16. Июня 2007 :: 20:45
Печать  
Pelmen писал(а) 16. Июня 2007 :: 16:23:
и еще, никто не смотрел как бы прикрутить подсветку при просмотре диффа?


В смысле в changeset? Она там показывается, только mime-тип файла должен быть указан через propset в svn.
Либо нужно слегка пропатчить трек (trac/versioncontrol/web_ui/changeset.py, функция _content_changes), т.к. он (changeset.py) не хватает mime-тип из конфига.
  
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Подсветка синтаксиса в trac
Ответ #21 - 16. Июня 2007 :: 20:53
Печать  
wlad писал(а) 16. Июня 2007 :: 20:45:
В смысле в changeset? Она там показывается, только mime-тип файла должен быть указан через propset в svn.
Либо нужно слегка пропатчить трек (trac/versioncontrol/web_ui/changeset.py, функция _content_changes), т.к. он (changeset.py) не хватает mime-тип из конфига.

да, я имел в виду трак, а не свн.
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Подсветка синтаксиса в trac
Ответ #22 - 20. Июня 2007 :: 10:06
Печать  
Pelmen писал(а) 16. Июня 2007 :: 16:21:
спасибо, я делал, но у меня был беднее)

кстати, 11-дев еще никто не пробовал ставить?
я хочу перейти, одновременно с переходом на питон 2.5
сейчас все вертится на 2.4


У нас ребяты подняли Trac 11-дев, для проекта по созданию Липецкого клиента p2p сетей, точнее он уже не Липецкий, а пошел по городам, но разработчики Липецкие.
Насколько я знаю, основные проблемы могут быть связаны с хостингом, а так по новостям dev релиз считается условно стабильным

http://svn.flylinkdc.ru/trac/
Контакты есть внизу, но основной это Павел Пименов aka PPA.
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Подсветка синтаксиса в trac
Ответ #23 - 20. Июня 2007 :: 12:09
Печать  
да я уже сам поставил, проверил дома
пока очень мало плагинов, правда есть все что я использую, кроме DateField
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Подсветка синтаксиса в trac
Ответ #24 - 24. Июля 2007 :: 07:39
Печать  
Просвятите мое невежество : для чего используется Trac ?
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
wlad
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 12
Зарегистрирован: 10. Мая 2007
Re: Подсветка синтаксиса в trac
Ответ #25 - 24. Июля 2007 :: 07:44
Печать  
Коротко и ясно: http://ru.wikipedia.org/wiki/Trac

Цитата:
Trac использует минималистичный веб-интерфейс, основанный на технологии wiki, и позволяет организовать перекрёстные гиперссылки между базой данных зарегистрированных ошибок, системой управления версиями и wiki-страницами. Это даёт возможность использовать Trac в том числе и как веб-интерфейс для доступа к системе контроля версий subversion

  
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Подсветка синтаксиса в trac
Ответ #26 - 24. Июля 2007 :: 08:48
Печать  
кстати, 11-й уже на пару недель затянули и непонятно когда точно
  
Наверх
 
IP записан
 
Роман
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 1
Зарегистрирован: 20. Мая 2010
Re: Подсветка синтаксиса в trac
Ответ #27 - 20. Мая 2010 :: 13:26
Печать  
miksuny4 писал(а) 11. Мая 2007 :: 13:27:
База в кодировке windows-1251, как есть. Патчей на питон и трак не ставил. Возможно, стоит в trac.ini прописать:

Код
Выбрать все
[trac]
default_charset = windows-1251
 



Скрин прилагается.


Добрейшего дня уважаемому сообществу.
У нас в отделе намечается большая неразбериха среди программеров по 1С... Увидел что вы оддерживаете Белорусскую конфу...
Можно ли пообщаться поподробнее по настройке в сети сервера?

ЗЫ заранее звиняюсь за мелкий оффтоп. Но статус в ЛС не позволяет писать. ацко - СимнаДцыть4519....

ЗЗЫ Ох и некромант же... Некрофилушко йа ((( Плачущий
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать