![]() |
|
Модераторы: Vitalik |
![]()
|
|
| Kibab |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 3.12.2004 Репутация: нет Всего: нет |
Я поднял этот вопрос в комментариях о SynPlus на wincmd.ru, и теперь по просьбе авторов создаю и здесь. Итак, суть проблемы:
Хотелось бы, чтоб можно было не отменять действие подсветки ключевых слов в диапазонах... Вот я для схемы PHP хотел сделать подсветку блока try{..} и catch{...}. Однако, чтобы все было корректно, приходится ВСЕ узлы в Root (Control, Numbers, Functions и т.д.) копировать в узел Exceptions (=диапазон), чтобы подсветка работала как надо. Это, конечно, выход, однако не очень красивый... Если можно, предусмотрите, пожалуйста, в дочерних диапазонах возможность применения правил для ключевых слов родительского узла! Vitalik, напиши, пожалуйста, здесь, как ты хочешь выйти из ситуации? |
|||
|
||||
| Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Kibab, спасибо, что создал эту тему. Извини, что так задержался с ответом. У меня скоро сессия и поэтому сейчас совсем мало времени
Подобная тема немного обсуждалась в форуме по SynPlus (страницы 35 и 36). Тогда я предложил следующее: сделать новый вид правил: так называемые правила-ссылки. Их идея заключается в том, что правило-ссылка является не отдельным правилом, я ссылкой на уже существующее (и таким образом является его точной "копией"). Разработку этих правил-ссылок остановил один неприятный баг, проявляющийся при создании правила-ссылки внутри правила на которое оно ссылается... Если их реализовать, то такие правила-ссылки на твои ключевые слова можно было бы тогда повставлять внутрь твоих диапазонов try и catch. И всё было бы замечательно. Хотя вот возник вопрос: может быть и стоит сделать что-то вроде галочки или пункта меню: "Копировать ВСЕ правила из родительского диапазона"? Не усложнит ли это интерфейс? Kibab, что ты думаешь по всему этому? Это сообщение отредактировал(а) Vitalik - 7.12.2004, 12:12 |
|||
|
||||
| Kibab |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 3.12.2004 Репутация: нет Всего: нет |
Vitalik, та же фигня с сессией, поэтому торможу немного...
Сильно затрудняюсь с ответом, поскольку не знаю, как ты работаешь с правилами. НО: суть бага я представляю так: ссылка ведет на родительское правило, в котором при перечислении (enumetating) правил при применении их к тексту находится в т.ч. и правило-ссылка, которую пытаются применить.... далее stack overflow. Предлагаю: каждому правилу назначить уникальный ID, по которому в том числе прерывать применение правила, если оно было инициировано внутри этого правила. Иными словами, прерывать злобную рекурсию по совпадению ID обрабатываемого в данный момент правила и правила, которое только собираются применить. Наверняка у тебя правило задается как тип запись (говорю как програмист Delphi в его терминах) Извини если идея не в кассу - я не знаю, как на самом деле работает твоя система правил, и строю методы исключительно из своих предположений. Насчет усложнения интерфейса лишней кнопкой - думаю, если версию обозвать "beta", это снимет часть претензий. В принципе, это нормальный выход, наверное... К тому же, где гарантия, что не скопируется то самое правило-ссылка и при применении не будет опять Stack overflow? Это сообщение отредактировал(а) Kibab - 9.12.2004, 21:25 |
|||
|
||||
| Vitalik |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Kibab, если тебе интересно, я могу подробно и как можно более понятно описать здесь идеи реализации нашего парсинга У тебя есть желание (хотя бы небольшое |
||||
|
|||||
| Гость_Kibab |
|
|||
|
Unregistered |
Vitalik
Нифига себе, как я задержал ответ прошу прощения... За темой не следил, и вот такая фигня Плз давай переписываться не в форуме по поводу принять участие в разработке, что я хочу сделать, потому что использую сей плагин как основной рабочий инструмент. Мыло webmaster[собака]kibab[точка]com |
|||
|
||||
![]()
|
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |