Автодополнение в диалогах

Хотите говорить о Far и не знаете, куда обратиться?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Автодополнение в диалогах

Post by DrKnS »

Latest post of the previous page:

Такого режима пока нет, да.
User avatar
CDK
Posts: 309
Joined: Thu 28 Apr, 2005 08:28
Has thanked: 13 times
Been thanked: 3 times
Contact:

Автодополнение в диалогах

Post by CDK »

Ясно.

Если, вдруг, решитесь это поменять, то есть еще один момент: в списке дополнения, в разделе Files все пути с пробелами выводятся в кавычках, даже если System.QuotedName = 0.
На сколько я понял, это из-за комманд-лайна - чтобы в нем такие пути были в кавычках всегда?
Можно ли попросить добавить настройку, например, в far:config, отключающие эти кавычки для списка автодополнения (в идеале раздельно для диалога, комманд-лайна, ..., например integer)?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Автодополнение в диалогах

Post by DrKnS »

Поменять можно всё, но пока не очевидно, как.

Кавычки там критичны, увы - без них не понять, чего от нас хотят. Пример:
1. Ввели c:\pro, вызвали дополнение и получили C:\Program Files\.
2. Ввели my: C:\Program Files\my. Вызвали дополнение.

Чего хочет пользователь? Вероятно, "MyFile.txt" из подкаталога Files текущего каталога, т. к. хочет открыть его в C:\program.exe, да?
User avatar
CDK
Posts: 309
Joined: Thu 28 Apr, 2005 08:28
Has thanked: 13 times
Been thanked: 3 times
Contact:

Автодополнение в диалогах

Post by CDK »

Да, я понял что логика начинает хромать.
Сейчас автодополнение ищет в C:\Program Files\ только если оно в кавычках. В итоге при отключении кавычек автодополнение начинает работать по другому.
Если только делать совсем страшный алгоритм - скачем от места ввода до начала строки по словам и в список автодополнения вставляем все что подходит. Т.е. для C:\Program Files\My в список автодополнения должно попасть:
C:\Program Files\MyFile.txt
Files\my.rar - если есть каталог Files в текущем каталоге и в нем my.rar
Last edited by CDK on Mon 10 Apr, 2017 12:14, edited 1 time in total.
User avatar
CDK
Posts: 309
Joined: Thu 28 Apr, 2005 08:28
Has thanked: 13 times
Been thanked: 3 times
Contact:

Автодополнение в диалогах

Post by CDK »

В общем, для себя я сделал так: если кавычки не вставляются, то ищем как обычно и если ничего не находим, то ищем с начала строки. Если это применять только в диалоге и только если уже нет кавычек, то вроде бы никаких логических глюков нет (неделю уже так работаю с ним).
Если все-таки решитесь это добавить, то, конечно, нужна еще настройка в far:config.

В аттаче мой вариант editcontrol.cpp (изменения помечены). Там еще добавлено сохранение регистра при вводе, CtrlSpace при отключенном Show Dialog и поправлено неправильное выделение при вводе обратного слэша перед закрывающей кавычкой. Для CtrlSpace при этом нужен Modal mode.
PS: в C++ я как свинья в апельсинах, поэтому что-то может быть неправильно/неоптимально/...
Attachments
editcontrol.zip
(7.43 KiB) Downloaded 106 times
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Автодополнение в диалогах

Post by DrKnS »

Лучше svn diff имяфайла
User avatar
CDK
Posts: 309
Joined: Thu 28 Apr, 2005 08:28
Has thanked: 13 times
Been thanked: 3 times
Contact:

Автодополнение в диалогах

Post by CDK »

Сделал.
Attachments
editcontrol.diff
(5.22 KiB) Downloaded 160 times
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Автодополнение в диалогах

Post by DrKnS »

"добавлено сохранение регистра при вводе" и "поправлено неправильное выделение при вводе обратного слэша перед закрывающей кавычкой" добавил.
Также там был баг в том, что список сортировался с учетом добавленных кавычек (которые, внезапно, всегда сверху). Возможно, теперь даже с кавычками будет терпимо.
Остальное, пожалуйста, 1) на багтрекер и 2) лучше отдельные логические изменения отдельными патчами.
User avatar
CDK
Posts: 309
Joined: Thu 28 Apr, 2005 08:28
Has thanked: 13 times
Been thanked: 3 times
Contact:

Автодополнение в диалогах

Post by CDK »

С сохранением регистра есть нюанс (не уверен что исправимый):
0) на пассивной панели, например, C:\
1) жмем, например, F5 (стандартный диалог копирования)
2) вводим c:\p
3) вводим r - ожидаем увидеть c:\program Files (срабатывает автодополнение), но получаем "C:\Program Files"

Т.е. в момент когда в строку автоматически вставились кавычки - регистр поменялся.

PS: для точной повторимости в идеале нужно историю чистить, чтобы подставляло из Files
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Автодополнение в диалогах

Post by DrKnS »

Теоретически исправимо, но нужны более масшабные изменения. Лучше на багтрекер.
User avatar
CDK
Posts: 309
Joined: Thu 28 Apr, 2005 08:28
Has thanked: 13 times
Been thanked: 3 times
Contact:

Автодополнение в диалогах

Post by CDK »

Там есть https://bugs.farmanager.com/view.php?id=3216 - в него?
Или лучше новый открыть, а этот тогда закроете?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Автодополнение в диалогах

Post by DrKnS »

Туда нормально.
eugene128
Posts: 9
Joined: Thu 24 Aug, 2017 06:43
Has thanked: 1 time

Автодополнение в диалогах

Post by eugene128 »

У автодополнения довольно неожиданное поведение, когда добавляем что-то в начало строки. (включено "Подставлять первый подходящий вариант").
Типичный случай - переименовать, добавив какое-то слово в начале.
Пример: создаем, например, папку с именем "abcd abcd". Хотим ее переименовать в "2017 abcd abcd". Нам нужно поставить курсор в начало имени и написать "2017 ". Что происходит при автодополнении? Пишем "2", курсор оказывается в конце слова, и предлагаемый текст 2abcd "abcd abcd" - именно так, с кавычками. Кажется не то, что нам нужно? Исправляем, удаляем лишнее, продолжаем писать "0", результат: 20abcd "abcd abcd".
Это правильно или нет? Мне кажется, автодополнение должно срабатывать только в конце набранного текста, а не посередине.
eugene128
Posts: 9
Joined: Thu 24 Aug, 2017 06:43
Has thanked: 1 time

Автодополнение в диалогах

Post by eugene128 »

Уважаемые разработчики, кто-то может это прокомментировать?
Shtirla
Posts: 117
Joined: Wed 04 Mar, 2009 20:09
Has thanked: 10 times
Been thanked: 2 times

Автодополнение в диалогах

Post by Shtirla »

Я конечно не разработчик фара, а что вас собственно заставляет выбирать результат автозаполнения?
f7 abcd abcd Enter
ShiftF6 Home 2017_ Enter
отключите подставлять 1 вариант, зачем оно вам?, +1 движение стрелкой вниз убрать?
Shtirla
Posts: 117
Joined: Wed 04 Mar, 2009 20:09
Has thanked: 10 times
Been thanked: 2 times

Автодополнение в диалогах

Post by Shtirla »

а вообще да с включеной галкой некорректное поведение
Post Reply

Return to “Обсуждение Far Manager”