PowerShellFar — Windows PowerShell host for Far Manager

Анонсы новых плагинов. Обсуждение плагинов ведется ниже.
Post Reply
User avatar
NightRoman
Posts: 5852
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 8 times
Been thanked: 8 times
Contact:

PowerShellFar — Windows PowerShell host for Far Manager

Post by NightRoman » Tue 26 Dec, 2006 02:09

PowerShellFar is the FarNet module which implements Windows PowerShell host and user interface for invoking commands and scripts in Far Manager. PowerShell code can access and control Far functionality with the FarNet object model. The package includes ready to use scripts for various Far Manager tasks.

Distributed as the NuGet package: https://www.nuget.org/packages/FarNet.PowerShellFar

HOW TO DOWNLOAD AND INSTALL

Download and install manually (normally not recommended): https://nuget.org/api/v2/package/FarNet.PowerShellFar

Обсуждение ведётся тут.

Related topic: Анонс FarNet.

FarGit - PowerShell module for git not yet included to the package.

PowerShellFar scripts/modules created by other authors: search.php?keywords=PSF&fid%5B%5D=56&sf ... &sr=topics
Last edited by NightRoman on Tue 11 Oct, 2016 20:13, edited 18 times in total.

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

Post by NightRoman » Thu 28 Dec, 2006 05:03

PowerShellFar 1.0.2

Начиная с Far.Net 3.2.2 (не забудьте обновить!) доступ к выделенному в редакторе тексту теперь работает правильно, то есть появилась возможность выполнять незамысловатые операции над ним по схеме: получить выделенный текст, преобразовать, записать обратно (пример: Escape-Selection-.ps1). Выделение при этом не снимается, то есть можно проделать несколько последовательных операций.

Поскольку инструменты типа Escape-Selection- теперь стали практически возможны, добавлена команда меню "User command", которая исполняет код из настройки плагина PluginUserCommand. Это позволяет создать меню пользователя, что иногда практичнее, чем вводить команды явно. Пример: Test-UserCommand-.ps1 (подключить его можно демонстрационным скриптом Set-Settings-.ps1).

Команда плагина "Run selected code" теперь тоже работает, как задумано, так как доступ к выделенному тексту в порядке. Это весьма удобно при написании скриптов - какие-то части кода можно испытать, не выходя из редактора. Более того, поскольку код исполняется в едином глобальном пространстве, последующие команды могут пользоваться всеми переменными, созданными предыдущими командами, то есть код можно реально исполнять (отлаживать) по мере написания (с некоторыми оговорками, это не пошаговый отладчик, все-таки).

Реализована поддержка команд Write-Debug, Write-Error, Write-Host, Write-Output, Write-Verbose, Write-Warning, что в частности теперь позволяет применять опцию -WhatIf в командах, где она есть.

Прочие мелкие изменения и новые примеры скриптов здесь не перечислены, все отражено в About-PowerShellFar.txt. Готовая сборка плагина PowerShellFar.dll в папке bin.

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

Post by NightRoman » Fri 05 Jan, 2007 03:32

PowerShellFar 1.0.3

ВАЖНО: возьмите Far.Net 3.2.3
viewtopic.php?p=18481#18481

*) С редактором уже вполне можно работать из PowerShell. Скрипт Test-Editor-.ps1 показывает многие из возможностей работы с редактором, которые стали доступны с Far.Net 3.2.3.
*) Возможность назначать обработчики глобальных событий (локальные, типа отклика на выбор меню, можно было и раньше). Смотри руководство, глава "Remove-EndSpace-.ps1 и пример глобального обработчика событий".
*) "Run selected code" выполняет текущую строку, если нет выделенного текста.

Готовая сборка плагина PowerShellFar.dll в папке bin.

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

Post by NightRoman » Mon 15 Jan, 2007 03:44

PowerShellFar 1.0.4

1) требуется Far.Net 3.2.4: viewtopic.php?p=18788#18788
2) к сожалению, возможно, некоторые изменения в интерфейсах Far.Net 3.2.4 потребуют изменений и в коде скриптов, работавших с редактором. Изменения сделаны для удобства работы в дальнейшем. Подробности в Far.Net.Readme.txt.

Новое:
- $Psf имеет новые свойства HotLines и HotText.
- $Psf.Settings имеет новое свойство PluginPreloadable.
- Скрипты Invoke-Editor-.ps1, Select-Bookmark-.ps1.
- Test-Editor-.ps1 значительно пополнен новыми возможностями редактора в новой версии Far.Net 3.2.4, в частности, разнообразной работой с выделенным текстом.
- Search-History-.ps1 использует новые $Far.Panel.Path, $Far.CommandLine.Text, логика работы слегка изменена.

