Скрипт для нумерации линий в редакторе, больше как демонстрация необходимости нормального Always-on-Top

Здесь обсуждается всё, что касается макросов.
Post Reply
citRiks
Posts: 674
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 198 times
Been thanked: 44 times

Скрипт для нумерации линий в редакторе, больше как демонстрация необходимости нормального Always-on-Top

Post by citRiks »

Скрипт для нумерации линий в редакторе,
больше как демонстрация необходимости нормального Always-on-Top,
или управления размером открытого редактора.

Скрипт неплох, например учитывает наличие/отсутствие скроллбара, отмечает текущую линию иным цветом.

Недостатки:
1.) Моргает при любом движении в редакторе (необходимость перерисовывать при каждом ЕЕ_Redraw)
2.) нумерация неизбежно изза far.Text(...) находится справа, что неудобно.
3.) Даже будучи справа, может заслонять текст

Пути решения через АПИ ФАРа (нет на данный момент):

1.) Изменение размера редактора на лету
Тогда уменьшаем редактор по ширине на нужную ширину полей, в полях рисуем фар.Текстом(..) все что нужно.
В полях - это за пределами редактора, поэтому не нужно никакого ЕЕ_Redraw, как нарисовали,
так и будет нарисовано, - моргать не будет, эпилептики спасены!

1.) Сделать Always-on-Top диалог с нумерацией, ну тут все понятно, диалог моргать не будет,
будет в форме бара высотой с редактор с нумерацией.
Editor+EditorEvent_LineNum.Lua (2).7z
(1.04 KiB) Downloaded 15 times
Last edited by citRiks on Tue 09 Jun, 2020 09:03, edited 2 times in total.
А кто не поверит в наше миролюбие,
Тот кровью умоется.
И будет такая борьба за мир,
Что камня на камне не останется.

citRiks
Posts: 674
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 198 times
Been thanked: 44 times

Скрипт для нумерации линий в редакторе, больше как демонстрация необходимости нормального Always-on-Top

Post by citRiks »

скрипт здесь
<вложения удалено, см. заголовок>
Last edited by citRiks on Sat 20 Jun, 2020 17:54, edited 3 times in total.
А кто не поверит в наше миролюбие,
Тот кровью умоется.
И будет такая борьба за мир,
Что камня на камне не останется.

citRiks
Posts: 674
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 198 times
Been thanked: 44 times

Скрипт для нумерации линий в редакторе, больше как демонстрация необходимости нормального Always-on-Top

Post by citRiks »

Отмечу вот что, моргание происходит изза Redraw().
A Redraw() создает колорер, даже при отсутствии телодвижений юзера или изменений ФАРа.
А создает он эти евенты, потому что на больших файлах не успевает прямо сразу все отрисовать,
и потом в фоне дорисовывает у себя то что остается за кадром.
Делать ему это надо, потому что там за кадром могут быть скобки, и прочее что надо просчитать для отисовки.
Так что это, в принципе, не баг.
И на открытом файле, через время в зависимости от размера файла, это моргание исчезает.
А кто не поверит в наше миролюбие,
Тот кровью умоется.
И будет такая борьба за мир,
Что камня на камне не останется.

User avatar
Taciturn
Posts: 419
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 33 times
Been thanked: 11 times
Contact:

Скрипт для нумерации линий в редакторе, больше как демонстрация необходимости нормального Always-on-Top

Post by Taciturn »

citRiks wrote:
Fri 05 Jun, 2020 16:12
И на открытом файле, через время в зависимости от размера файла, это моргание исчезает.
А нельзя ли где-нибудь проценты готовности рисовать?


User avatar
ctapmex
Posts: 1070
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 20 times
Contact:

Скрипт для нумерации линий в редакторе, больше как демонстрация необходимости нормального Always-on-Top

Post by ctapmex »

если 23 строку заменить на

Code: Select all

local line_num_final = math.min(ei.TopScreenLine + ei.WindowSizeY- (band(ei.Options, F.EOPT_SHOWTITLEBAR) == 0 and 0 or 1), ei.TotalLines)
то будет еще получше

citRiks
Posts: 674
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 198 times
Been thanked: 44 times

Скрипт для нумерации линий в редакторе, больше как демонстрация необходимости нормального Always-on-Top

Post by citRiks »

ctapmex, спасибо, принимается :) да, не моргает теперь даже на больших файлах, что вообще круто
поменял в заголовке с учетом предложенных изменений, плюс некоторая косметика
косметика в том что столбец с нумерацией не шире самого числа
А кто не поверит в наше миролюбие,
Тот кровью умоется.
И будет такая борьба за мир,
Что камня на камне не останется.

citRiks
Posts: 674
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 198 times
Been thanked: 44 times

Скрипт для нумерации линий в редакторе, больше как демонстрация необходимости нормального Always-on-Top

Post by citRiks »

Taciturn wrote:
Sat 06 Jun, 2020 12:48
citRiks wrote:
Fri 05 Jun, 2020 16:12
И на открытом файле, через время в зависимости от размера файла, это моргание исчезает.
А нельзя ли где-нибудь проценты готовности рисовать?
Идея хорошая, это вопрос к Колореру
ctapmex, что скажете?
Т.е., нельзя ли получить какой-то API который дает статус готовности в процентах?
А кто не поверит в наше миролюбие,
Тот кровью умоется.
И будет такая борьба за мир,
Что камня на камне не останется.


Post Reply

Return to “Обсуждение макросов”