[MoonScript] Подсветка кириллицы и пробельных символов
[MoonScript] Подсветка кириллицы и пробельных символов
Исходный код: https://forum.ru-board.com/topic.cgi?fo ... it=1&m=1#1
Назначение - подсветить кириллицу и изменить цвет , отображаемых FAR. Для комфортного редактирования текста, пробельные символы раскрашиваются не голубым, а светло-синим на синем - так они не сливаются с текстом. Кириллица раскрашивается максимально заметно - жёлтым по красному.
:!: Улучшения (ваши) в коде скрипта принимаются и даже приветствуются.
Код скрипта раскрашивает только текст, отображённый в окне редактора, поэтому скрипт не "зависает" на длинных строках. Вызывается скрипт в окне редактора по нажатию функциональной клавиши F3. Для более детальной информации смотрите код скрипта.
Скрипт-прототип
Last edited by John Doe on Sun 10 Nov, 2019 12:06, edited 1 time in total.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: [MoonScript] Подсветка кириллицы и пробельных символов
Это как?По уму их надо было бы раскрашивать цветом фона редактора + 8, но как это сделать, не знаю
Потому что от их порядка зависит результирующее значение переменной posl.AleXH wrote:До конца не уверен в правильности алгоритма - если обменять местами if ruEnd и if spEnd (с содержимым разумеется), то между латиницей и кириллицей расцветка пробелов будет отсутствовать, почему - не знаю.
Re: [MoonScript] Подсветка кириллицы и пробельных символов
Это разумно - получить значение текущего фона, увеличить его на 8, сделав светлее. Сейчас же рассчитано на стандартную цветовую схему, в которой текст голубой на синем, а так можно будет юзать без переделки и на других схемах.Это как?
Это-то понятно, но если затестить на строке типа "йqqй qйq qййq й q q й й", то становится очевидным, что нужно либо 2 отдельных счётчика позиций, либо, что разумнее, один, но учитывающий состояние другого.Потому что от их порядка зависит результирующее значение переменной posl.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: [MoonScript] Подсветка кириллицы и пробельных символов
Для RGB нужен Conemu.AleXH wrote:Это разумно - получить значение текущего фона, увеличить его на 8, сделав светлее.
Update: если без Conemu, то фар будет пытаться подбирать наиболее подходящий цвет из консольной палитры.
Поскольку это уже говорит об ошибке в логике, то дальше я смотреть не стал.AleXH wrote::) Это-то понятно, но[...]Потому что от их порядка зависит результирующее значение переменной posl.
- zg
- zero-gravity
- Posts: 6035
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: [MoonScript] Подсветка кириллицы и пробельных символов
и что мешает так сделать?AleXH wrote:Это разумно - получить значение текущего фона, увеличить его на 8, сделав светлее.
а так будет рассчитано только на 4х битные схемы с тёмным фоном.AleXH wrote:Сейчас же рассчитано на стандартную цветовую схему
Re: [MoonScript] Подсветка кириллицы и пробельных символов
Правильно раскрашивает такой вариант , но оптимален ли он?
- риторический вопрос. Видимо отсутствие необходимых знаний, не?zg wrote:и что мешает так сделать?
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: [MoonScript] Подсветка кириллицы и пробельных символов
Как-то так (не проверялось):
А про RGB почитайте, кто ж не даёт.
P.S.
Code: Select all
ruEnd,spEnd=0,0
while ruEnd
ruBegin,ruEnd=ruSymbols\find line,ruEnd+1
if ruEnd
editor.AddColor ei.EditorID,ii,ruBegin,ruEnd,0,ruColor,190,colorguid
while spEnd
spBegin,spEnd=spSymbols\find line,spEnd+1
if spEnd
editor.AddColor ei.EditorID,ii,spBegin,spEnd,0,spColor,190,colorguid
P.S.
А это за пределами моего понимания.AleXH wrote:Это-то понятно, но если затестить на строке типа "йqqй qйq qййq й q q й й", то становится очевидным, что нужно либо 2 отдельных счётчика позиций, либо, что разумнее, один, но учитывающий состояние другого.
Re: [MoonScript] Подсветка кириллицы и пробельных символов
Для 4х битных - если полученное значение больше 8, то отнять 8. RGB не юзаю - RGB схемы из дистриба моему монику не очень, а править их в моём случае не оправданно, и так есть чем заниматься.zg wrote:а так будет рассчитано только на 4х битные схемы с тёмным фоном.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: [MoonScript] Подсветка кириллицы и пробельных символов
Подозреваю можно использовать любые RGB-цвета, а фар при необходимости подберёт из палитры наиболее подходящий.
(При чём тут какие-то RGB-схемы я не понял)
(При чём тут какие-то RGB-схемы я не понял)
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: [MoonScript] Подсветка кириллицы и пробельных символов
Подумалось, что для пробельных символов интересно было бы красить не фон а текст, для режима [x] Show white space
Re: [MoonScript] Подсветка кириллицы и пробельных символов
John Doe, так и сделано изначально: Получать цвет фона нужно для того, чтобы сделать пробельные символы малозаметными, не лезущими в глаза при чтении основного текста.
Текущий вариант скрипта
Текущий вариант скрипта
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: [MoonScript] Подсветка кириллицы и пробельных символов
Так а где же вы их получаете (я не нашёл). Вижу повсюду жестко забитые числовые значения. 0xe, 0xc, 0x9, 0x1.AleXH wrote:Получать цвет фона нужно для того, чтобы сделать пробельные символы малозаметными, не лезущими в глаза при чтении основного текста.
Может шапку оформите?AleXH wrote:Текущий вариант скрипта[...]
Re: [MoonScript] Подсветка кириллицы и пробельных символов
- Нигде, потому что не знаю как. - Потыкался, в энциклопедии, api.farmanager.com, не нашёл. Плюнул - нет ни времени, ни здоровья, поэтому поставил жёстко - на стандартной схеме работает, кто захочет - для своей схемы исправит.John Doe wrote:Так а где же вы их получаете (я не нашёл). Вижу повсюду жестко забитые числовые значения. 0xe, 0xc, 0x9, 0x1.
Если кто-то знает, как сделать скрипт лучше - предлагайте, я только за. - Шапку я поправлю.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: [MoonScript] Подсветка кириллицы и пробельных символов
ACTL_GETCOLOR?AleXH wrote:Нигде, потому что не знаю как.
Re: [MoonScript] Подсветка кириллицы и пробельных символов
Интересно, если бы в апи была функция получения не всей строки, а лишь видимой на экране её части, была бы она медленнее получения всей строки?
На обработке строки в 11 МБ плотно задумывается колорер, а данный скрипт приводит к сообщению: Ошибка LuaMacro.dll - нет свободной памяти.
Строку в 512К колорер красит 4сек, а сабж - подождал 4-е минуты и пристрелил, загружая при этом ядро на 100%.
Строку в 64К колорер красит около секунды, сабж 8 сек, снимает раскраску 4 сек. Замеры делались на глаз, визуально. Луа вариант скрипта дал такие же, как и муна результаты.
На обработке строки в 11 МБ плотно задумывается колорер, а данный скрипт приводит к сообщению: Ошибка LuaMacro.dll - нет свободной памяти.
Строку в 512К колорер красит 4сек, а сабж - подождал 4-е минуты и пристрелил, загружая при этом ядро на 100%.
Строку в 64К колорер красит около секунды, сабж 8 сек, снимает раскраску 4 сек. Замеры делались на глаз, визуально. Луа вариант скрипта дал такие же, как и муна результаты.