Подробности в документации, готовая сборка плагина PowerShellFar.dll в папке bin.

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

Post by NightRoman » Wed 17 Jan, 2007 21:26

PowerShellFar 1.0.5

Нужен Far.Net 3.2.5: viewtopic.php?p=18916#18916

В основном в этой версии работа была только над новыми скриптами, но ведь они и являются конечным продуктом для этого плагина.

- Новые скрипты: Complete-Word-.ps1, Expand-PowerShell-.ps1, New-Editor-.ps1, Search-Regex-.ps1.
- Invoke-Editor-.ps1 теперь открывает и другой скрипт, если ошибка там.
- Новое свойство $Psf.Paths - набор строк-путей элементов активной панели.

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

Post by NightRoman » Mon 29 Jan, 2007 02:36

PowerShellFar 1.0.6

Нужен Far.Net 3.2.6: viewtopic.php?p=19261#19261

- Налажен (в первом приближении) запуск консольных приложений с предварительным сохранением и последующим восстановлением экрана Far.
- Новое свойство $Psf.UserMenu для регистрации специального меню пользователя.
- Новый метод $Psf.Editor() - избавляет от рутинных проверок наличия редактора.
- Новый скрипт Indent-Selection-.ps1 увеличивает или уменьшает отступ выбранных строк в редакторе с учетом текущих установок табуляции.
- Новый скрипт Reindent-Selection-.ps1 - авто-форматирование отступов строк кода с учетом текущих установок табуляции.
- Новый скрипт Go-Home-.ps1 - установка курсора в позицию "extended" Home или выделение от текущей позиции до "extended" Home.
- Новый скрипт Go-Selection-.ps1 - установка курсора в начало\конец выделения.
- Новый скрипт Build-Call-.ps1 строит текст команды PowerShell интерактивно.
- Новый скрипт Show-Member-.ps1 - вариант Get-Member с Far меню и добавками.
- Новый скрипт Profile-.ps1 - пример профайла с заданием меню пользователя.
- Search-History-.ps1 устанавливает выбранным последний элемент списка, а также работает и с историей редактированных файлов - открывает в редакторе выбранный.
- Set-Settings-.ps1 теперь интерактивный и практический, а не демонстрационный.
- Search-Regex-.ps1: добавлен параметр $Options, по умолчанию 'IgnoreCase'; добавлены нестандартные расширения *.. и ?..
- Мелкие улучшения в Complete-Word-.ps1 и TabExpansion-.ps1.
- Select-Menu-.ps1 показывает, как использовать новые свойства: IMenuItem.Data, IMenu.SelectedData, позволяющие не применять буферизацию данных меню в массиве.
- Часть скриптов преобразована в автозагружаемые из файла глобальные функции, смотри пояснения в начале главы "Примеры скриптов".

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

Post by NightRoman » Wed 31 Jan, 2007 12:12

PowerShellFar 1.0.7

Нужен Far.Net 3.2.7: viewtopic.php?p=19403#19403

- Стандартое поведение панелей при запуске консольных приложений из PowerShell, для этого нужен Far 1.71.2187; если нет - работать тоже будет, но по-старому.
- "Run selected code", если вызван не из редактора, берет текст из ком.строки, префикс можно не указывать, но если он есть (команда из истории) - не проблема.
- Новое свойство $Psf.HotLine - текущая строка редактора или командная строка.
- $Psf.HotText при отсутствии текущего редактора теперь берется из ком.строки.
- Expand-PowerShell- теперь работает не только в редакторе, но и в ком.строке.
- Упрощено позиционирование меню в Complete-Word- и Expand-PowerShell-.
- Упрощение\обобщение скриптов с помощью последних новшеств Far.Net и $Psf.

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

Post by NightRoman » Fri 02 Feb, 2007 05:31

PowerShellFar 1.0.8

Нужен Far.Net 3.2.8: viewtopic.php?p=19519#19519
Желателен Far 1.71.2187: http://farmanager.com/farbugs/Far171b2187.rar

