Структура EditorInfo

Место, где разработчики плагинов могут поделиться своим опытом.
User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Структура EditorInfo

Post by jbak »

Нельзя ли в новых версиях добавить в EditorInfo поля, в которых были бы координаты верхнего левого угла редактора (если он неполноэкранный)? Или подскажите, как можно получить эти координаты из имеющихся данных.
Пробовал что-то слепить из GetConsoleCursorInfo(), EditorInfo::LeftPos и EditorInfo::CurPos - не срабатывает (на EE_REDRAW в EditorInfo приходит уже изменённая позиция курсора, в то время, как GetConsoleCursorInfo() даёт не обновлённую позицию. Как быть?
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by t-rex »

Не понял. Что именно тебе надо и зачем?
User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Post by jbak »

Нужно
Узнать координаты левого верхнего угла неполноэкранного редактора
Зачем это нужно
Например, чтобы нормально раскрасить символы в таком редакторе (если этих координат не знаешь - ничего не получится).
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by t-rex »

jbak wrote:Нужно
Узнать координаты левого верхнего угла неполноэкранного редактора
Зачем это нужно
Например, чтобы нормально раскрасить символы в таком редакторе (если этих координат не знаешь - ничего не получится).
У тебя есть WindowSizeX, WindowSizeY, TopScreenLine, LeftPos так что всё можно высчитать.
User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Post by jbak »

Иногда можно (если приплести ещё GetConsoleCursorInfo()).
А вот не скажешь ли, как это сделать в EE_REDRAW? У меня не получилось.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by t-rex »

В чём проблема? И нафига ещё GetConsoleCursorInfo?
Или это надо для EUM?
User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Post by jbak »

Хорошо, реальный пример.
Курсор во второй строке, в 3-ей позиции. Размер окна 30х30 символов.
Имеем WindowSizeX=30, LeftPos=0, CurPos=3. Эти значения будут теми же самыми, если оконная координата X=0,1,2,...50,...100... Т.е. таким образом её узнать нельзя.
Если не так - покажи, пожалуйста, на конкретном примере.

Какие при этом грабли? Ну, о вертикальном блоке в неполноэкранном редакторе вообще промолчу - он попросту не работает. Но подсветка символов получается правильной, если в EditorColor устанавливать StartPos=координата X+требуемая позиция, EndPos=координата X+требуемая позиция. Это было сделано в TwoEdit при подсветке отличий. Но там плагин сам открывает файлы и эту позицию хранит (Очень бережно хранит!) А другие плагины этой позиции узнать не могут.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by t-rex »

Блин, ты хочешь костыль для глюка фара с неполноэкранными редакторами. Нефиг нам такие костыли. Лучше уж как нибудь починить этот глюк. А пока используй тока горизонтальные редакторы там вроде меньше глюков.
User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Post by jbak »

Ну хорошо, не надо костыль, надо просто цифирку. Мало ли где понадобится узнать координаты своего окна.
А нужно-то - всего лишь задействовать одну цифирку из dwReserved - младший байт - X, старший - Y. Неужели так сложно?
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Post by zg »

jbak wrote:Неужели так сложно?
алекс пытался тебе культурно намекнуть. но никто ж культурных намёков не понимает, а потом ещё и в хамстве обвиняют… так о чём это я. ах да. на данном этапе всякие умники типа скирдина и прочих там мельниковых надобавляли в фарапи столько неструктуированого мусора, что если продолжать в том же духе, оно, фарапи, вообще перестанет предсказуемо работать… оно тебе надо?
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by t-rex »

Короче, глянул на это дело - оказалось всё очень просто (вроде бы). Вот вам фар который не глючит с раскраской и блоками в неполноэкранных редакторах. Если есть ещё где то глюки с этим делом то говорите.

http://farmanager.com/farbugs/farvedit.rar
User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Post by jbak »

Опередил ты меня. Я как раз с утра собрался дать ЦУ, что, где и как нужно поправить в FAR, а тут смотрю - уже сделано. Спасибо!

Вопрос 1 Это так и останется в новых альфах? Убирать мне костыль из TwoEdit, который с таким Far как раз и приводит к глюкам? Или по каким-то религиозным сображениям будет решено вернуть глюки?

Вопрос 2 А насчёт цифирок - просьба остаётся в силе. Вот захотел я отцентрировать меню EUM по окну неполноэкранного редактора - ан нет у меня двух магических координат! Посоветуешь GetConsoleCursorInfo() ? (здесь как раз подошло). Или всё же задействуешь зарезервированную память?
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by t-rex »

jbak wrote: Вопрос 1 Это так и останется в новых альфах? Убирать мне костыль из TwoEdit, который с таким Far как раз и приводит к глюкам? Или по каким-то религиозным сображениям будет решено вернуть глюки?
Фикс останется.
jbak wrote: Вопрос 2 А насчёт цифирок - просьба остаётся в силе. Вот захотел я отцентрировать меню EUM по окну неполноэкранного редактора - ан нет у меня двух магических координат! Посоветуешь GetConsoleCursorInfo() ? (здесь как раз подошло). Или всё же задействуешь зарезервированную память?
Цифирок пока не будет.
User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Post by jbak »

Вроде всё хорошо.
Вот только обнаружил такой интересный глюк - откуда-то взялись ступеньки в подсветке PHP-блоков в редакторе c ненулевой левой координатой.

Не знаю точно, это к тебе или к автору colorer. На всякий случай запостил.[/img]
Attachments
screen.jpg
screen.jpg (62.36 KiB) Viewed 12364 times
Onanymous
Posts: 76
Joined: Wed 16 Mar, 2005 11:18
Contact:

Post by Onanymous »

это он табы вроде как подсвечивает, был техинфо который управляет подсветкой,можно подсвечивать только первый символ или всю ширину таба, но в техинфо от 2051 я этого не нашел.
Post Reply

Return to “Разработка плагинов”