OberonCore
https://forum.oberoncore.ru/

Языкоцветная каретка, быстрые атрибуты, цветное выделение
https://forum.oberoncore.ru/viewtopic.php?f=24&t=6577
Страница 1 из 2

Автор:  adimetrius [ Среда, 04 Март, 2020 01:15 ]
Заголовок сообщения:  Языкоцветная каретка, быстрые атрибуты, цветное выделение

Коллеги, предлагаю попробовать три экспериментальные фичи (только Линукс):

1. Цветная каретка для не-английских языков
Повышает удобство и экономит время: меньше перемещения взгляда в угол экрана, меньше ошибок с раскладкой и перепечатывания. Давно хотел попробовать, обсуждение viewtopic.php?f=22&t=6568&start=20#p111094 помогло взяться.
Определение языка работает ненадежно, не могу "найти концов". Задал вопросы на разных форумах, пока толковых ответов нет.

2. Быстрые атрибуты
Если нет выделения, атрибуты применяются к слову с кареткой. Удобно отмечать экспортируемые имена ^B.

3. Цветное выделение
Инверсное выделение - меньше накладные расходы. Но выделение цветом - симпатишнее, кмк. Впрочем, дело вкуса.

ДИСКЛЕЙМЕР
Все фичи - экспериментальные, на попробовать, устойчивость не гарантирую. В исходниках м.б. беспорядок, отладочный код.

Распространяется в виде подсистемы, Kernel не затрагивает :wink:

Вложения:
Lingua.tar.gz [37.2 КБ]
Скачиваний: 376