- Вывод команд направляется на экран пользователя (то, что под панелями), если целиком помещается, иначе в файл, как было раньше (из редактора и вьюера всегда в файл). Если Far до 1.71.2187, то предыдущий экран предварительно очищается.
- Search-History-.ps1 использует новый метод $Far.GetHistory(), который гораздо быстрее работает, и, даже важнее, корректно возвращает кириллицу.
- Complete-Word-.ps1: 1) работает не только в редакторе, но и в ком.строке - слова берутся из истории команд тоже с помощью $Far.GetHistory(); 2) добавлена группировка слов по предшествующему символу, слова первой группы обычно более вероятны для подстановки, во всяком случае в коде.
- TabExpansion- для Expand-PowerShell- добавлены подстановки имен файлов текущей папки по начальным буквам и полных путей, если шаблон содержит символы \ или /.
- Search-History-.ps1 и Search-Regex-.ps1 оба используют скрипт New-Regex.ps1, который допускает нестандартные упрощения типа *.. и ?..
- Создан Profile-.ps1 - рекомендуемый макет профайла (стартового кода).
- Прочие доработки в скриптах и коде плагина.

P.S. В этой версии плагин начинает в целом удовлетворять первоначальным задумкам.

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

Post by NightRoman » Mon 05 Feb, 2007 01:54

PowerShellFar 1.0.9

Нужен Far.Net 3.2.9: viewtopic.php?p=19640#19640
Желателен Far 1.71.2192: http://farmanager.com/farbugs/Far171b2192.rar

- Возможность запуска команд из User menu при уже запущенной команде; пример: для модально запущенного скриптом редактора команды User menu работают. Смотри пояснения в главе "Особенности PowerShell в PowerShellFar".
- Усовершенствования в некоторых скриптах и доработки в коде плагина.
- Документация обновлена, дополнена.

P.S. Версию можно считать release candidate в том смысле, что все первоначальные задумки реализованы и вроде удовлетворительно работают.

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

Post by NightRoman » Mon 12 Feb, 2007 02:11

1.1.0

Нужен Far.NET 3.3.0: viewtopic.php?p=20127#20127

- В Far.NET появились диалоги, автоматически они доступны и в PowerShellFar, смотри новый скрипт Test-Dialog-, где показаны все реализованные на данный момент элементы диалогов.
- Новый тип команд (префикс: >>), которые выполняются в фоновом режиме в отдельных потоках (важно прочитать документацию о деталях).
- Новый пункт меню плагина "Background jobs": список текущих фоновых задач и операции над ними (просмотр вывода, остановка, удаление).
- Новый метод $Psf.StartJob для запуска фоновых задач из скриптов, смотри пример использования в новом скрипте Test-Job-.
- Документация: "Background jobs", "Как использовать .NET сборки".
- Expand-PowerShell- и TabExpansion-: распознают новые типы выражений и дают несколько больший выбор возможных подстановок.

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

Post by NightRoman » Sun 18 Feb, 2007 21:07

1.1.1

Нужен Far.NET 3.3.1: viewtopic.php?p=20521#20521

- В Far.NET диалогах появилось много новых возможностей: обработка событий,
недостающие элементы ComboBox, ListBox, редактор паролей и вертикальный
текст\разделители, а также то, что почти все свойства элементов диалога -
динамические, то есть после запуска чтение\запись свойств соответствует тому,
что в диалоге. Скрипт Test-Dialog-.ps1 отражает практически все нововведения,
смотри также главу 18. Test-Dialog-.ps1.

- Новый скрипт Robocopy-.ps1 - оболочка утилиты Robocopy.exe: запускает Robocopy
в Far в фоновом режиме (подробности в главе 17. Robocopy-.ps1).

- Новый метод $Psf.CanExit() - нужен для предупреждения закрытия Far (F10) при
наличии фоновых задач (как использовать: смотри "Background jobs").

- Глобальная переменная $Job для фоновых задач переименована в $this, что более
соответствует стилю PowerShell и не занимает переменную $Job для других целей.

- Скрипт Test-Job- использует $this и новый метод Join() ожидания конца задач.

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

Post by NightRoman » Tue 20 Feb, 2007 20:48

1.1.2

Far.NET 3.3.2: viewtopic.php?p=20571#20571

[В Far.NET: исправлена досадная ошибка с IInputBox: когда история не была задана, строки писались в папку реестра "HKEY_CURRENT_USER\Software\Far\SavedDialogHistory" с мусорными именами, проверьте, удалите. Например, этим грешил скрипт Set-Settings-, который это использует.]

- Исправлены мелкие внутренние неполадки, может, и не проявлявшиеся, а также
устранены некоторые пойманные, но никому особо не нужные исключения.

- Реализован простенький вариант одноуровнего Write-Progress, который выводит
проценты и прочую инфу в заголовке консоли - все лучше, чем никакого прогресса.

