Ещё нюанс с коротким файлом: раскрашивается не столбец целиком, а только прямоугольник с номерами строк.
Если фон отличается от фона редактора, то неаккуратно выглядит. Edit: исправлено в 6608
Last edited by John Doe on Wed 03 Dec, 2025 22:53, edited 1 time in total.
HaRT wrote: Tue 02 Dec, 2025 21:04
Вообще, все пожелания насчёт отступов решились бы вынесением литерала формата номера строки в языковой ресурс (который, как известно, легко подстроить под себя).
Было бы прекрасно через far:config настроить под себя что-то вроде Editor.ShowLineNumberFormat...
Если такое случится, прошу дать мне знать через ЛС. Спасибо.
Что-то оно с колорером странно дружит.
Если сдвинуть курсор настолько далеко вправо, чтобы левая часть текста скрылась из виду, то вместо текста красятся номера строк.
Macro {
description="Editor: Scroll Left";
area="Editor"; key="Ctrl;";
action=function()
local EI = editor.GetInfo()
if EI.LeftPos > 1 then
local ScrBar = Editor.Set(15,-1)~=0 and EI.TotalLines>EI.WindowSizeY
local ClientSizeX = EI.WindowSizeX - (ScrBar and 1 or 0)
if EI.CurTabPos-EI.LeftPos+1 == ClientSizeX then EI.CurTabPos = EI.CurTabPos-1 end
EI.LeftPos, EI.CurPos = EI.LeftPos-1, nil
editor.SetPosition(nil, EI)
end
end;
}
Shmuel wrote: Fri 05 Dec, 2025 23:51local ClientSizeX = EI.WindowSizeX - (ScrBar and 1 or 0)
очевидно, что тут неправильно вычисляется ширина видимой области. можно вообще на это забить и просто после SetPosition проверять, реально ли LeftPos изменилась и если нет, повторить с уменьшенной CurTabPos.
John Doe wrote: Sat 06 Dec, 2025 11:09А всякие плагины дополнения слов не поломались?
они всегда были поломаны, достаточно открыть редактор не на весь экран.
на первый взгляд можно в WindowInfo добавить полные размеры окна и координаты верхнего угла. это в принципе надо и без номеров строк в редакторе. а в EditorInfo отдавать клиентскую ширину и высоту редактора и добавить координаты левого верхнего угла клиентской части.
zg wrote: Sat 06 Dec, 2025 16:12
а в EditorInfo отдавать клиентскую ширину и высоту редактора и добавить координаты левого верхнего угла клиентской части.
Может сразу и функцию для трансляции позиции редактора в экранные координаты?
Недавно добавилась фича редактора "Show line numbers".
При этом, кажется, EditorControl ECTL_TABTOREAL не учитывает показ номеров строк, который влияет на экранные позиции, естественно.
Это недоработка добавления новой фичи (API забыли) или так и должно быть?
Почему стало "неудобно". События мыши в редакторе с координатами возвращают экранные позиции с учетом показа номеров строк. Раньше можно было использовать EditorControl для преобразования в позицию редактора, сейчас - нет, если номера показаны.