Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > SynUniHighlighter и SynEdit > Супер-лайт версия?


Автор: Quadr0 15.5.2005, 00:13
...

Автор: Monty 15.5.2005, 18:05
Цитата(Vitalik @ 14.5.2005, 22:05)
А по поводу обрезания компонента, у меня появилась мысль: а что если действительно делать также и "обрезанные" версии компонента, раз уж они могут понадобиться?..

Я думал такое предложить, но это как-то мне излишнем показалось smile ... если меня это не будет устраивать, прийдется попатеть smile .... ну а если сделать лайт версию, то это не только будут некоторые, возможно даже не нужные телодвижения, но и проблема с совместимостью казалось бы совместимой схемы подсветки smile ...

... хотя, можно сделать ну просто супер лайт версию и в последствии с ней не мучатся smile ... например, можно сделать даже не используя xml, а ini ... или свой формат smile ... тут может быть куча идей smile .... я не знаком с принципом работы вашего компонента и поэтому, я в этом деле не советчик smile

... хотя кое что предложу. Надо сделать строгую структуру подсветки (а то можно взять любую и переименовать все атрибуты как хочешь, а она будет дальше работать ... вот только атрибутами светится). Тоесть работать не со своими атрибутами (имею ввиду, со стандартными), а с строго определенными. Их должно быть столько же сколько в стандартных подсветках компонента ... тогда можно будет применить свой тип хранения подсветок smile

Автор: Monty 15.5.2005, 18:20
т.е. сделать нечто стандартных подсветок SynHighlighter*.pas smile ... но только подгружаемых из своих строго типизированых схем smile ... в таком духе можно и написать свой генератор схем, который же будет создавать схемы. Я думаю надо отказаться в этом случае от XML парсера (аж 100кг весит). Если сделать свой тип хранения схем, то можно попробовать сэкономить в размере кода, а значит сделать его до боли простым и понятным smile ....

... вот сейчас, вспомнив ваши схемы и прикинул ... размер схем можно так сократить что ихний ишодный размер будет равен: "общее количество символов + 8 аттрибутов" - атрибуты в этом случае должны идти в строгом порядке как и группы слов ... именно группы слов, не будем их разбрасывать, а сразу впихнем в кучу, где опять же слова будем разделять символом "перенос каретки" или любым другим ... после или до групп слов будут идти уже стиль этих подсвечиваемых слов smile ... а именно, стиль и цвета, которые распространяются на всю группу и так допустим восемь групп smile ...... очень простой формат хранения схем smile .... только в нотепаде их будет тяжело редактировать, но у меня есть WinHex smile smile ......... вот мы и отказалис от ненужного xml smile
Добавлено @ 18:22
Просто я думаю, у вас ребята, проблемы в том, что вы не все обговорили между собой smile .... вот вам и недочеты и посей день ... досихпор вспоминаю аттрибут тест smile smile
Добавлено @ 18:26
Цитата(Monty @ 15.5.2005, 17:20)
будем разделять символом "перенос каретки"

в этом случае, человек открывший нашу схему в нотепаде, не так сильно испугается smile
Цитата(Vitalik @ 13.5.2005, 15:16)
Можешь прислать мне эту "нерабочую" подсветку?

сейцахс пришлю ... момент, уже присылаю ... и так smile ... берем любую подсветку, переименовываем ее, например, в ТХТ и пытаемся загрузить в этот, ну как его блин ... пытаемся загрузить в дизайнер smile .... лично я получил большой облом smile

Ну нельзя контролировать файл по его расширению smile ... яж notepad.exe легко переименую в notepad.hgl smile ... и защита естественно не сработает ... тогда отключите ее из-за ненадобности!

Автор: Quadr0 15.5.2005, 18:51
...

Автор: Monty 15.5.2005, 18:52
Quadr0 теперь кое-что проявляется smile .... ну а тэг, это излишне ... лучше уж тогда доп. пункт в меню добавить smile

Автор: Quadr0 15.5.2005, 19:03
...

Автор: Monty 15.5.2005, 19:15
Цитата(Quadr0 @ 15.5.2005, 18:03)
Не, как же без тэга. А если нам нужно загрузить подцветку просто в память, не присваивать пока её к TSynEdit. Ведь тоже может понадобиться узнать какого она формата!

Ну а для этого определенную функцию можно добавить smile ... вообще не понял о чем речь smile

