OberonCore
https://forum.oberoncore.ru/

Подсветка парных скобок
https://forum.oberoncore.ru/viewtopic.php?f=47&t=4376
Страница 2 из 2

Автор:  Илья Ермаков [ Четверг, 06 Июнь, 2013 11:28 ]
Заголовок сообщения:  Re: Подсветка парных скобок

Какой-нибудь бы механизм, чтоб атрибуты на участки текста можно было навешать с пометкой "несохраняемый". И чтобы тулза подсветки просто могла бы хранить у себя список объектов-атрибутов, которые именно ей динамически навешены - и одним махом снимать с текста эти атрибуты...

Но это, конечно, уже доработки Text...

Автор:  Александр Ильин [ Четверг, 06 Июнь, 2013 11:36 ]
Заголовок сообщения:  Re: Подсветка парных скобок

Давно хочу сказать очевидную, в общем-то вещь. Редактор с функциями подсветки синтаксиса - это отдельный особый тип отображения (View) текста. От этого, на мой взгляд, и надо отталкиваться.

Автор:  Илья Ермаков [ Четверг, 06 Июнь, 2013 11:47 ]
Заголовок сообщения:  Re: Подсветка парных скобок

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

Может, и стоит его сделать как View-обёртку, но использовав внутри для работы с текстом неспециализированный, общий View, у которого просто есть продуманный набор функций для надстройки сверху "неперсистентных оформлятелей".

Автор:  Александр Ильин [ Четверг, 06 Июнь, 2013 11:52 ]
Заголовок сообщения:  Re: Подсветка парных скобок

Илья Ермаков писал(а):
Это приведёт к крупному дублированию кода, если этому спец. вьюву придётся делать всю ту же работу по рисованию текста.
Вот вам и компонентное программирование. : )

Автор:  Евгений Темиргалеев [ Четверг, 06 Июнь, 2013 12:06 ]
Заголовок сообщения:  Re: Подсветка парных скобок

Александр Ильин писал(а):
Илья Ермаков писал(а):
Это приведёт к крупному дублированию кода, если этому спец. вьюву придётся делать всю ту же работу по рисованию текста.
Вот вам и компонентное программирование. : )
Что кому не нравится? Надо чтобы вьюшка показывала текст по-другому --- пишите отдельную вьюшку. На то они и вьюшки.

Автор:  Пётр Кушнир [ Четверг, 06 Июнь, 2013 12:17 ]
Заголовок сообщения:  Re: Подсветка парных скобок

Мы своей ячейкой обсуждали как-то раз концепцию слоёв сырца (документа, в общем случае). По аналогии со слоями в графических редакторах.
Соответственно, включение или выключение слоёв производит те или иные изменения с оформлением исходника (например, раскраска изменённого блока кода с предыдущей версии сырца). Ну а слои могут быть сами по себе сохраняемыми или нет.

Автор:  adva [ Четверг, 06 Июнь, 2013 13:51 ]
Заголовок сообщения:  Re: Подсветка парных скобок

А может тут поможет вариант с "вариантами"? Не помню тему, где про это выбор было расписано. Но может просто при добавлении скобок сразу добавлять и нужную их расцветку (но уже в другом варианте). А переключаться вроде там вроде межу вариантами не особо сложно.

Предложил просто так, т.к. внутренности блекбокс не знаю.

Автор:  Иван Денисов [ Четверг, 06 Июнь, 2013 17:05 ]
Заголовок сообщения:  Re: Подсветка парных скобок

Вот что получилось. Спасибо за советы. В таком виде это уже пригодно для использования на мой взгляд.

http://oberon.molpit.com/packs/DiaBrackets.txt

Сделаю ссылку, чтобы была возможность обновлять косяки.

Автор:  Пётр Кушнир [ Четверг, 06 Июнь, 2013 18:00 ]
Заголовок сообщения:  Re: Подсветка парных скобок

Глядишь, через пару лет колесо истории совершит полный круг, и в ББ опять станет модной автораскраска. Оберспейсеры вон уже радуются, заранее.

Автор:  Иван Денисов [ Понедельник, 10 Июнь, 2013 14:58 ]
Заголовок сообщения:  Re: Подсветка парных скобок

Беда. Если работать с включенным инспектором скобок, то при нажатии на квадратик из Трапа при попытке перейти к месту аварийной остановки срабатывает охранник типов DevDebug...
c := v(TextViews.View).ThisController();

Вложения:
typeGuard.png
typeGuard.png [ 79.95 КБ | Просмотров: 7882 ]

Автор:  maliya [ Понедельник, 10 Июнь, 2013 22:38 ]
Заголовок сообщения:  Re: Подсветка парных скобок

it is clear that the trap is trigged by the "v" is a DiaBrackets.View!

one solution is modify DevDebug.ShowSourcePos
Код:
 ...
   IF (m # NIL)(*add -->*) &(v IS TextViews.View) THEN
...

this modification will give a error message instead of trap.it's not perfect.

another solution is supply a DiaBrackets.View(TextViews.View),that will no need to change DevDebug, the attached file is a modified copy of your module.

Вложения:
Brackets.odc [13.29 КБ]
Скачиваний: 677

Автор:  Иван Денисов [ Вторник, 11 Июнь, 2013 10:21 ]
Заголовок сообщения:  Re: Подсветка парных скобок

Maliya, thanks for improving!

I fixed the Reset procedure a bit for better reset of brackets that are in quotes ")".

I update the module and add you to authors. Also I have translated Quick-Start to English.

http://oberon.molpit.com/packs/DiaBrackets.txt

Автор:  Иван Денисов [ Пятница, 23 Август, 2013 19:57 ]
Заголовок сообщения:  Re: Подсветка парных скобок

Улучшил код модуля (теперь скобка наследует атрибуты наклона и жирности) и всегда хорошо позиционируется в тексте, выделил модуль в подсистему Cpc.

Качать тут.
http://oberon.molpit.com/packs/CpcBrackets.txt

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/