Автор:  Artyemov [ Среда, 04 Март, 2020 23:54 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Виндоводам хоть скриншот сделайте, позавидовать...

Автор:  adimetrius [ Четверг, 05 Март, 2020 16:01 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

С уважением к виндоводам, вот двуплатформенная версия!

Вложения:
Lingua.zip [41.93 КБ]
Скачиваний: 334

Автор:  Artyemov [ Пятница, 06 Март, 2020 00:01 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

О, пощупаем ;-)

Автор:  Artyemov [ Понедельник, 09 Март, 2020 01:09 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

А куда керосин заливать?
Вложение:
BB_Diags.jpg
BB_Diags.jpg [ 160.62 КБ | Просмотров: 7001 ]


И в Win7 64bit и в XP-SP3 из VirtualBox одинаково; может в BB 1.6 причина?

Автор:  adimetrius [ Понедельник, 09 Март, 2020 03:03 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Хм, полагаю, что да, в ББ6 нет этих констант в модуле Dialog. Я компилировал на 1,7 и 1,8.

В вашем случае можно вместо Всего CASE оставить как раз тот кейс, который не компилируется
поскольку вы гарантированно под Windows запускаете.

Автор:  adimetrius [ Понедельник, 09 Март, 2020 03:09 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Кста, ничоси такая раскраска ). Это предпочтение такое? Как вы сделали в ББ небелый фон? Я прошлым летом экспериментировал с "раскраской" ББ, поскольку новичков шокировал белый фон: типа какой ты кодер без темной темы! Пришлось влезть в Documents и Ports/HostPorts.

Автор:  SovietPony [ Понедельник, 09 Март, 2020 07:25 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Насколько я знаю, ББ подхватывает цвета из темы винды.

Автор:  Artyemov [ Вторник, 10 Март, 2020 01:01 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Ага, понял...
adimetrius писал(а):
Кста, ничоси такая раскраска ). Это предпочтение такое? Как вы сделали в ББ небелый фон? Я прошлым летом экспериментировал с "раскраской" ББ, поскольку новичков шокировал белый фон: типа какой ты кодер без темной темы! Пришлось влезть в Documents и Ports/HostPorts.

SovietPony прав, это палитра настроенная в винде (с '97), но к ней нужна бейсбольная бита :) - есть несколько программок авторы, которых жёстко цвет букв задали либо синим либо чёрным >8-(

Автор:  budden [ Пятница, 13 Март, 2020 12:15 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Лучше всего записать видео и выложить на ютьюб.

Автор:  Artyemov [ Пятница, 13 Март, 2020 21:31 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

budden писал(а):
Лучше всего записать видео и выложить на ютьюб.

"Юзер бейсбольной битой вставляет разума упёртому программеру неспособному цвет шрифта не прибивать гвоздями..." - ютюба не пропустит: бесчеловечное обращение с ... (сами впишите).

Автор:  Artyemov [ Воскресенье, 15 Март, 2020 20:40 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Любезный adimetrius сетовал на отсутствие обратной связи, так вот, "осмелюсь доложить":
как и подозревалось - здравствуйте, "hardcoded colors". Включённая WinClassic-схема позволила увидеть каретку при латинице, ну а дальше:
Вложение:
Lingua.jpg
Lingua.jpg [ 232 КБ | Просмотров: 6842 ]

Но так делать нельзя, цвет каретки - строго из текущей цветовой схемы.

"Быстрые атрибуты": включение курсива - лихо?
Вложение:
FastAttrib.jpg
FastAttrib.jpg [ 33.76 КБ | Просмотров: 6842 ]


Мусора при выделении не наблюдается, а вот при перемещении каретки артефакты (видно, где каретка была) вполне:
Вложение:
Artefackts.jpg
Artefackts.jpg [ 14.86 КБ | Просмотров: 6841 ]


Вставка буковок и BackSpace как-то своеобразно работают.

В общем, идея шикарная, воплощение (заметили, не имплементация ;-)) - "начинай с начала": похоже, реализацию каретки надо делать более низкоуровневыми средствами.

PS: и в качестве "дохлой кошки" - есть ещё режим "замены"; у "коммерсов" выглядит вот так:
Вложение:
Insert.jpg
Insert.jpg [ 149.95 КБ | Просмотров: 6842 ]

Автор:  adimetrius [ Воскресенье, 15 Март, 2020 21:56 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Artyomov, спасибо, что потрудились попробовать и написали, еще и с картинками.

Artyemov писал(а):
Но так делать нельзя, цвет каретки - строго из текущей цветовой схемы.

Принимается замечание. Уточню: получается, из текущей схемы можно взять только каретку "по умолчанию". А чтобы русскую каретку настраивать, нужно еще механизм придумать.

Artyemov писал(а):
"Быстрые атрибуты": включение курсива - лихо?

Я вас не понял
Artyemov писал(а):
при перемещении каретки артефакты (видно, где каретка была) вполне:

Замечание принимается

Artyemov писал(а):
Вставка буковок и BackSpace как-то своеобразно работают.

Я вас не понял. У меня как обычно вроде работают.
Собсно вы смотрели исходники - видели, наэн, что вставку буковок и забой (заметьте: не backspace :wink: ) я руками не трогал.

Про режим overwrite - это вы к чему? помню такой со времен ROM-BASIC и GW-BASIC в мсдос 3,22. Тогда еще клавиша INS вставляла пробел, и на это место можно было вписать другую букаву.

Автор:  Artyemov [ Воскресенье, 15 Март, 2020 22:32 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Буквы стали курсивом, но каретка отъехала, там пробелы появились; отменяем курсив - каретка снова у последней буквы.

Забой (Bs) как Del. Если честно, едва нашёл, где задавался цвет каретки-Lat (эт про то, как "изучал" исходники).

Owerwrite тоже ж имеет смысл выделять (и цветом при кириллице) - вместо вертикальной чёрточки "блок" снизу символа (видели как TAB знатно выглядит :) ) INS не вставляла пробел, а вводимое "затирало" то, что в позиции каретки.

Автор:  budden [ Среда, 18 Март, 2020 10:08 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

А соответствует ли режим overwrite пути Оберона? Не лишний ли он? Касаемо артефактов при вводе - даже я их смутно припоминаю, хотя очень давно открывал ББ. Т.е. явно виноват не Adimetrius.

Автор:  Борис Рюмшин [ Среда, 18 Март, 2020 15:32 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Artyemov писал(а):
Owerwrite тоже ж имеет смысл выделять (и цветом при кириллице) - вместо вертикальной чёрточки "блок" снизу символа (видели как TAB знатно выглядит :) ) INS не вставляла пробел, а вводимое "затирало" то, что в позиции каретки.

Этот режим был целенаправленно идеологически выпилен.

Автор:  Info21 [ Четверг, 19 Март, 2020 00:31 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Борис Рюмшин писал(а):
Этот режим был целенаправленно идеологически выпилен.
Вздрогнул.

Автор:  Иван Денисов [ Пятница, 20 Март, 2020 07:49 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Лучше не цвет каретки менять, а цвет фона текста немного тонировать. Так заметнее будет. А то целую секунду ждать пока она появится — это трудно. Переключаешь язык и цвет фона меняется. Или цвет полосы прокрутки.

Автор:  adimetrius [ Пятница, 20 Март, 2020 11:33 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Иван Денисов писал(а):
Лучше не цвет каретки менять, а цвет фона текста немного тонировать. Так заметнее будет. А то целую секунду ждать пока она появится — это трудно. Переключаешь язык и цвет фона меняется. Или цвет полосы прокрутки.


Цвет полосы прокрутки - а если в окне нет полосы прокрутки? Скажем, когда в тексте всего 1 строка.

Ждать, пока появится: если всерьез эту фичу делать, то можно подписаться на оповещения системы, которые она рассылает при переключении раскладки, и тогда сразу можно исправлять цвет каретки. Правда, это в Win легко, а в Lin - инфа про раскладку в глубинах ада. Точнее, в gsettings она вполне легко доступна, однако у нас же gtk2, в которой еще нет gsettings...

С подсветкой фона текста я пробовал в Тайлере вот что: можно задать цвет фона для окна в обычном режиме, и когда оно front-окно или target-окно. С фронт-окном не очень понравилось, но, возможно, надо лучше цвета подбирать. А вот таргет-окно - весьма удобно: когда открыл диалог поиска, фон таргет-окна подсказывает, где будет поиск вестись. На фото - серый (сделал темный для примера, обычно светло-серого вполне хватает).
Вложение:
Снимок экрана от 2020-03-20 11-30-55.png
Снимок экрана от 2020-03-20 11-30-55.png [ 93.77 КБ | Просмотров: 6677 ]


По идее, в ББ у документа есть "рамка" 5 пикселей, можно попробовать ее использовать как допиндикатор языка. Будет ретро, как keyrus в досе!!!

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

Автор:  Artyemov [ Суббота, 21 Март, 2020 00:19 ]
Заголовок сообщения:  Re: Языкоцветная каретка, быстрые атрибуты, цветное выделени

Каретка это самый естественный индикатор, при этом всегда в центре внимания, а всякие рамочки - от лукавого, практически индикатор в трее, который самоубирается.

Да, Win в чём-то гениальная хрень...
Цитата:
Правда, это в Win легко, а в Lin - инфа про раскладку в глубинах ада.

Она же глобальная на все окошки? Или это мне с Raspbian-ом так "повезло"?

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