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

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

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

Post by DrKnS »

Latest post of the previous page:

HaRT
У меня с приведёнными настройками дописывает.
По идее, винда добавляет содержимое этого ключа к копии переменной path запускаемого процесса, т. е. должно работать и без лишних ухищрений.
Если в комстроке фара сделать set path, "C:\Program Files\Far" там видно?

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

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

Post by HaRT »

DrKnS wrote:Если в комстроке фара сделать set path, "C:\Program Files\Far" там видно?
В том-то и дело, что нет (я заранее проверил). Понял, дело в том, что я запускаю Фар под КонМаном: “"C:\Program Files\Utils\ConMan.exe" "C:\Program Files\Far\Far.exe" -i”. Тогда это уже вопрос к нему.

Кстати, у меня в этой тестовой версии YAC для всех команд svn (настройки импортированы из %FarHome%\Plugins\YAC\context\17\svn.reg) дополняются только ключи --version и --quiet — т.е. заданные прежде для “голого” svn. Как это побороть в новых условиях?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 5618
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 300 times

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

Post by DrKnS »

Эта фича из App Paths работает только если процесс стартует через ShellExecute (Пуск-Выполнить и т. п.), а конман видимо использует CreateProcess.
Как это побороть в новых условиях?
Там формат записи поменялся немного, см. sample.reg в архиве.

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

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

Post by HaRT »

DrKnS wrote:см. sample.reg в архиве
Да видел я его.
Просто я надеялся, что Вы конфигурацию из комплекта поставки уже адаптировали…
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 5618
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 300 times

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

Post by DrKnS »

Адаптировал, на днях выложу всё вместе.

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

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

Post by HaRT »

DrKnS wrote:на днях выложу всё вместе
Спасибо! Ждём с нетерпением.
DrKnS wrote:Эта фича из App Paths работает только если процесс стартует через ShellExecute (Пуск-Выполнить и т. п.), а конман видимо использует CreateProcess.
Но ведь хочется, чтобы логика дополнялки была согласована с логикой запускалки… Т.е. раз SaveSettings нормально запускается, значит, желательно, чтобы он и нормально дополнялся. Может, учитывать и такое дополнение под system aliases?
Last edited by HaRT on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Добавлен второй абзац
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 5618
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 300 times

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

Post by DrKnS »

Фаровский запускатель использует ф-цию SearchPath, которая и находит SaveSettings.bat в своем каталоге.
Со стороны плагина подразумевать, что %farhome% всегда в %path%, будет достаточно?

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

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

Post by HaRT »

DrKnS wrote:подразумевать, что %farhome% всегда в %path%, будет достаточно?
Вполне. Только не “подразумевать, что”, а “как бы добавлять”. ;)
А воспользоваться тем же самым SerachPath сложно?

Кстати, ещё одно мелкое пожелание: чтобы при дополнении регистр заранее введённых символов приводился к регистру используемого дополнения, а то не очень красиво получается, когда в историю командной строки откладываются дополнения вида “wiNDOWS”…
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 5618
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 300 times

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

Post by DrKnS »

HaRT wrote:Вполне. Только не “подразумевать, что”, а “как бы добавлять”.
Это и подразумевалось :)
А воспользоваться тем же самым SerachPath сложно?
Воспользоваться не сложно, но смысл в этом отсутствует чуть более, чем полностью: SearchPath не умеет искать по частично известному имени, и из "sa" "SaveSettings.bat" мы не получим.
чтобы при дополнении регистр заранее введённых символов приводился к регистру используемого дополнения
Угу.

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

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

Post by HaRT »

DrKnS wrote:Угу
Спасибо.

Пара вопросов:
1. Легко ли штатными средствами по префиксу плагина определить, что за плагин (т.е. получить какой-то строковый идентификатор, будь то самоназвание плагина или путь/имя исполняемого файла)? Если несложно, то стоило бы включить эту строку во всплывающую подсказку.
2. Что означает область, обозначаемая “[***]” (про неё даже Area не пишется)?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 5618
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 300 times

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

Post by DrKnS »

HaRT wrote:1. Легко ли штатными средствами по префиксу плагина определить, что за плагин (т.е. получить какой-то строковый идентификатор, будь то самоназвание плагина или путь/имя исполняемого файла)?
Штатными средствами даже сами префиксы получить нельзя, не говоря уже о :)

Плагин получает префиксы двумя путями:
1) анализируя ключ PluginsCache. Теоретически оттуда можно вытянуть и самоназвания, и имя dll.
2) определяя наличие в памяти underscore.dll и запрашивая префиксы у него. В этом случае есть только одна длинная строка с разделителями и плюшек из неё, увы, не получить.
2. Что означает область, обозначаемая “[***]” (про неё даже Area не пишется)?
Означает то, что элемент попал более чем в одну область, например пункт "[***] far.exe" - одновременно и файл в %path%, и имя процесса.

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

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

Post by HaRT »

DrKnS wrote:Теоретически оттуда можно вытянуть и самоназвания, и имя dll
Было бы здорово.
DrKnS wrote:плюшек из неё, увы, не получить
Даже путь к исполняемому модулю?
DrKnS wrote:элемент попал более чем в одну область
Ну тогда просто просится перечислить эти области во всплывающей подсказке и детализировать “главную” (т.к. упорядочить их один раз по “важности”, вероятно, труда не составит).
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 5618
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 300 times

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

Post by DrKnS »

HaRT wrote:Было бы здорово.
Будет.
Даже путь к исполняемому модулю?
Ага :(
Ну тогда просто просится перечислить эти области во всплывающей подсказке и детализировать “главную” (т.к. упорядочить их один раз по “важности”, вероятно, труда не составит).
Может быть.

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

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

Post by HaRT »

DrKnS wrote:
John Doe wrote:[x] Save command tail
Пишешь так:
notepad c:\boot /key1 /key2 /key3
Курсор ставишь после boot, применяешь плагин, он дописывает до c:\boot.ini.
При включенной опции " /key1 /key2 /key3" сохранится, при отключенной поведение аналогично cmd.exe, т. е. не сохранится.
Пишу (хоть в редакторе, хоть в командной строке)

Code: Select all

C:\Windows\tem 1
Ставлю курсор перед единицей, вызываю YAC — получаю (независимо от опции)

Code: Select all

C:\Windows\Temp\
Похоже на ошибку (пример с “notepad c:\boot /key1 /key2 /key3” тоже работает не так, как процитировано).
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 5618
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 300 times

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

Post by DrKnS »

Ага, есть такое, поправил.

montonero
Posts: 402
Joined: Wed 25 Jun, 2008 16:55
Has thanked: 2 times
Been thanked: 7 times

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

Post by montonero »

Есть пожелание: при поиске файлов для списка дополнений, не выводить сообщений об ошибках доступа и т.п. А то у меня в пути есть пара каталогов, в которые заходить нельзя, но запускать файлы, зная имя ехешника - можно. И каждый раз, когда я вызываю плагин мне вываливаются сообщения об отказе в доступе.
"Far... Far never changes..."

Post Reply

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