Более-менее приспособил FarNet и PowerShellFar к изменениям в Far по выводу на
консоль из плагинов. Однако, есть отличия в поведении Far при вызове плагина из
ком-строки от вызова из меню.
В обоих случаях плагин пишет строки так:
- FCTL_GETUSERSCREEN
- написать строку
- FCTL_SETUSERSCREEN
При вызове из ком-строки между строками нет пустых строк.
При вызове из меню плагинов есть пустые строки.
Почему это отличие? Может, это не задумано так? Ошибка, иначе говоря?
Поведение при вызове из ком-строки кажется более удобным.
Хотелось бы чтобы Far работал так же и из меню плагинов.
Скрипт (нужны последние версии FarNet и PowerShellFar, 5.2.0), вызывается командой
Code: Select all
ps: .\Test_160909_053052-.ps1
Code: Select all
# эти две строки выводятся без пустой строки между ними:
Write-Host Line1
Write-Host Line2
# добавляем пункт в меню плагинов, если он еще не там
$id = '841203c8-4348-4e35-bfd7-c83db2603157'
if (!$Far.GetModuleAction($id)) {
$null = $Psf.Manager.RegisterModuleTool(
$id,
(New-Object FarNet.ModuleToolAttribute -Property @{ Name = "Test_160909_053052"; Options = "Panels" }), {
# а эти две строки выводятся с пустой строкой между ними:
Write-Host Line3
Write-Host Line4
}
)
}
# вызываем добавленный пункт меню
$Far.PostMacro("Keys('F11') Menu.Select('Test_160909_053052', 2) Keys('Enter')")