- Новый скрипт Profile-Editor-.ps1 демонстрирует авто-очистку концов строк при
сохранении в редакторе, четыре популярные операции с мышкой: выделение слова
двойным щелчком, выделение текста перемещением с левой кнопкой, выделение от
курсора при помощи Shift+LeftClick и "контекстное меню" по правой кнопке (для
примера взят Test-UserCommand-.ps1, а в реале там должен быть ваш "любимый"
код), а также обработку Home, ShiftHome, Left and Right как вызов скриптов
Go-Home- и Go-Selection- (см. документацию).

- Мелкие, но полезные упрощения в скриптах за счет новшеств в Far.NET.

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

Post by NightRoman » Thu 22 Feb, 2007 06:52

1.1.3

Far.NET 3.3.3: viewtopic.php?p=20590#20590

- Диалог "Input and run code" ввода PowerShell команд тоже поддерживает
TabExpansion, причем, именно по клавише Tab (в будущем можно сделать
настраиваемым).

- В Far.NET редакторе появились полезные методы Begin() и End(), позволяющие
решить проблему медленной итерации по большому числу строк "централизованно".
Пример использования в Profile-Editor-, function Handle-BeforeSave (на файле с
40,000 строк эта процедура работала 2-3 минуты без Begin\End, теперь на том же
файле - всего 4 секунды).

- Работа с редактором в скриптах обновлена согласно изменениям в Far.NET

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

Post by NightRoman » Mon 26 Feb, 2007 05:32

1.1.4

Far.NET 3.3.4: viewtopic.php?p=20704#20704

В Far.NET добавлена поддержка хелпа, поэтому работа в основном была с хелпом и вокруг него. Документация тоже преобразована в хелп и переведена на английский, русская версия не будет поддерживаться, поэтому, кому нужно - сохраните старую документацию перед заменой версии. Надеюсь на понимание: *) так это будет доступно не только русско-читающим; *) продукт все-таки для программеров, а они худо-бедно английский читать умеют.

- New method $Psf.InputPowerShell() shows a dialog similar to "Input and run code" where you can use TabExpansion. Example: see Test-Dialog-.ps1.
- Far.NET supports help files now. See using .HelpTopic and .ShowHelp() in scripts.
- PowerShellFar documentation is now in English and in help file.
- New script Show-Hlf.ps1 - works like HlfViewer; sure, don't use them together.
- Profile-Editor-.ps1: F1 runs Show-Hlf.ps1.
- Complete-Word-.ps1: skips the current word itself.

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

Post by NightRoman » Sun 04 Mar, 2007 21:57

1.1.5

Far.NET 3.3.5: viewtopic.php?p=21030#21030

- PowerShellFar now keeps its own command history. Commands with '#' in the end are not added (e.g. you may want to ignore some commands in user menu (F2), file associations, etc.).
- New cool (and experimental) feature "Editor console": "*.psfconsole" files are opened in editor in special mode which is more or less similar to console. This feature is also available from scripts by $Psf.ShowConsole().
- New plugin menu commands: "Command History" and "Editor console".
- New script Debug-Msg-.ps1 useful for diagnostics, see help for details.
- Script Invoke-Editor-: simplified invocation of -.ps1 scripts with Debug-Msg-, added a few new types.
- TabExpansion expands also loaded functions and filters.
- New Far.NET menu feature: filters. It is used with AltDown in PowerShellFar Command History and Select-Menu-.ps1. Besides, Select-Menu- has new parameters.
- Removed Search-History-.ps1 (actually replaced with simple Show-History-.ps1) because search (filter) is enabled now just in menus.
- Corrected spelling of TabExpantion -> TabExpansion.
- New script Watch-Output-.ps1 - it is a useful tool similar to 'TOP', but it is also at least a very nice toy and demo, do try it (and also see the help).

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

Post by NightRoman » Sun 11 Mar, 2007 22:10

1.1.6

Far.NET 3.3.6: viewtopic.php?p=21256#21256

- Included new version of PowerShell.hrc for Colorer-take5.beta5: it works for
both .ps1 and .psfconsole files. Note that this version contains prototype
definition in it, so all you need is to add a link to this file to your Colorer
catalog.xml. PowerShell.hrc was significantly improved itself.
- Added a number of new features to "Editor console": Up\Down ~ prev\next
command; End ~ menu of commands with the same prefix; Escape ~ clear the line.
Fixed a few issues.
- Updated scripts according to recent Far.NET changes in menus ('Selected').
- Complete-Word-.ps1 in .psfconsole files takes words also from history.
- Tiny improvement in TabExpansion.

Post Reply

Return to “Анонсы новых плагинов”