Автор: Monty 16.5.2005, 21:52
Насчет улучшений я загнул smile smile ... ну, в смысле своих типизированных файлов ... в полне достаточно использовать INI smile
Код
[Identifier]
Procedure
Function
[Identifier/Font]
FC=32768
BC=-163840
Style=1

И так опишем все smile ... легко и просто smile ... что вы с XML делаете такого особенного я не знаю smile ... но INI вписывается прекрасно smile

Автор: Quadr0 16.5.2005, 22:10
...

Автор: Monty 16.5.2005, 22:15
Цитата(Quadr0 @ 16.5.2005, 21:10)
Речь об автоматическом определнии типа подцветки. Есть два формата: HGL (старый) и HLR (новый). Они сильно отличаются и подчас нужно знать какого формата данная подцветка.

Я и намекал на то чтобы, самому, а точнее кому нужно, сам бы это и написал ... а не грузить компонент ненужными функциями smile

Цитата(Quadr0 @ 16.5.2005, 21:10)
Хехе, а ты думаешь просто так, для понта XML юзается? Попробуй в Ini организовать НЕОГРАНИЧЕННУЮ вложенность сэтов, наборов слов и т.д. INI в данном случае будет ламерским решением (в правильном значении этого слова).

А я в самом начале сказал что мы делаем супер лайт версию smile ... если хотим. Но вот кому нужны эти самые "НЕОГРАНИЧЕННУЮ вложенность сэтов" не знаю ... в тех 311 подсветок, я не нашел ни одну дополнительную вложеность smile smile smile .... думаю долго мучились что бы это сделать? Но ради чего? smile ... ведь это не используется ... даже осмелюсь сказать, что вообще не используется smile

Вот я и предлагаю, сделать супер лайт версию ... уверен, ей будут пользоваться, возможно даже большинство, так как, то что сейчас есть в нормальном компоненте не используется .... но а то что было, оставить для "извращенцев" smile smile smile
Добавлено @ 22:16
Цитата(Monty @ 16.5.2005, 21:15)
тех 311 подсветок, я не нашел ни одну дополнительную вложеность

Хотя не все смотрел smile
Добавлено @ 22:17
Цитата(Quadr0 @ 16.5.2005, 21:10)
Попробуй в Ini организовать НЕОГРАНИЧЕННУЮ вложенность сэтов

И это можно! smile
Фантазия нужна просто smile smile smile
Добавлено @ 22:18
Но этот XML так раздувает файл smile

Автор: Vitalik 16.5.2005, 23:03
Цитата(Monty @ 15.5.2005, 18:52)
ну а тэг, это излишне
Цитата(Quadr0 @ 15.5.2005, 19:03)
Не, как же без тэга.
Ребят, а об чём вообще речь? А то я что-то потерял нить разговора... smile

Цитата(Quadr0 @ 16.5.2005, 22:10)
Речь об автоматическом определнии типа подцветки. Есть два формата: HGL (старый) и HLR (новый). Они сильно отличаются и подчас нужно знать какого формата данная подцветка.

Сейчас по ходу автоматическое определение формата итак присутствует! Просто в файлах нового формата (HLR) я в самый первый тег UniHighlighter пишу атрибут version. Таким образом, если этот атрибут пристутсвует, то это новая hlr-подсветка, а если отсутствует - старая hgl-ка smile
Цитата
<UniHighlighter version="1.8">
Цитата
<UniHighlighter>


Цитата(Monty @ 16.5.2005, 22:15)
Вот я и предлагаю, сделать супер лайт версию ...

Хм... А ведь, это, наверное, мысль!.. Скорость по идее должна значительно возрасти... Хм... Но, конечно, я в этом не уверен smile

Цитата(Monty @ 16.5.2005, 22:15)
уверен, ей будут пользоваться, возможно даже большинство, так как, то что сейчас есть в нормальном компоненте не используется

Преувеличивать, я думаю, не стоит! Как ты с помощью облегчённой версии сделаешь подсветку asm'a в Delphi или javascript в HTML? Я уже не говорю о совместной подсветке HTML/PHP/и т.д. и т.п. smile

Автор: Quadr0 16.5.2005, 23:36
...

Автор: Vitalik 17.5.2005, 14:14
Цитата(Quadr0 @ 16.5.2005, 23:36)
Vitalik, приведи пжалста сэмпл. Я торможу

Пожалста:
Цитата
<UniHighlighter version="1.8">
  <Info>
    <General Name="Delphi" Extensions="DPK PAS"/>
    ...

Цитата
<UniHighlighter>
<ImportantInfo>
  ******* Please read carefully *************************
  ...

