О немодальности макрообластей *AutoCompletion и Search

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 14175
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 80 times
Been thanked: 454 times
Contact:

О немодальности макрообластей *AutoCompletion и Search

Post by John Doe »



С некоторых пор у нас прибавились 2 области, задуманные как немодальные (DialogAutoCompletion и ShellAutoCompletion).
И тут уже проблема встаёт ребром, т.к. автодополнение включено по умолчанию, и крайне навязчиво.
Соответственно каждый пользователь много раз в день с ним сталкивается.
И даже странно, почему на форуме так мало жалоб на несрабатывание макросов, назначенных на Shell или Dialog.
Вероятно половина пользователей отключила макросы, а вторая "наворотила макросы" (например: http://forum.farmanager.com/viewtopic.p ... 431#p87431 и http://forum.farmanager.com/viewtopic.p ... 90#p102590

Предлагается
В случае если в областях Search или *AutoCompletion нажата неперехватываемая клавиша, то надо не просто передавать её в родительскую область, но и вызывать макросы (при их наличии в родительских областях)
User avatar
NightRoman
Posts: 6197
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 34 times
Been thanked: 62 times
Contact:

Re: О немодальности макрообластей *AutoCompletion и Search

Post by NightRoman »

И даже странно, почему на форуме так мало жалоб на несрабатывание макросов, назначенных на Shell или Dialog.
Предположу, потому что как бы смирились, что при открытом автодополнении не все работает, и вручную сначала убирают автодополнение Esc-ом.
User avatar
Smitis
Posts: 1716
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 56 times

Re: О немодальности макрообластей *AutoCompletion и Search

Post by Smitis »

Как-то стало само собой разумеющемся дублировать макросы на область Shell и Search
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 14175
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 80 times
Been thanked: 454 times
Contact:

Re: О немодальности макрообластей *AutoCompletion и Search

Post by John Doe »

Я не понял, вы поддерживаете предложение, или наоборот, мол нафиг надо, уже привыкли корячиться?
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: О немодальности макрообластей *AutoCompletion и Search

Post by Max Rusov »

Проблема в том, что макрос назначенный на область, скажем, Dialog, скорее всего не будет работать корректно, если активно автодополнение. Так какой смысл автоматически вызывать макрос, который все равно глючит? А если макрос _адаптирован_ для работы при автодополнении, то это несложно (теперь) указать, расширив Area.
User avatar
John Doe
Бюрократ
Posts: 14175
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 80 times
Been thanked: 454 times
Contact:

Re: О немодальности макрообластей *AutoCompletion и Search

Post by John Doe »

Пардон, но я в корне не согласен.

Области, о которых мы говорим - немодальны, и закрываются перед передачей клавиши в родительскую.
Т.е. клавиша приходит уже в родительскую область. Что макросами, что без - разницы нет.

По идее то что я предлагаю абсолютно совместимо с текущим поведением, и ни один макрос не сломается.
Зато половину можно будет убрать/упростить.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: О немодальности макрообластей *AutoCompletion и Search

Post by Max Rusov »

Не совсем так. Многие функции меняют свое поведение при вызове из DialogAutoCompletion. Например:
Dlg.GetValue, Object.CurPos, Object.ItemCount... и фиг знает какие еще.

Поэтому, чтобы быть уверенным, что макрос отработает как надо, в нем все равно приходится писать вначале что-то типа:

Code: Select all

if Area.DialogAutoCompletion then 
  Keys("Esc")
end
User avatar
NightRoman
Posts: 6197
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 34 times
Been thanked: 62 times
Contact:

Re: О немодальности макрообластей *AutoCompletion и Search

Post by NightRoman »

John Doe wrote:Я не понял, вы поддерживаете предложение, или наоборот, мол нафиг надо, уже привыкли корячиться?
Я согласен, что неплохо бы улучшить ситуацию. Улучшит ли то, что предложено, пока не уверен. А может и хуже будет. "Гладко было на бумаге, да забыли про овраги."
User avatar
John Doe
Бюрократ
Posts: 14175
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 80 times
Been thanked: 454 times
Contact:

Re: О немодальности макрообластей *AutoCompletion и Search

Post by John Doe »

Max Rusov wrote:Не совсем так. Многие функции меняют свое поведение при вызове из DialogAutoCompletion. Например:
Dlg.GetValue, Object.CurPos, Object.ItemCount... и фиг знает какие еще.
Нет.

1) Нажимается клавиша. Автодополнение (или быстрый поиск) на них не претендуют, и макросов в своей области на эту клавишу нет.
2) Автодополнение (или быстрый поиск) закрываются. Контекст переключается на родительскую область (панели или диалог)
3) В родительской области есть макрос на эту клавишу.

