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


Автор: Vitalik 23.10.2005, 02:11
Внимание!

Наконец-то вышла новая версия UniHighlighter 2.0 Alpha! smile

Основные вехи изменений (ссылки даю на темы этого форума):
  • Кардинально модернизирован дизайнер, можно сказать переписан заново (читаем http://forum.vingrad.ru/index.php?showtopic=52597)
  • Добавлено свойство "мультитеговости" для диапазонов (читаем http://forum.vingrad.ru/index.php?showtopic=59395)
  • Компонент стал использовать стандартный делфийский парсер TXmlDocument (читаем http://forum.vingrad.ru/index.php?showtopic=59465)
  • Поддержка хранения правил CodeFolding'а (при использовании SynEdit из http://sf.net/projects/mystix/) (читаем http://forum.vingrad.ru/index.php?showtopic=53621)
  • Существенно изменён формат файла (читаем http://forum.vingrad.ru/index.php?showtopic=60404)
  • Появилась возможность хранения различных цветовых схем в подсветке (в релизе возможно будет исключена)
  • Полностью изменён механизм перевода компонента (окончательный вариант еще не определён)
  • Реализация "правил-ссылок" пока убрана из компонента (читаем http://forum.vingrad.ru/index.php?showtopic=36256)
  • Дизайнер вынесен из пакета компонента и поставляется отдельным exe-шником (неокончательное решение)
  • Кардинально переписаны многие места компонента, исправлено море багов.
  • Написаны конвертеры из старых подсветок в новые (но компонент всё равно может загружать старые форматы)

Скачать новую версию компонента можно здесь: http://www.unihighlighter.com/index.php?download=unihighlighter
Распространяется в трёх форматах: ZIP, RAR архивы и EXE инсталляция (с установкой в Delphi)
Для каждого из трёх форматов есть Full и Lite версии отличающаеся содержимым.

Информацию по установке компонента настоятельно рекомендую прочитать http://www.unihighlighter.com/index.php?showpage=install&lang=ru!

Автор: ORMADA 17.3.2006, 07:46
не знаю может не в эту категорию вопрос но всё же задам
я использую старую версию скаченную ещё отсюда http://www.delphist.com/UniHighlighter.html
использую минимально(html подсветка как основная + теги формируемые во время работы)
вопрос такой есть ли смысл мне переходить но новую версию на UniHighlighter 2.0 Alpha к примеру
и какие возможности/баги/фичи при переходе я получу
сильно ли измениться размер exe ?

Автор: Quadr0 17.3.2006, 08:50
...

Автор: ORMADA 17.3.2006, 10:49
пасиба за ответ!
могу посоветовать SimpleXML http://mv.rb.ru/ у него в юсесах только Windows, SysUtils, Classes;

Автор: bolex 12.5.2006, 10:31
Приветствую всех!

Увидел я в инете ссылочку на хайлайтер - зашел на сайт, скачал альфу 2.0, скачал Old highlighters pack (311 hgls), поставил под Дельфи7 - запускаюсь, загружаю HTML файл - получаю экспшен. 

Запускаю дизайнер расцветок - получаю пачку эксепшенов. Почитал форум - увидел рекомендацию использовать дизайнер от 1.8. 

Вопрос - есть ли шанс, что 2.0 в ближайшее время станет стабильным ? За последние полгода - никаких подвижек вроде не наблюдалось ....

Не хочется связываться с альфой в своем проекте .... 

Автор: Vitalik 16.5.2006, 13:13
Цитата(bolex @  12.5.2006,  09:31 Найти цитируемый пост)
Вопрос - есть ли шанс, что 2.0 в ближайшее время станет стабильным ? За последние полгода - никаких подвижек вроде не наблюдалось ....

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

Автор: Vitalik 17.5.2006, 21:47

M
Vitalik
Обсуждение возможности написания UniHighlighter под UniSynEdit выделено в тему "UniHighlighter и UniSynEdit (Unicode SynEdit)"
 

Автор: Sep. 10.6.2006, 14:46
Баг:
Загружаю подсветку через SynUni.LoadFromFile , все работает, но в SynUni.Filename пусто.  

Автор: Vit 12.6.2006, 02:12
Добавить строчку надо:

procedure TSynUniSyn.LoadFromFile(AFileName: string);
var
//  XMLDocument: IXMLDocument;
  FileStream: TFileStream;
begin
  if not FileExists(AFileName) then
    raise Exception.Create(ClassName + '.LoadFromFile: "' + AFileName + '" does not exists!');
  FileStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite);
  try
    LoadFromStream(FileStream);
  finally
    FreeAndNil(FileStream);
  end;
  fFileName := AFileName;  

Автор: Sep. 15.6.2006, 20:38
Баг c сохранением параметра Allow no subfold в дизайнере для регионов кодфолдинга
Код

procedure LoadCodeFolding(ANodeList: IXMLNodeList; ParentRegion: TFoldRegionItem);
...
          TFoldRegionType(VarToInt(Attributes['Type'])),
          VarToBool(ChildNodes['Properties'].Attributes['AddEnding']),
        //VarToBool(ChildNodes['Properties'].Attributes['NoSubFolds']),
          VarToBool(ChildNodes['Properties'].Attributes['AllowNoSubs']),

Т.е. параметр сохраняется с именем "AllowNoSubs" а загружается с именем "NoSubFolds". Я исправил в загрузке, сделал чтобы грузило то что уже насохраняло. А как правильно то будет? 
Где формат файла 2.0? Он окончательно утвержден уже? 

Автор: Vitalik 17.6.2006, 19:18
Цитата(Sep. @  10.6.2006,  13:46 Найти цитируемый пост)
Баг:
Загружаю подсветку через SynUni.LoadFromFile , все работает, но в SynUni.Filename пусто.

Внес исправление Vit'а в текущую версию UniHighlighter'а smile
Также вернул возможность запоминания подсветки на этапе проектирования формы (так как дизайнер пока внешний, то это используется только при загрузке подсветки из файла). То есть теперь если кинуть TSynUniSyn и выбрать в контекстном меню "Load from file", то после компиляции загруженная подсветка будет использоваться для подсветки. Это было в версии 1.8, а в 2.0a было ошибочно удалено smile 

Цитата(Sep. @  15.6.2006,  19:38 Найти цитируемый пост)
Баг c сохранением параметра Allow no subfold в дизайнере для регионов кодфолдинга
Т.е. параметр сохраняется с именем "AllowNoSubs" а загружается с именем "NoSubFolds"

Да, действительно...  smile  Плохо вышло smile

Цитата(Sep. @  15.6.2006,  19:38 Найти цитируемый пост)
Я исправил в загрузке, сделал чтобы грузило то что уже насохраняло. А как правильно то будет? 

Гм... Даже не знаю... Кто-нить помнит, что значит это свойство "Allow no subfolds"?.. user posted image
В зависимости от его настоящего значения сейчас придумаем окончательный правильный вариант его названия smile

Цитата(Sep. @  15.6.2006,  19:38 Найти цитируемый пост)
Где формат файла 2.0? Он окончательно утвержден уже?  

Формат файла подсветки для версии 2.0 обсуждался в этой теме: http://forum.vingrad.ru/index.php?showtopic=60404 user posted image 

Автор: Sep. 17.6.2006, 20:17
Цитата

Гм... Даже не знаю... Кто-нить помнит, что значит это свойство "Allow no subfolds"?.. 
В зависимости от его настоящего значения сейчас придумаем окончательный правильный вариант его названия

Свойство задает могут ли внутри этого диапазона быть другие диапазоны схлопывания (даже другого типа с другими ключевыми словами).  Я за название 'AllowNoSubs' т.к. более полно отражает название чекбокса и совместимо с насохраненными подсветками. 

Автор: Vitalik 24.6.2006, 17:27
Цитата(Sep. @  17.6.2006,  19:17 Найти цитируемый пост)
Я за название 'AllowNoSubs' т.к. более полно отражает название чекбокса и совместимо с насохраненными подсветками.

Оки, хоть мне и кажется вариант c "NoSubFolds" более подходящим, лучше все таки сделать "AllowNoSubs", так как именно с ним сохранялись все существующие подсветки версии 2.0a smile 

Автор: Vitalik 27.6.2006, 03:58
Тэксь.. Началась небольшая работа по исправлению багов, а также просто доработке версии UniHighlighter 2.0a smile

Вот пока что пункты (мелкие и не очень), которые сделаны за это время:
  •  Возобновлена работа экспорта в HTML (в том числе для SynEdit 2.0.3). Как выяснилось, он в 2.0a все-таки не работал smile
  •  Возвращена возможность сохранения подсветки в форме на этапе проектирования формы (с помощью пункта меню "Load From File..." у компонента TSynUniSyn на форме)
  •  Исправлена загрузка файлов версии 1.5 (сделано правильное считывание именно текущей цветовой схемы)
  •  Исправлена ошибка при сбросе свойства FileName компонента после загрузки файла
  •  Исправлено считывание свойства AllowNoSubs в правилах CodeFolding'а при загрузке из файла подсветки
  •  Убраны некоторые Warning'и Hint'ы (но не все, так как некоторые напоминают о некоторых моментах)
  •  Исправлен текст Exception'а у LoadFromFile правил при неправильном формате файла
Относительно дизайнера сделано пока две вещи:
  •  Возможность использования дизайнера 1.8 с версией компонента 2.0
  •  Возможность как и прижде использовать дизайнер не только в качестве exe'шника
Что еще планируется сделать перед выпуском версии UniHighlighter 2.0 beta1
  •  Прикручивание встроенного xml-парсера от Quadr0
  •  Реорганизация всего механизма загрузки/импорта подсветок (в том числе возможность безпроблемного становления компонента на новый парсер или новый формат файла)
  •  Адаптация компонента хотя бы под такие среды и версии: Delphi 5-7, C++Builder 5-6. Для этого попробую все сии среды разработки поставить smile
  •  Грамотная работа с атрибутами, для более корректной работы экспорта (проблема атрибутов с одинаковыми именами) и возможности определения правила или его типа по местонахождению в тексте
Пока что все.. Ох, очень спать хочется.. smile 

Автор: Sep. 27.6.2006, 15:43
Цитата(Vitalik @  27.6.2006,  03:58 Найти цитируемый пост)
и возможности определения правила или его типа по местонахождению в тексте

Если это то что я думаю, то респект! Уже потестить охота =)

Цитата(Vitalik @  27.6.2006,  03:58 Найти цитируемый пост)
Возможность использования дизайнера 1.8 с версией компонента 2.0
 А он правила кодфолдинга редактирует?

 

Автор: Vitalik 28.6.2006, 00:32
Цитата(Sep. @  27.6.2006,  14:43 Найти цитируемый пост)
А он правила кодфолдинга редактирует?

Как я писал в http://forum.vingrad.ru/index.php?showtopic=101713&view=findpost&p=774432 сообщении темы про дизайнер, версия 1.8 не поддерживает редактирование CodeFolding и MultiTokens.. Я просто адаптировал его под новую версию компонента.. Зато он не такой бажный, какой получился 2.0.. smile 

Автор: Vitalik 1.7.2006, 01:25
Тэксь.. Я в воскреcение (2го июля) уезжаю на недельку в Киев, поэтому закончить все намеченное к первой бетке не удастся.. smile

Цитата(Vitalik @  27.6.2006,  02:58 Найти цитируемый пост)
Прикручивание встроенного xml-парсера от Quadr0

Этому, наверное, придется подождать недельку..

Цитата(Vitalik @  27.6.2006,  02:58 Найти цитируемый пост)
Реорганизация всего механизма загрузки/импорта подсветок

Уже практически сделано! smile
Теперь компонент почти независим от механизма загрузки/сохранения подсветок (который теперь назван импортом/экспортом).
Классы работы с файлами подсветок вынесены в отдельные внешние модули и могут использоваться в компоненте написанием одной строчки. 
Теперь совершенно безболезненно компонент переносится на новый парсер (для этого нужно заменить файлы SynUniFormatNativeXml*.pas на нужные и все). 
А также легко поменять сам формат файла хранения подсветок (для этого нужно написать свои файлик(и) SynUniFormat*.pas и поменять одиночные строчки вызова импорта/экспорта в компоненте) smile

Цитата(Vitalik @  27.6.2006,  02:58 Найти цитируемый пост)
 Адаптация компонента хотя бы под такие среды и версии: Delphi 5-7, C++Builder 5-6.

Под Delphi 6 и 7 компонент адаптирован идеально. Над адаптацией к остальным версиям сред я поработал, но реально получается, что весь механизм загрузки/сохранения подсветок просто выпадает, так как в 5-х версиях сред XmlDocument'а попросту нет, а в 6-м билдере работа с ним изрядно глючит (http://forum.vingrad.ru/index.php?showtopic=102391)..
Как перейдем на новый парсер, так сразу компонент должен стать более "гибким" в плане сред разработки user posted image

Цитата(Vitalik @  27.6.2006,  02:58 Найти цитируемый пост)
Грамотная работа с атрибутами, для более корректной работы экспорта (проблема атрибутов с одинаковыми именами)

Может теперь работа и не сильно грамотнее, но зато все работает. Я просто, если встречаю атрибут с уже существующим названием, переименовываю его в "Старое название (2)" или "... (3)" и так далее smile

Цитата(Vitalik @  27.6.2006,  02:58 Найти цитируемый пост)
и возможности определения правила или его типа по местонахождению в тексте

Пока что появляется возможность точного определения имени правила (не считая всякие там "(2)").
Если этого недостаточно (так ли?), то можно подумать над продумыванием более детальной информации об атрибутах и тексте user posted image

Цитата(Sep. @  27.6.2006,  14:43 Найти цитируемый пост)
А он (дизайнер 1.8) правила кодфолдинга редактирует?

Возможно поработаю над тем, чтобы он хоть как-то эти правила мог редактировать smile


Вобщем, что бы ни получилось, вы, я думаю, увидите это в воскресение на этой неделе user posted image 

Автор: Vitalik 2.7.2006, 00:55
Цитата(Vitalik @  1.7.2006,  00:25 Найти цитируемый пост)
Возможно поработаю над тем, чтобы он хоть как-то эти правила мог редактировать

Тэксь.. Вроде сделал smile 

Автор: Vitalik 2.7.2006, 12:19
Ура! smile
Вернул возможность запускать дизайнер подсветки прямо на этапе проектирования формы !!! smile

Для тех же, кто не хочет встроенным дизайнером немного утяжелять SynUni*.bpl (которое теоретически влечет к утяжелению exe'шника, а практически я этого не замечаю ни на байт) я сделал директиву в файлике SynUniHighlighter.inc: {$DEFINE INTERNAL_DESIGNER}. Если закоментировать эту директиву до установки компонента, то дизайнер не будет встроен в пакет компонента smile

Также добавлены директивы {$DEFINE UNIDESIGNER18} и {$DEFINE UNIDESIGNER20}, вы должны ставить только одну из них, сообщающую, какой именно дизайнер вы хотите использовать: версии 1.8 или же 2.0
 

Автор: Vitalik 2.7.2006, 14:23
Ух.. В Delphi 6 оказывается функции StrToBool и StrToBoolDef не распознают строки 'True' и 'False' как булевые значения.. smile
Пришлось временно сообразить свою функцию для этого.. 

Автор: Vitalik 2.7.2006, 15:17

 ! 
Vitalik
Кого-то интересует выпуск UniHighlighter 2.0 beta1 сегодня-завтра? 
Или лучше выложить ее уже после приезда, когда я смогу во время ответить на все возникшие вопросы..
 

Автор: Sep. 2.7.2006, 21:31
Я за "сегодня-завтра" - все успеют потестить, и по приезду уже будет на что отвечать =) 

Автор: Vitalik 3.7.2006, 01:11
Цитата(Sep. @  2.7.2006,  20:31 Найти цитируемый пост)
Я за "сегодня-завтра" - все успеют потестить, и по приезду уже будет на что отвечать =)

Оки, тогда завтра (точнее уже сегодня) попробую подготовить и выложить smile

Кстати, мультитеговость (также как и CodeFolding) теперь также присуща дизайнеру 1.8 smile

Вот только во избежание путаницы его нужно как-то обозвать, ведь это уже не совсем тот 1.8 дизайнер, что был.. 
Как вам вариант с 1.9? Или может какой-нить 1.8x или 1.8new? 
Или же обозвать их 2.0 old и 2.0 new smile
Гм.. Или 2.0i и 2.0e? (i - internal, e - external) smile
Может Ваш вариант? smile 

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