Выделить и скопировать из режима просмотра (F3)

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Выделить и скопировать из режима просмотра (F3)

Post by DrKnS »

Latest post of the previous page:

citRiks wrote: Mon 24 Feb, 2020 20:42 второй пункт для своей корректной работы должен включать в себя первый
Не должен, потому что уже давно есть.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

DrKnS wrote: Mon 24 Feb, 2020 22:52 Не должен, потому что уже давно есть.
В смысле использовать односимвольный (длина=1) selection как курсор?
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

еще идея и вопрос вот такой
Речь про feature "selection with Shift-Click, Shift-Click"
Во вьювере мы можем кликать мышью и вьювер знает какая это позиция в файле.
т.е., переводит экранную позицию в позицию в файле
Вопрос, может эту замечательную функицю во вьювер АПИ?
Никакую функциональность это не ломает и не меняет, просто будет экспорт наружу.
было бы например так:

Code: Select all

viewer.ScreenPosToFilePos(X, Y) 
viewer.FilePosToScreenPos(offset) 
м..?
Last edited by citRiks on Tue 25 Feb, 2020 16:51, edited 1 time in total.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Выделить и скопировать из режима просмотра (F3)

Post by DrKnS »

citRiks wrote: Tue 25 Feb, 2020 16:39 В смысле использовать односимвольный (длина=1) selection как курсор?
В смысле "multi string multi page selection" есть и без курсора.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

DrKnS wrote: Tue 25 Feb, 2020 19:51 В смысле "multi string multi page selection" есть и без курсора.
Мышью?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Выделить и скопировать из режима просмотра (F3)

Post by DrKnS »

Ну да.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

DrKnS, на мой взгляд, это не интуитивно, идеологически неверно, неудобно
А что насчет

Code: Select all

viewer.ScreenPosToFilePos(X, Y) 
viewer.FilePosToScreenPos(offset)
или хотя бы viewer.ScreenPosToFilePos(X, Y)
?
Last edited by citRiks on Wed 26 Feb, 2020 06:19, edited 1 time in total.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Выделить и скопировать из режима просмотра (F3)

Post by DrKnS »

А что вы будете с этим делать? Диалог типа "Введите координаты начала/конца выделения"?
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Выделить и скопировать из режима просмотра (F3)

Post by HaRT »

DrKnS wrote: Wed 26 Feb, 2020 10:55 А что вы будете с этим делать? Диалог типа "Введите координаты начала/конца выделения"?
Ну, можно хотя бы намакросить управление выделением без участия мыши, что уже полезно.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

DrKnS,
Как ХаРТ справедливо заметил, именно так.
Хотя и сейчас мы тоже можем задавть выделение файла по координатам в байтах.
Но если уже будет возможность это делать по экранным координатам,
то это будет более гуманно и к пользователю АПИ вьювера ФАРа (писателю на Луа),
так и без лишней нагрузки разработчику ФАРа.
Надо бы просто вынести наружу в АПИ существующий внутренний переводчик "позиция на экране => позиция байта"
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Выделить и скопировать из режима просмотра (F3)

Post by zg »

citRiks wrote: Wed 26 Feb, 2020 06:18viewer.FilePosToScreenPos(offset)
зачем?
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

zg,
Например, чтобы знать находится ли интересующая нас точка (=позиция, =символ) файла в экранном буфере или же за его пределами.
Если за пределами, то в принципе достаточно будет получить {X= -1, Y= -1}
И\или знать начало и конец в байтах экранного буфера, например получать так
viewer.ScreenStarCharOffset
viewer.ScreenEndCharOffset
Или, если это возможно, выдавать {Х=300, Y = -12345} - точка справа за пределом экрана и наверху за пределом экрана.
Другой подобный use case:
мы сделали выделение скриптом,
но не знаем видит ли юзер его начало, конец, середину, или вообще не видит.
И чтобы прокрутить экран туда куда нужно если нужно.
Last edited by citRiks on Wed 26 Feb, 2020 14:58, edited 1 time in total.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Выделить и скопировать из режима просмотра (F3)

Post by DrKnS »

citRiks wrote: Wed 26 Feb, 2020 14:21именно так
Добавить, конечно, можно. Можно и диалог такой прямо в фар засунуть. А как этим пользоваться?
Вот есть экран текста. Как вы невооруженным глазом определите координаты нужной вам позиции? Возьмете карандаш и будете по экрану водить и строки в уме считать? Так проще мышь взять.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Выделить и скопировать из режима просмотра (F3)

Post by zg »

citRiks wrote: Wed 26 Feb, 2020 14:57Например, чтобы знать находится ли интересующая нас точка (=позиция, =символ) файла в экранном буфере или же за его пределами.
вы получаете позицию в файле для начала экрана и для конца и сравниваете. поэтому я всё ещё жду практический пример использования FilePosToScreenPos.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

zg wrote: Wed 26 Feb, 2020 15:04 Bы получаете позицию в файле для начала экрана и для конца и сравниваете
Позиция (в байтах) начала экрана у нас есть, но нет позиции конца экрана (в байтах), или где она в существующем АПИ?
Отмечу что в экране может помещаться любое количество байтов, поэтому вот так НЕ получится:
ПозицияКонцаЭкранаВБайтах = ПозицияНачалаЭкранаВБайтах + ДлинаЭкрана{УмножитьНа}ШиринаЭкрана
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

DrKnS wrote: Wed 26 Feb, 2020 15:03
citRiks wrote: Wed 26 Feb, 2020 14:21именно так
Добавить, конечно, можно. Можно и диалог такой прямо в фар засунуть. А как этим пользоваться?
Вот есть экран текста. Как вы невооруженным глазом определите координаты нужной вам позиции? Возьмете карандаш и будете по экрану водить и строки в уме считать? Так проще мышь взять.
Не, сценарий нужности не такой совсем, для того и нужен такой АПИ который я спрашиваю,
чтобы не считать ни в уме ни в Луа.
А искомый сценарий такой:
1.) Эмуляция курсора на вьювере
2.) Чтобы его эмулировать, мы рисуем на экране что нибудь мигающее.
Пусть для начала в позиции экрана {Х= 20, У = 20}
Вот он там сидит себе мигает.
3.) А привязки к позиции в файле то нет..
как соотнести позицию {20, 20} с файлом?
А соотносить надо, например чтобы отметить "вот тут начало selection".
Вы скажете "есть же позиция начала экрана viewer.FilePos, чего же тебе еще надо, хороняка!?"
Да, позиция начала экрана есть, но с этой позиции у нас есть 20 строк произвольной длины,
что значит позиция начала экрана нам никак не помогает, а надо знатъ позицию экрана в файле,
т.е. функцию ScreenPosToFilePos(Х, У) {retruns} offset
Вьювер-то внутри себя ее имеет, использует для выделения мышью, но ее нету в АПИ
Post Reply

Return to “Предложения и идеи”