В момент вызова макроса контекстом должна являться родительская область.
User avatar
NightRoman
Posts: 6197
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 34 times
Been thanked: 62 times
Contact:

Re: О немодальности макрообластей *AutoCompletion и Search

Post by NightRoman »

Вот, скажем, альтернативное предложение. Завести области EditBox и CommandLine (или их общее EditLine). Пусть Фар сам разберется имеется ли в данный момент строка редактора [*], пропустит клавиши в строку редактора, уберет проблемное автодополнение сам.

[*] - а это не такая и простая задача для неискушенного юзера. В текущем диалоге не едит-бокс может быть активным. А для коммандной строки нужно указывать не только шелл, но и кучу других областей панелей (дерево, инфо, т.п.).

В общем, улучшать ситуацию не обязательно в лоб. Хочется чего-то гладкого и реально удобного.
User avatar
NightRoman
Posts: 6197
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 34 times
Been thanked: 62 times
Contact:

Re: О немодальности макрообластей *AutoCompletion и Search

Post by NightRoman »

John Doe, до опыта кажется, что в шелл твое предложение может улучшить ситуацию (отметем пока страхи о подводных камнях). А в диалоге вряд ли принципиально улучшит. Получается половинчатое какое-то решение.
User avatar
John Doe
Бюрократ
Posts: 14175
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 80 times
Been thanked: 454 times
Contact:

Re: О немодальности макрообластей *AutoCompletion и Search

Post by John Doe »

Может мы о разных вещах говорим?
Моё предложение позволит при написании макроса не задумываться о возможности наличия на экране активного автодополнения.
Как в панелях, так и в диалоге.

Не вижу разницы вообще. Где половинчатость?
User avatar
John Doe
Бюрократ
Posts: 14175
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 80 times
Been thanked: 454 times
Contact:

Re: О немодальности макрообластей *AutoCompletion и Search

Post by John Doe »

NightRoman wrote:Завести области EditBox и CommandLine (или их общее EditLine)
NightRoman wrote:А для коммандной строки нужно указывать не только шелл, но и кучу других областей панелей (дерево, инфо, т.п.).
Ранее обсуждалось, могу найти пару ссылок. Очень интересно, но сильно неоднозначно.
И главное - выходит далеко за рамки предложенной здесь темы.
User avatar
NightRoman
Posts: 6197
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 34 times
Been thanked: 62 times
Contact:

Re: О немодальности макрообластей *AutoCompletion и Search

Post by NightRoman »

Я не возражаю, что предложение имеет смысл. Но предлагаю не торопиться. Макросы сейчас все еще в процессе перехода. Может, еще что-то поменяется в них, и гораздо более удачное решение придет "само". Ну или не само, но в каком-то виде, который мы пока не можем придумать, а в "новых" макросах сможем.
User avatar
NightRoman
Posts: 6197
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 34 times
Been thanked: 62 times
Contact:

Re: О немодальности макрообластей *AutoCompletion и Search

Post by NightRoman »

Сейчас, да, приходится "корячиться". Но покорячился немного один раз, и потом долго и хорошо работает. После внедрения предложения опять надо все отлаживать устаканивать, да потом еще выяснится, что поменяли шило на мыло.
Post Reply

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