Структура EditorInfo

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

Структура EditorInfo

Post by jbak » Wed 22 Feb, 2006 13:35

Нельзя ли в новых версиях добавить в EditorInfo поля, в которых были бы координаты верхнего левого угла редактора (если он неполноэкранный)? Или подскажите, как можно получить эти координаты из имеющихся данных.
Пробовал что-то слепить из GetConsoleCursorInfo(), EditorInfo::LeftPos и EditorInfo::CurPos - не срабатывает (на EE_REDRAW в EditorInfo приходит уже изменённая позиция курсора, в то время, как GetConsoleCursorInfo() даёт не обновлённую позицию. Как быть?

User avatar
t-rex
Страшный и ужасный
Posts: 4901
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Contact:

Post by t-rex » Wed 22 Feb, 2006 15:04

Не понял. Что именно тебе надо и зачем?

User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Post by jbak » Wed 22 Feb, 2006 15:16

Нужно
Узнать координаты левого верхнего угла неполноэкранного редактора
Зачем это нужно
Например, чтобы нормально раскрасить символы в таком редакторе (если этих координат не знаешь - ничего не получится).

User avatar
t-rex
Страшный и ужасный
Posts: 4901
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Contact:

Post by t-rex » Wed 22 Feb, 2006 15:29

jbak wrote:Нужно
Узнать координаты левого верхнего угла неполноэкранного редактора
Зачем это нужно
Например, чтобы нормально раскрасить символы в таком редакторе (если этих координат не знаешь - ничего не получится).
У тебя есть WindowSizeX, WindowSizeY, TopScreenLine, LeftPos так что всё можно высчитать.

User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Post by jbak » Wed 22 Feb, 2006 15:50

Иногда можно (если приплести ещё GetConsoleCursorInfo()).
А вот не скажешь ли, как это сделать в EE_REDRAW? У меня не получилось.

User avatar
t-rex
Страшный и ужасный
Posts: 4901
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Contact:

Post by t-rex » Wed 22 Feb, 2006 15:55

В чём проблема? И нафига ещё GetConsoleCursorInfo?
Или это надо для EUM?

User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Post by jbak » Wed 22 Feb, 2006 16:26

Хорошо, реальный пример.
Курсор во второй строке, в 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: 4901
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Contact:

Post by t-rex » Wed 22 Feb, 2006 16:34

Блин, ты хочешь костыль для глюка фара с неполноэкранными редакторами. Нефиг нам такие костыли. Лучше уж как нибудь починить этот глюк. А пока используй тока горизонтальные редакторы там вроде меньше глюков.

User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Post by jbak » Wed 22 Feb, 2006 16:40

Ну хорошо, не надо костыль, надо просто цифирку. Мало ли где понадобится узнать координаты своего окна.
А нужно-то - всего лишь задействовать одну цифирку из dwReserved - младший байт - X, старший - Y. Неужели так сложно?

User avatar
zg
zero-gravity
Posts: 5587
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 92 times
Contact:

Post by zg » Wed 22 Feb, 2006 20:11

jbak wrote:Неужели так сложно?
алекс пытался тебе культурно намекнуть. но никто ж культурных намёков не понимает, а потом ещё и в хамстве обвиняют… так о чём это я. ах да. на данном этапе всякие умники типа скирдина и прочих там мельниковых надобавляли в фарапи столько неструктуированого мусора, что если продолжать в том же духе, оно, фарапи, вообще перестанет предсказуемо работать… оно тебе надо?

User avatar
t-rex
Страшный и ужасный
Posts: 4901
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Contact:

Post by t-rex » Thu 23 Feb, 2006 03:12

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

http://farmanager.com/farbugs/farvedit.rar

User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Post by jbak » Thu 23 Feb, 2006 10:03

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

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

Вопрос 2 А насчёт цифирок - просьба остаётся в силе. Вот захотел я отцентрировать меню EUM по окну неполноэкранного редактора - ан нет у меня двух магических координат! Посоветуешь GetConsoleCursorInfo() ? (здесь как раз подошло). Или всё же задействуешь зарезервированную память?

User avatar
t-rex
Страшный и ужасный
Posts: 4901
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Contact:

Post by t-rex » Thu 23 Feb, 2006 14:55

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 » Fri 24 Feb, 2006 09:46

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

Не знаю точно, это к тебе или к автору colorer. На всякий случай запостил.[/img]
Attachments
screen.jpg
screen.jpg (62.36 KiB) Viewed 11781 times

Onanymous
Posts: 76
Joined: Wed 16 Mar, 2005 11:18
Contact:

Post by Onanymous » Fri 24 Feb, 2006 10:19

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

User avatar
jbak
Posts: 609
Joined: Tue 04 Oct, 2005 15:01
Location: Одесса

Post by jbak » Fri 24 Feb, 2006 10:24

А, блин, точно.
Это ESC у меня вдруг перестал заменять табы на пробелы. Починил.

Post Reply

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