WPF Hint
От: capgoat  
Дата: 31.10.09 21:38
Оценка:
Здравствуйте, VladD2, Вы писали:

Сорри за задержки, вечно не хватает времени.
Что нового в новой версии:
1. Появились свойства ProportionalFontFamily, ProportionalFontSize — для тэга code,
FixedFontFamily, FixedFontSize — для остальных
2. Новая обработка параметров
<params>
<param attrs="[NotNull]" name="loc" typeShortName="Location" typeFullName="Nemerle.Compiler.Location">description</param>
<param .../>
<param .../>
</params>
Тут есть замечания:
— как обрабатывать attrs(примерчик бы)
— description реализован как сабхинт к name и к type, может надо было как-то иначе
— name и type некликабельные, т.е. для них нельзя задать handler, а может оно и не надо

Парсинг:
Основная сложность возникает из-за тэга pre.
Вне его все пробельные символы должны заменяться на пробел(эмуляция html).
Кроме того, после парсинга в выходной структуре для построения UI этого тэга не должно быть.
В предыдущей версии были некоторые сложности из-за динамического params,
сейчас этот код благополучно убран.

Краткое описание классов:
класс RootText — содержит исходный текст в виде массива символов
класс ParseToken — базовый класс для TextToken, ElementToken, содержит границы элементов в исходном тексте
класс TextToken — представляет часть исходного текста (а-ля XText),
класс ElementToken — содержит распарсенные аттрибуты, подэлементы (TextToken или ElementToken )
класс RootToken — распарсивает исходный текст в токены
класс HintParser — основной класс, создает RootToken, затем как постобработка, идет удаление пробельных символов и тэга pre.

Также добавил немного комментов и почистил код.
Надеюсь теперь будет полегче с пониманием.

PS В svn коммить лучше сам

02.11.09 23:13: Ветка выделена из темы Кто может написать контрол &mdash; крутой хинт?
Автор: VladD2
Дата: 18.08.09
— VladD2
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.