Автор: Monty 17.5.2005, 18:35
Цитата(Vitalik @ 16.5.2005, 22:03)
Скорость по идее должна значительно возрасти... Хм... Но, конечно, я в этом не уверен

По идеи ина возрастет при считывании и при дальнейшей подсветки текста smile ... ведь кода будет минимум! smile


Цитата(Vitalik @ 16.5.2005, 22:03)
Преувеличивать, я думаю, не стоит! Как ты с помощью облегчённой версии сделаешь подсветку asm'a в Delphi или javascript в HTML? Я уже не говорю о совместной подсветке HTML/PHP/и т.д. и т.п.

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


Ладно. Пока вы будете думать, я буду пробовать в этом свои силы smile smile

Автор: Quadr0 17.5.2005, 18:58
...

Автор: Monty 17.5.2005, 19:09
Цитата(Quadr0 @ 17.5.2005, 17:58)
Цитата(Monty @ 17.5.2005, 18:35)
По идеи ина возрастет при считывании и при дальнейшей подсветки текста  ... ведь кода будет минимум!

Ну и как она возрастёт, если файл не уменьшится и парсится будет он тем же XML парсёром? Если только использовать Ini, как ты сказал, и то - врятли. Давайте не будем заниматься ерундой. smile

Сделаю, посмотрим smile ... ну а если ini будет тормозить, сделаю свой парсер smile

Автор: Quadr0 17.5.2005, 21:43
...

Автор: Monty 18.5.2005, 17:00
Цитата(Quadr0 @ 17.5.2005, 20:43)
И именно с него перешли на XML.

И меня это не очень радует:
Код
  <W>if</W> //было
<word item>if</word> //стало, забыл как точно, но это примерно

И это мне очень не нравится: 2+18 + возможные пробелы, помноженое на количество слов итого, схема подсветки не хило возрасла в размере + этот 100 килограмовый парсер ... еще добавить сочетание 300 подсветок переконвертированных в hlr формат ...

Автор: Quadr0 18.5.2005, 18:25
...

Автор: Vitalik 18.5.2005, 19:51
Цитата(Monty @ 17.5.2005, 18:35)
Ладно. Пока вы будете думать, я буду пробовать в этом свои силы

Самое правильное решение smile
Желаю тебе в этом деле удачи. Жалко, что мы пока не пользуемся sourceforge.net проектом... Тут было бы очень удобно уже сообща разрабатывать компонент...

Цитата(Quadr0 @ 17.5.2005, 21:43)
Кстати, раньше у компонента был свой парсёр. И именно с него перешли на XML.

Да, совершенно верно. Раньше в компонент был встроен свой парсер. Но он, во-первых, не совсем отвечал стандартам XML-я. А во-вторых, при добавлении новых пунктов в формат файла нужно было очень подсуетиться. Это было не очень наглядным и удобным... smile

Цитата(Quadr0 @ 17.5.2005, 21:43)
Я хоть болею, времени навалом

Да... Когда болеешь - времени много... Это, пожалуй, единственный плюс болезни smile
Выздоравливай!

Цитата(Monty @ 18.5.2005, 17:00)
И это мне очень не нравится: 2+18 + возможные пробелы, помноженое на количество слов итого, схема подсветки не хило возрасла в размере + этот 100 килограмовый парсер ...

Почему тебя так пугает размер файла? Сжимается он просто замечательно. А загружается - всё равно ведь мгновенно (на сколько я помню).
На самом деле ведь подсветка может "долго загружаться" из-за длительного построения дерева лексем... Когда этих лексем получается очень много - подсветка долго грузится.

Цитата(Quadr0 @ 18.5.2005, 18:25)
Что поделаешь, прогресс безжалостен . В смысле платить тоже придётся. И мне не кажется, что разница в вкорости будет ТАКОЙ большой.

Разницы в скорости я вообще не заметил. И только поэтому перешёл на этот парсер. Он действительно очень быстрый и продуманно написан. Мне его многие рекомендовали smile

Цитата(Quadr0 @ 18.5.2005, 18:25)
<word item>if<word>
можно с таким же успехом заменить на:
<w itm>if<w>

Я заменил
Цитата
  <W>if</W>
на
Цитата
  <word value="if"/>
не из-за смены парсера, а лишь для увеличения удобочитаемости и редактируемости подсветки в блокноте smile
Вот и всё.
Скорость здесь абсолютно не страдает, может даже наоборот... smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)