Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Асинхронный режим работы макроса #36

Closed
johnd0e opened this issue Jun 12, 2023 · 14 comments
Closed

Асинхронный режим работы макроса #36

johnd0e opened this issue Jun 12, 2023 · 14 comments

Comments

@johnd0e
Copy link

johnd0e commented Jun 12, 2023

..при котором бы он не ждал окончания фаровской операции (типа копирования, подсчёта размера, построения дерева), которая была запущена клавишей из Keys.

Проблема: макродвижок по умолчанию "нажимает клавиши" синхронно: очередное нажатие возвращает управление после завершения операции, вызванной этим нажатием.
Поэтому текущая реализация предусматривает запрет обработки клавиатуры в процессе операции, что приводит к невозможности прервать (затянувшуюся) операцию штатным образом (Esc/CtrlBreak).

Потенциальное решение: предусмотреть возможность как-то явно указать, для определённых случаев, что синхронность не нужна. Например mf.mode(3) и/или Keys("EnAsync/NoWait",...).

Источник: https://bugs.farmanager.com/view.php?id=2692

@shmuz
Copy link
Owner

shmuz commented Jun 12, 2023

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

@johnd0e
Copy link
Author

johnd0e commented Jun 12, 2023

не подумайте, что выпендриваюсь

И в мыслях не было

@shmuz
Copy link
Owner

shmuz commented Jun 14, 2023

Потенциальное решение: предусмотреть возможность как-то явно указать, для определённых случаев, что синхронность не нужна. Например mf.mode(3) и/или Keys("EnAsync/NoWait",...).

Желательно конкретный случай рассмотреть.

  1. Макрос копирования (очень большого, для наглядности) файла: lua: Keys("F5 Enter")
    Прервать копирование не получится, и даже окошко копирования на экране не появится.
  2. lua: Keys("F5 EnOut Enter") - здесь всё нормально.

@johnd0e
Copy link
Author

johnd0e commented Jun 14, 2023

Желательно конкретный случай рассмотреть.

Подсчёт размера директории - F3 или CtrlQ.
Другие действительно решаются EnOut

@shmuz
Copy link
Owner

shmuz commented Jun 15, 2023

Если эту строку закомментировать, то можно прервать запущенные из макроса как F3, так и CtrlQ.
Там правда появляются другие эффекты, если в макросе после Keys("F3") есть что-то ещё.

@johnd0e
Copy link
Author

johnd0e commented Jun 15, 2023

Всё верно, это обсуждалось ещё на мантисе, и было решено что со спецэффектами не годится.

Вопрос: можно ли тут сделать так же как при копировании, и при построении дерева: и прервать можно, и синхронность не нарушена.

И если это проблематично, тогда не сделать ли то, что предлагается тут в первом сообщении.

@shmuz
Copy link
Owner

shmuz commented Jun 15, 2023

Сейчас я как раз играюсь с кодом, пробую разные варианты.

@shmuz
Copy link
Owner

shmuz commented Jun 15, 2023

Можно проверять F3 и CtrlQ :)

@johnd0e
Copy link
Author

johnd0e commented Jun 15, 2023

FarGroup/FarManager#706

@johnd0e
Copy link
Author

johnd0e commented Jun 15, 2023

Я вижу что прерывание работает даже без Keys"EnOut".
Значит стоит использовать тот же подход и в других местах?

@shmuz
Copy link
Owner

shmuz commented Jun 16, 2023

Да, только нужно будет немного поглубже разобраться.

По поводу возможности прерывать сканирование директорий мышью, далеко не уверен, что это правильно
(впрочем, можно и разрешить).

johnd0e added a commit to johnd0e/FarManager that referenced this issue Jun 16, 2023
@shmuz
Copy link
Owner

shmuz commented Jun 16, 2023

Что-то ещё есть или можно закрывать?

@johnd0e
Copy link
Author

johnd0e commented Jun 16, 2023

Если в этом направлении более ничего пока не планируется, то да.

@shmuz
Copy link
Owner

shmuz commented Jun 17, 2023

OK.
Если появятся новые идеи или данные, всегда можно будет переоткрыть или открыть новый.

@shmuz shmuz closed this as completed Jun 17, 2023
johnd0e added a commit to johnd0e/FarManager that referenced this issue Jun 17, 2023
johnd0e added a commit to johnd0e/FarManager that referenced this issue Jun 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants