![]() |
|
![]() ![]() ![]() |
|
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 6 Всего: 317 |
Пару дней назад переписывался с neutrino о подсветке, я тогда сидел за плотной теорией. Вдруг все заспешили модернизировать форум, ну и я решил побыстрому написать
![]() Это подсветка Java, по идее очень быстрая, 4кб кода за 63мс ИЕ, 120мс Мозилла, Опера - на моей машине. Весит мало <=10кб, но мало расшаренного кода, так что для каждого языка придется тащить 8-10кб таблиц. Задача повставлять Java код и увидеть Internal error... или "Сообщите модератору..." красными буквами. Все найденные баги постить сюда. Стили были предуманны в полном бреду в 2:00 ночи, Cheba сделает крассивые. Кто хочет открывает сорцы и пишет свои стили. Сейчас в подсветке основные ключевые слова, стандартные обьекты и т.п. можно в любой момент добавить. Тестим: http://files.vingrad.ru/Sardar/JavaParserR.htm ![]() Тестовые страницы: http://polygon.septima.com.ua/highlight/test_page.htm - вставляем код, жмем кнопку. Страница форума: http://files.vingrad.ru/Sardar/highlighter/index.php.htm - просто смотрим и постим сюда результаты. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
Работает, действительно, очень быстро.
|
|||
|
||||
sergejzr |
|
||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 35 Всего: 360 |
Теперь надо было бы проверить в "реальных" условиях
![]() ---------------------------------------------------- ![]()
http://forum.vingrad.ru/index.php?act=ST&f...ndpost&p=193915 --------------------------------------------------------------------------------- Извиняюсь! Там и нечему подсвечиваться ![]() Вот на это ушло 2 секунды на ИЕ и 1 секунда на Мозилле.
Если в коде присутствуют ошибки (я для теста попробовал вставить вместо ява-кода яваскрипт), то время достигает 13 секунд на подсветку кода аналогичной длинны ... Если хочешь, можно сделать что нибудь вроде http://www.iwi-iuk.org:8081/cgi-bin/vingra...ad.ru/index.php для тестов ![]() Для этого необходимо, чтобы твой код разбирался с форматом ХТМЛ (о чём мы уже говорили). Стили очень понравились ![]() Это сообщение отредактировал(а) sergej.z - 7.8.2004, 11:12 |
||||
|
|||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 6 Всего: 317 |
Нашел причину тормознутости ИЕ: у него медленные массивы. Решу использованием строк.
Левый код может быть медленным - тратиться много не нужных переходов, можно ускорить, но тогда таблицы будут гораздо больше. Под вечер перепишу код, вся подсветка стент быстрее. Заметте что она находит не закрытые коментарии и строки и предупреждает об этом ![]() sergej.zp подсветка работает с HTML кодом, правда решил предварительным приведением к тексту, иначе разраслись бы таблицы переходов. У меня твой код подсветился: ИЕ:203мс, Мозилла:297мс -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 1 Всего: 112 |
В опере код sergej.z - за 1,5 с
-------------------- С уважением, г-н Посол. |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
IE: 1,41s
|
|||
|
||||
Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: 5 Всего: 62 |
У меня в Мозилле код от sergej.z подсвечивается за 150-250 мс. 9КБ исходника - примерно 1,200 мс. Да и то из-за его кривости.
![]() Добавлено @ 14:21 Sardar, у тебя слова, которые должны быть keywords не подсвечивабтся почему-то. Я работаю с тем скриптом, который ты мне прислал. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 6 Всего: 317 |
Переписал код, теперь юзаю строки а не массивы как таблицы. Мысль была что строка это массив char, а не хешь таблица. Задумка удалась, увеличение скорости в два раза, за то Мозилла присела - падение скорости в 2 раза
![]() Cheba возьми скрипт отсюда. Всем кто тестирует: кидайте всякий мусор, надо получить Internal error, если ошибки не будет, то подсветка готова. Тестируем с массивами(медленная в ИЕ): http://files.vingrad.ru/Sardar/JavaParserR.htm Тестируем с строками(медленная в Мозилле): http://files.vingrad.ru/Sardar/JavaParserR2.htm -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
У меня скорость в ИЕ осталась почти прежней.
|
|||
|
||||
Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: 5 Всего: 62 |
Так. Я сделал три стиля для Явы. Прикрутил селектор стилля.
Все это и много другое ![]() Для тех, у кого скорость не сильно большая: Не нужно перезагружать страницу после выбора стиля. Немножко подождит и все будет пучком. ![]() |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 6 Всего: 317 |
Cheba классно сделанно, мне понравился Mello. Зря ты назвал файлы -ie и -moz народ может не понять
![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: 5 Всего: 62 |
Это и подразумевалось. Просто нужно было их как-то различать. Еслибы скрипт умел еще и имена функций выделять, то было бы вообще красиво. ![]() |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
Теперь надо выяснить какую подстветку внедрять в форум. У нас есть 2 практически законченные подстветки.
|
|||
|
||||
Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 6 Всего: 317 |
Непроблема, сейчас сделаю. Всем у кого есть пожелания на счет подсветки конкретного языка: сразу договариватесь что нужно ![]()
Мне кажется эта самая быстрая и возможно самая навороченная(с теоретической точки зрения еще и самая правильная ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
Интересно ее бы потестить не на отдельной странице, а на странице с форумом и сообщениями. |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 35 Всего: 360 |
Ну ладно.. ![]() ![]() Sardar молодец. Я всегда это говорил ![]() Надо хоть чего нибудь поставить, а то я жду не дождусь, когда этому конец придёт ![]() ![]() ![]() А то уменя уже следующая идея появилась... Кто знает UltraEdit, тот поймёт. Там очень сложная подсветка очень легко расширяется/меняется/добавляются языки. Если скачаете, то попробуйте PHP подсветить .... красота! Так вот, я нашёл его движок. Теоретически надо только переписать на Яваскрипт и перескочить ХТМЛ. По своему опыту могу выделить плюспункты этого решения в порядке релевантности:
Вообще то надо бы всё-таки объективно оценить на тему лёгкости расширения, гибкости итд. Всё таки скорость оказывается не так важна, так как кода на мегабайты на форуме нет ![]() Кстати мой вариант расширять ессно не проблема.. Sardar, у тебя время не правильно меряется. Попробуй выдавать так же начальное/конечное время, что бы можно было сверить. PS: Всё! у меня выходные озеро ждёт ![]() |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 6 Всего: 317 |
sergej.z а где ссылки на это чудо?
![]() Таблицы этой подсветки генерятся flex'ом(см. на gnu.org). Так что имея файл описания флекса можно создать подсветку. Если названный движок генерит C код, то его не сложно перенести в JS.
Уже заметил ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 6 Всего: 317 |
Всем: давайте начнем активно тестить код или ставим что есть.
Что нового:
Страница форума: http://files.vingrad.ru/Sardar/highlighter/index.php.htm - просто смотрим и постим сюда результаты. sergej.z прикрути код к своему вьюверу. Классно он у тебя получился ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
только не вместо, а параллельно ![]() |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 6 Всего: 317 |
Все подсветки до кучи:
1) код написанный neutrino - заточен под язык - вроде от него отказались 2) [K]Syntax - код написан Cheba - заточен под язык - вороде от него тоже отказались 3) SHighlighter - мой код, не заточен под конректыные языки но есть глупости - от него отказываемся 4) код написанный sergej.z - сейчас стоит в его вьювере, очень быстрый, "не ярко разукрашен" 5) мой последний код - быстрый, широкие возможности в раскраске. Последние два можно реально использовать, но характеристики у скриптов разные: мой менленнее(на микросекунды?), но более яркий ![]() Возможно мы будем использовать еще третий вариант на движке UltraEdit'a если сумеемего перенести ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 79 Всего: 290 |
широкие возможности в раскраске за счет того, что алгоритм умный? У какого кода база слов для раскраски весит меньше? у 4 или 5 ? |
|||
|
||||
Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: 5 Всего: 62 |
Маленькая поправочка. http://polygon.septima.com.ua/highlight/vingrad.htm |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 6 Всего: 317 |
Да, по сути я режу текст на лексемы и обрамляю их в теги <span>. Лексемы могут быть самыми разными, какие есть в языке. Например для Java только добавил новую лексему: функция. Подсветка весит: highliter_core.js(4.5kb) - расшаренный код, lang_java.js(7kb) - модуль с данными языка Java. Cheba по твоей ссылке подсветка не запускается. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: 5 Всего: 62 |
|
|||
|
||||
sergejzr |
|
||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 35 Всего: 360 |
Привет!
Вот подогнал для viewer: http://www.iwi-iuk.org:8081/cgi-bin/vingra...showtopic=27306 Не могу понять, почему там стиль немного отличается от вашего, ведь это по идее копия ![]() Возможно, что я не нашёл всех изменений. Посмотрите на досуге ![]() ![]() Всё же, по моему следовало бы использовать интерфейс отсюда: http://www.iwi-iuk.org:8081/cgi-bin/vingrad/test3.php3 Посмотрите, как там сгенерирован ХТМЛ. Остаётся только написать функцию highlight(ID,lang); Да и к тому же помере загрузки всё же лучше подсвечивать ИМХО. Так же предлагаю этот интерфейс на рассмотрение. Его уже можно было бы встроить независимо от конкретной имплементации подсветки. Елси раньше Хтмл был примерно такой
То теперь следовал бы:
Где java0-однозначное ID, а java - название языка. Так же предлагаю сокращения для других языков: cpp delphi vb csharp asm perl php asp java javascript sql Осталось заиклюдить файл подсветки. ВСЁ! ![]() ПС: Ребята, а что с оперой творится? ППС: А, понял там тэги заглавными буквами т.е <BR/> Это сообщение отредактировал(а) sergej.z - 11.8.2004, 00:11 |
||||
|
|||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: нет Всего: 232 |
во-во ![]() -------------------- ![]() |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 6 Всего: 317 |
Надо переопределить #CODE, там должен быть код из #outp. Я еще в ближайшие 4 дня не смогу делать подсветку, ездил на море, гости, шашлык ![]() После быстро наверстаю время. sergej.z большие спасибы за вытягивание этой подсветки, от всей души плюс ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
sergejzr |
|
||||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 35 Всего: 360 |
Глянь ![]() ![]()
Тебе спасибо ![]() ![]() ПС: А вот у меня не получается больше плюсы ставить.. Не знаю почему .. ![]() ОФФТОП:
Как у вас там море? А погода? Мы тоже хотели в ваши края заскочить. А то у нас море холодное и ветер... (Хотя в принципе море у нас одно ![]() |
||||||
|
|||||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Обсуждение форума | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |