FarNet — плагин для написания плагинов на .NET языках

Здесь можно обсудить ваш любимый плагин.
User avatar
NightRoman
Posts: 5910
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by NightRoman » Fri 20 Mar, 2015 08:52

Latest post of the previous page:

Может, в редакторе и проч. оба события происходят и KEY_EVENT, и FARMACRO_KEY_EVENT? Иначе непонятно, как Фарнет работал (и работает, и ибо проверка FARMACRO_KEY_EVENT пока только что добавлена только в диалог).

Другое предположение: при вызове макроса через АПИ в редактор и проч. приходит все-таки KEY_EVENT, а не FARMACRO_KEY_EVENT?

Все это я выясню подробнее, но позже, может, не сегодня.

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

Глюки и баги, появившиеся в «ночных сборках»

Post by John Doe » Fri 20 Mar, 2015 09:03

NightRoman wrote: Фарнет не проверяет этот тип события больше нигде и все там работает по KEY_EVENT
Запустите из командной строки lua:Keys "F4 a b c d". Что получит в редакторе Фарнет?
NightRoman wrote: Может, в редакторе и проч. оба события происходят и KEY_EVENT, и FARMACRO_KEY_EVENT?
Не наблюдаю такого (и это было бы лишено всякого смысла).

User avatar
NightRoman
Posts: 5910
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by NightRoman » Fri 20 Mar, 2015 09:12

> Запустите из командной строки lua:Keys "F4 a b c d". Что получит в редакторе Фарнет?
сейчас проверить не могу, проверю позже

> Не наблюдаю такого (и это было бы лишено всякого смысла).
тогда второе предположение, иначе бы тесты в Фарнет не работали.

словом, разберусь, отпишусь. обсуждение надо бы перенести, раз это не бага.

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

Глюки и баги, появившиеся в «ночных сборках»

Post by John Doe » Fri 20 Mar, 2015 09:19

NightRoman wrote: Другое предположение: при вызове макроса через АПИ
При использовании MCTL_SENDSTRING тоже приходит FARMACRO_KEY_EVENT

User avatar
zg
zero-gravity
Posts: 5518
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 80 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by zg » Fri 20 Mar, 2015 09:29

NightRoman wrote:Это так и задумано?
нет.

User avatar
NightRoman
Posts: 5910
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman » Fri 20 Mar, 2015 13:41

zg wrote:
NightRoman wrote:Это так и задумано?
нет.
Ясно, спасибо. Подожду дальшейшего развития тогда.

User avatar
NightRoman
Posts: 5910
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman » Fri 20 Mar, 2015 13:48

John Doe, c магией в Фарнет разобрался, ее нет, конечно. Все верно, в редакторе есть события KEY_EVENT и FARMACRO_KEY_EVENT, и редактор Фарнет про FARMACRO_KEY_EVENT просто не знает. Но это нигде отрицательно не проявляется, так как тестам в редакторе это и не надо, тесты посылают макросы и проверяют *обычную работу Фара* после этого. С тестами в диалоге ситуация другая, тесты посылают макросы и проверяют работу Фара *и плагина, который отработал клавиши*. Поэтому тесты диалогов и отвалились в случае когда FARMACRO_KEY_EVENT стал отдельно приходить.

Про FARMACRO_KEY_EVENT вообще только сегодня узнал. Век живи, учись...

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

FarNet — плагин для написания плагинов на .NET языках

Post by John Doe » Fri 20 Mar, 2015 14:25

NightRoman wrote: редактор Фарнет про FARMACRO_KEY_EVENT просто не знает
Т.е. просто игнорирует их.

User avatar
NightRoman
Posts: 5910
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman » Fri 20 Mar, 2015 15:29

Да.

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

FarNet — плагин для написания плагинов на .NET языках

Post by John Doe » Fri 20 Mar, 2015 15:39

Что если обрабатывать их аналогично KEY_EVENT?
Что покажут тесты?

User avatar
NightRoman
Posts: 5910
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman » Fri 20 Mar, 2015 15:50

Проверю потом. Скорей всего, все будет ОК. А если и не ОК, то фиксить скорей надо тесты и проверки, а не кухню. Думаю, что макро клавиши не должны игнорироваться *в обычных случаях*. А необычные можно проверять (макро статус или как там в АПИ).

User avatar
NightRoman
Posts: 5910
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman » Sat 21 Mar, 2015 14:20

Проверил в 4321, где FARMACRO_KEY_EVENT убран, и вместо него стали приходить KEY_EVENT, которые ранее игнорировались. Теперь не игнорируются, убедился. Тесты в порядке. Хоть это ни о чем особом и не говорит в моем случае. Могло бы отвалиться, если бы тесты были "детальнее". Словом, неважно про тесты. Новый подход с одним типом событий мне как-то более по душе.

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

FarNet — плагин для написания плагинов на .NET языках

Post by John Doe » Sat 21 Mar, 2015 15:35

NightRoman wrote: Новый подход с одним типом событий мне как-то более по душе.
Был способ узнать, что событие пришло из макроса. Сейчас его нет.

User avatar
NightRoman
Posts: 5910
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman » Sat 21 Mar, 2015 17:16

Может быть. Мне пока хватает проверки макро статуса через АПИ. Если этого недостаточно, то надо что-то предложить конструктивное. В этой теме не совсем логично обсуждать.

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

Post by John Doe » Sat 21 Mar, 2015 17:34

Да, для обсуждения есть выделенная тема.
Но вы ведь высказались тут, и было бы странно комментировать ваше высказывание в другом месте.

User avatar
NightRoman
Posts: 5910
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

FarNet — плагин для написания плагинов на .NET языках

Post by NightRoman » Fri 08 May, 2015 20:31

Если кого-то интересует, проект FarNet переведен на Visual Studio Community 2013. Это облегчает возможность построить его самостоятельно и что-то похимичить или пофиксить. Подробности тут: How-to-build-FarNet. Поскольку проект теперь на ГитХабе, всякие фиксы и предложения в "готовом виде" предлагать гораздо проще, чем ранее на ГуглеКоде.

Проект/модуль PowerShellFar при этом включен и тоже строится/копируется. Для меня это естественно, ибо вся работа над Фарнет затевалась мною исключительно для PowerShellFar. Если кому-то это лишнее, дайте знать, можно будет сделать конфигурацию (со временем).

Сборка в студии 2013 только для .NET 4.5. Другие версии поддерживаются через билд скрипт для Invoke-Build (один из моих прочих проектов). Официально, как и ранее, будет выпускаться сборка для 3.5. Но если вдруг случится такая ситуация, что у меня не будет машин с VS 2008 и 2010 (да, именно они нужны для такой сборки), то я вынужден буду выпускать только для .NET 4.5 (может, 4.0). Но в ближайшем будущем эта ситуация вроде не предвидится.

AlexanderR
Posts: 5
Joined: Thu 22 Oct, 2015 08:58

FarNet: чего не хватает для выполнения действия по Enter

Post by AlexanderR » Thu 22 Oct, 2015 09:29

Добрый день. Подскажите новичку.
Пытаюсь писать плагин с использованием FarNet, и что-то не получается сделать кнопку, которая срабатывает по Enter. Свойство Default диалогу выставил, на клике обработчик висит, при клике мышкой всё нормально. А по Enter просто завершается диалог и всё.

Code: Select all

IDialog dial = Far.Api.CreateDialog(-1, -1, dialWidth, dialHeight);
...
IButton btnYes = dial.AddButton(3, 16, "Копировать");
dial.Default = btnYes;
...
dial.Show();
Чего тут не хватает ему?

Post Reply

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