YAC: Yet Another Completion — Ещё Одна Дополнялка

Здесь можно обсудить ваш любимый плагин.
User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by DrKnS » Thu 09 Oct, 2008 18:29

Latest post of the previous page:

HaRT wrote:А ещё хотелось бы иметь дополнение по типу Команда после Оператор конвейера ‘|’ и Операторов объединения команд ‘||’, ‘&’ и ‘&&’
Мне бы тоже хотелось :)
Это не очень сложно?
Сделать в лоб — наверное, просто. Избавиться от неоднозначности — сложнее.

User avatar
John Doe
Бюрократ
Posts: 12323
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 168 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by John Doe » Fri 06 Mar, 2009 11:52

После апдейта с помощью плагина Update фар перезагружается.
И в этом "перегруженном" фаре YAC теряет способность допольнять алиасы.

Причём сами алиасы прекрасно работают, но YAC их не видит.

Тот же эффект можно наблюдать без Update - при использовании Conemu



Проверено в FAR 1.7 и FAR 2

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by DrKnS » Fri 06 Mar, 2009 15:20

Что-то не получается повторить.
Давай с подробностями, по шагам.

User avatar
John Doe
Бюрократ
Posts: 12323
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 168 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by John Doe » Fri 06 Mar, 2009 18:45

Оказывается глючит только если задано большое количество алиасов.
Подготовил минимально-глючащий набор алиасов - test.doskey
(Алиасы специально взял отфонаря)

Если удалить последнюю строчку - глючит перестаёт.

1) Распаковываем приложенный архив в %FARHOME%
2) в far.cmd правим путь к YAC
3) Запускаем conemu.cmd

Можно и без Conemu, но тогда необходимо срабатывание плагина Update (Т.е. нужен заведомо старый far.exe)
Attachments
test.7z
(97.44 KiB) Downloaded 126 times

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by DrKnS » Fri 06 Mar, 2009 21:05

Ага, вижу.
Только у меня глючить начинает на примерно вдвое большем количестве.
Похоже, в винде есть какое-то ограничение - функция-получатель списка обламывается с ERROR_NOT_ENOUGH_MEMORY.
А плагин результат не проверяет :oops:, потому и выводит мусор.

Всё что я тут могу сделать - показывать сообщение, что, мол, не судьба.

User avatar
HaRT
Moderator
Posts: 8830
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 86 times
Been thanked: 151 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by HaRT » Fri 06 Mar, 2009 21:32

DrKnS wrote:Всё что я тут могу сделать - показывать сообщение, что, мол, не судьба.
А нельзя ли запросить меньший список?
Если нельзя, то хотелось бы, чтобы сообщение об ошибке выводилось в такой форме, которая не требует нажатия дополнительных кнопок. Например, всплывающая подсказка с временем жизни 5-10 секунд, а в идеале и с возможностью её задержать.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by DrKnS » Fri 06 Mar, 2009 21:40

А нельзя ли запросить меньший список?
Увы.
Например, всплывающая подсказка с временем жизни 5-10 секунд, а в идеале и с возможностью её задержать.
Разве что в трее :)

User avatar
HaRT
Moderator
Posts: 8830
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 86 times
Been thanked: 151 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by HaRT » Fri 06 Mar, 2009 21:42

DrKnS wrote:Разве что в трее
А что, разве Фаровский диалог не может сам себя закрыть по таймауту?
Там прекрасно могли бы уживаться сообщение об ошибке, счётчик оставшихся секунд и кнопки Задержать и Закрыть.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by DrKnS » Fri 06 Mar, 2009 21:54

Может, а смысл?
Диалог модален и всё равно с фаром делать ничего нельзя, пока он не закроется.

User avatar
John Doe
Бюрократ
Posts: 12323
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 168 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by John Doe » Sat 07 Mar, 2009 09:23

DrKnS wrote:Похоже, в винде есть какое-то ограничение - функция-получатель списка обламывается с ERROR_NOT_ENOUGH_MEMORY.
Неужели ConEmu и Update отжирают столько памяти?

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by DrKnS » Sat 07 Mar, 2009 09:33

Ну я не знаю, как они там на ситуацию влияют, у меня и без них повторяется.

Кстати, проверь:
doskey /macros:all
- в такой ситуации тоже скорее всего ничего не покажет.

User avatar
John Doe
Бюрократ
Posts: 12323
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 168 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by John Doe » Sat 07 Mar, 2009 10:23

В том-то и дело что doskey /macros:all показывает всё как надо.
(имею ввиду случай с ConEmu)

Сейчас попробую увеличить количество алиасов. Возможно что тогда уже ничего не будет работать, но пока проблема именно в том что doskey /macros:all работает, а YAC - нет

User avatar
John Doe
Бюрократ
Posts: 12323
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 168 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by John Doe » Sat 07 Mar, 2009 11:08

Проверил без сторонних плагинов

1000 алиасов - не работают ни YAC ни doskey /macros:all (но сами алиасы прекрасно запускаются)
750 алиасов - YAC не работает а doskey /macros:all - работает.

Если добавляем в уравнение ConEmu (или Update), то YAC начинает глючить ещё раньше (300 с небольшим - в зависимости от длины самих алиасов)
Attachments
test750.7z
(15.25 KiB) Downloaded 127 times

Nikolay
Posts: 542
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 14 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by Nikolay » Sat 07 Mar, 2009 13:33

DrKnS wrote:Похоже, в винде есть какое-то ограничение - функция-получатель списка обламывается с ERROR_NOT_ENOUGH_MEMORY.
О каком списке речь? Какая виндовозная функция тут валится с ERROR_NOT_ENOUGH_MEMORY?

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by DrKnS » Sat 07 Mar, 2009 13:38

Какая виндовозная функция тут валится с ERROR_NOT_ENOUGH_MEMORY?
Эта.

Nikolay
Posts: 542
Joined: Sat 14 Jan, 2006 17:17
Has thanked: 1 time
Been thanked: 14 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by Nikolay » Sat 07 Mar, 2009 19:44

DrKnS wrote:
Какая виндовозная функция тут валится с ERROR_NOT_ENOUGH_MEMORY?
Эта.
Да, есть такая беда. Технически говоря, максимальный размер хипа, используемого в том числе для вытаскивания алиасов, получения заголовка консоли, чтения ввода и многих других консольных функций == 65536. И частично он уже заполнен, вот и прилетает тут птица обломинго...

User avatar
HaRT
Moderator
Posts: 8830
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 86 times
Been thanked: 151 times

Re: YAC: Yet Another Completion — Ещё Одна Дополнялка

Post by HaRT » Tue 10 Mar, 2009 14:47

DrKnS wrote:Может, а смысл?
Диалог модален и всё равно с фаром делать ничего нельзя, пока он не закроется.
А смысл в том, что как раз пока прочитаешь и осмыслишь сообщение, окошко-то само и закроется. Кто очень спешит, жмякнет кнопку «Закрыть», кто не успел осмыслить — кнопку «Задержать», а в большинстве случаев ничего предпринимать и не понадобится. Рост usability налицо. ;-)
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

Return to “Обсуждение плагинов”