NuGet package: https://www.nuget.org/packages/FarNet.PowerShellFar Far Manager 3.0.5013 FarNet 5.2.14 = 5.2.7 = - Fix ArgumentCompleters for the latest git help syntax. - 7za -> 7z in Bench/Update-FarManager.ps1 = 5.2.6 = Use the current thread in the main runspace in order to deal with Far 3.0.5256. Far 3.0.5260 reverts use of critical sections on every plugin call but we keep our change for other similar problems in Far, e.g. in menus, see Mantis 2241. Unfortunately we have to drop the ability to use different apartment states. = 5.2.5 = FarNet 5.2.6 - Add Invoke-Far, similar to command box but designed for more cases. - Open-TextLink-.ps1 new switch -Clip to get text from clipboard. - Interop "Stepper". Experimental, to be tested in FS. = 5.2.4 = Fix #12, exception on "Cursor beyond end of line". Tweak TabExpansion2 to avoid noise data in some cases. = 5.2.3 = Fix #5 = 5.2.2 = - Adapt for Far 3.0.4821 = 5.2.1 = Editor console -> Interactive The term "editor console" is replaced with "interactive". PowerShellFar and FSharpFar interactive are made similar. Interactive output is no longer colored by Colorer. This feature may be restored if it looks important. Changed some keys used in interactive, see docs. (e.g. use [ShiftEnter] instead of [Enter]) = 5.2.0 = Adapt for Far 3.0.4782. Retire command console. = 5.1.0 = Adapted for FarNet 5.1.0 = 5.0.94 = Fixed color of errors printed to console (requires Far 3.0.4744). = 5.0.93 = Fixed #4 TabExpansion2 v1.0.1 regression on read only results. = 5.0.92 = Completed revision of TabExpansion, see notes: https://github.com/nightroman/FarNet/issues/3 Fixed variable names leaked to results from completers and internal code. = 5.0.91 = Revision of TabExpansion2.ps1, prepare for future breaking changes. See migration notes: https://github.com/nightroman/FarNet/issues/2 Invoke-Editor-.ps1 - ExecutionPolicy Bypass for all PS scripts. - NoProfile for Invoke-Build scripts. = 5.0.90 = Recommended Far 3.0.4660+ Fixed command console exit. = 5.0.89 = Far does not support idle editor events. Removed Watch-Output-.ps1 and Test-Watch-Output-.ps1. = 5.0.88 = DataTable: - Do not auto hide some columns. - Improved check for data changes. Invoke-Editor-.ps1: - Invoke-Build scripts: get tasks by ??, avoid some limitations. = 5.0.87 = Removed user items from the module menu, i.e removed $Psf.Action(). See forum: http://forum.farmanager.com/viewtopic.php?p=135651#p135651 = 5.0.86 = Tree panel: - Default panel view without description column - Folder tree: better error message at Cert:\ TabExpansionProfile.ps1: fixed completer for git 2.5+ Test-Job-.ps1: adapted for PS v5 = 5.0.85 = TabExpansion takes the prefix "ps:" into account not only in the command line but also in dialogs (needed for user menu, apply command, file associations). Search-Regex-.ps1: The parameter Options accepts some shortcuts: sm: SimpleMatch, ww: WholeWord, etc. = 5.0.84 = Open-FarEditor, New-FarEditor, Open-FarViewer, and New-FarViewer resolve relative input paths using the current PowerShell location. = 5.0.83 = Assert-Far: Refactoring and slightly changed logic. Special processing of Conditions defined as a script block. See: ps: help Assert-Far -full Migration to GitHub: updated links. = 5.0.82 = Migration to GitHub. Some git commands are not friendly to "!" characters. So the recommended stepper script suffix now is "..ps1". Renamed tests: - Test-Dialog!.ps1 -> Test-Dialog..ps1 - Test-Stepper!.ps1 -> Test-Stepper..ps1 = 5.0.81 = Update-FarManager.ps1 7za (standalone) is used instead of 7z (installed with 7-zip). If you do not have 7za then define an alias to existing 7z.exe before calling the script: > Set-Alias 7za \7z.exe > Update-FarManager.ps1 ... Profile-Remote.ps1 The profile was expected on a remote machine (incorrect). Now it is read on the current machine (correct) and then this code is invoked in a remote workspace. Minor changes due to migration to GitHub, mostly in the documentation. = 5.0.80 = Show-History-.ps1 Removed work around unwanted Far messages on setting missing directories. = 5.0.79 = Adapted for Far 3.0.4138 = 5.0.78 = Adapted for Far 3.0.4042 (new "Desktop" window). = 5.0.77 = PowerExplorer.Functions: SetText and SetFile are set automatically if AsSetText and AsSetFile are assigned. Panel-Mongo-.ps1: Can view [F3] and edit [F4] and save documents as JSON. [F5] copies JSON to disk (not from). = 5.0.76 = Editor console & history: redraw on inserting commands from history. = 5.0.75 = Reindent-Selection-.ps1 - fixed for ExpandTabs mode Update-FarManager.ps1 can remove some more not used files after updates. = 5.0.74 = Continued. [Esc] is for stopping in prompts for Type[] arguments as well. = 5.0.73 = STOPPING COMMANDS ON USER INPUT In MS PS console [CtrlC] stops all commands on user input, i.e. on read host, prompt for choice, etc. The same ability is added to PSF. But in PSF [Esc] is used instead in various prompts. Unlike in PS, it also asks a user to confirm. = 5.0.72 = As far as Mantis#2635 is not going to be fixed, implemented a kludge. NEW UPDATE TOOLS Update-FarPackage.ps1 is replaced with the module FarPackage: FarNet\Modules\PowerShellFar\Modules\FarPackage See about_FarPackage.help.txt there. Instead of one script with many not trivial parameters and rules these four commands with simple parameters are used: * Install-FarPackage - installs/updates one package from web * Restore-FarPackage - installs one package from a file * Update-FarPackage - updates all installed packages * Uninstall-FarPackage - removes one installed package Intermediate unpacked directories "." are not used, you do not have to clean after updates. Files are extracted from packages directly to destinations. Some packages slightly changed their structure, e.g. FarNet and PowerShellFar moved information files to other directories. If somebody wants some files to be excluded on unpacking we can support, say, a file "Update.Exclude.txt" with relative paths and file masks to be excluded. Think, suggest. = 5.0.71 = Command line and box: enabled path completion in both. Menu "Errors": replaced \r\n\t in messages with spaces. = 5.0.70 = Update-FarPackage.ps1: - Omitted FarHome is resolved to the current location if Far.exe is there. - Verbose messages are replaced with Write-Host and always written. Invoke-Editor-.ps1: - amended current task recognition in *.{build|test}.ps1 - removed *-.ps1, redundant because there is [F5] Invoke-Shortcut-.ps1: minor tweaks. = 5.0.69 = Use FarNet 5.0.46 Stepper: "Ask" mode shows step prompts at the top right corner of the window. Removed menu "F11 \ PowerShellFar \ Modules+" as not useful anymore. In PS v3.0+ modules does not have to be explicitly loaded for using commands. For analysis of modules this command is more useful than the old menu: ps: Get-Module -ListAvailable | Out-FarPanel = 5.0.68 = Use FarNet 5.0.45 Command console: - Fixed missing cursor on cls. - Fixed extra empty line on Read-Host. - Fixed a conflict between console app output and prompt. _140317_205620 = 5.0.67 = Command console: - Nested prompt and debugger console also use command console prompt. - Editor consoles are not used in command console mode (i.e. denied). = 5.0.66 = Command console: - Fix: output from console apps could override prompt echo. - Read-Host and Prompt(): prompt and echo use ":" in a new line. - Like in MS, empty text exits prompts for multiple values (e.g. string[]). TabExpansionProfile.ps1: Replaced demo completer of Far switches with more practical completer of git commands, e.g. git [Tab]->all, git a[Tab]->a... HLF file uses new syntax (Mantis#0002619). Recommended Far 3.0.3831. = 5.0.65 = Command console and "ps:" commands: - Console apps with interaction and colors work as expected. In particular, ...|more works fine, git.exe commands work with colors and interaction, etc. Execution policy: - The module does not require Set-ExecutionPolicy in PowerShell. = 5.0.64 = Command console: - Read-Host and Prompt(): fixed history and password. - Show-FarTranscript uses the external viewer by default. - Transcribing is off by default, use Start-Transcript, Show-FarTranscript. - Start-Transcript, Stop-Transcript work like in MS with minor differences. = 5.0.63 = Command console: - As in MS console, [F7] shows PowerShell command history. - PromptForChoice: fixed formatting of long items. PowerShell history: - Default MaximumHistoryCount: 512 -> 1000. - [Enter] inserts to command lines or a new command input box. - [CtrlEnter] is not used. Other: - Added /w- to the default external viewer, i.e. Far /w- ... = 5.0.62 = Requires FarNet 5.0.42 Command console: - UI (prompt, confirmation, choice) is mostly the same as in the MS PS console. - Clicks outside of the input line are ignored (for now?) and do not exit. - Too long prompts are not truncated but shown as read only edit boxes. - [F4] Opens the modal editor for editing/pasting multiline code. - Removed some AI on errors. Complete-Word-.ps1: checks IsReadOnly. Reformat-Selection-.ps1: checks IsLocked. = 5.0.61 = Implemented internals of "Read-Host -AsSecureString" properly with a password edit box in UI and SecureString returned as a result. Command console The input line is shown at the line before the last in order to be there always regardless of the key bar presence. As a result the last line is always empty, for now. Later we can make it either the status line with some dynamic custom information or maybe the special console mode tool bar. ** Suggestions and ideas are welcome ** Other tweaks: - [F1] in empty command lines opens the help topic "Command input line". -$Psf.StartConsole() throws an error if it is called not from panels. - Key and menu bars are hidden/restored, as panels. = 5.0.60 = Requires FarNet 5.0.41 New feature/mode: "Command console" The genuine console with the prompt implemented as one line input box with Far history completion, PowerShell completion with [Tab], PowerShell help with [F1], etc. It is like the standard PowerShell console but in many ways more powerful with Far UI behind. This mode is started from the menu in panels. [Esc] in the empty line exits back to panels. You can run Far Manager with this mode started: Far.exe /w ps:$Psf.StartConsole() This mode is useful already. But a few touches will make it even better and looking more like the standard console, with less surprises. OTHER CHANGES Simplified menu names. Hotkeys are not changed. Improved processing of the debugger command "Quit". Connect-SQLite-.ps1 requires System.Data.SQLite.1.0.91.0 Go-Head-.ps1 now always goes to the first file, not directory. Test-Debugger.ps1 moved to https://github.com/nightroman/PowerShelf = 5.0.59 = Fixed an error on TabExpansion in a weird case (looks like a PS issue). Update-FarPackage.ps1 - The script supports automatic updates using "Update.*.info" files. - Added new parameter Source (Default: https://www.nuget.org/api/v2). - Added new switch Remove which removes installed files. - Improved potential error messages. Internal. Replaced delegate GetValues with a Func<>. = 5.0.58 = Slightly simplified the NuGet package. It is recommended to update it by the upgraded script Update-FarPackage.ps1 Upgraded Update-FarPackage.ps1. See the help comments for details and examples. Summary: - Revised and simplified parameter names. - It can just get and return the latest version. - It can just download and unpack without updating. - Much faster unpacking by System.IO.Packaging (instead of Shell.Application). = 5.0.57 = THE PACKAGE MOVED TO NUGET Update-FarPackage.ps1 New script Update-FarPackage.ps1 replaces Update-FarNet.ps1. The new script installs or updates any NuGet package with special structure for Far Manager. For now there are two packages "FarNet" and "FarNet.PowerShellFar". Other FarNet modules will move to NuGet soon. The script needs only PowerShell. It downloads packages by System.Net.WebClient and unzips them by COM Shell.Application. NOTE: Other authors can push their packages designed for Far to NuGet and use this script for updates. This will work for native plugins, too. NuGet is for .NET libraries in first place but packages can be created from any files, not necessarily .NET related. OTHER CHANGES Removed the helper PowerShellFar.Wrap with methods ConverterToString and Comparison. The first was needed for SubsetForm.ItemToString (not needed anymore, script blocks can be used directly, see Test-SubsetForm-.ps1). The second is not used, presumably. Amended documentation comments for FarNetAPI.chm RENAMED: - Test-Dialog+.ps1 -> Test-Dialog!.ps1 - Test-Stepper+.ps1 -> Test-Stepper!.ps1 REASON: OPC packages (NuGet) escape some characters (e.g. "+" becomes "%2B"). Update-FarPackage.ps1 and NuGet.exe decode such names correctly but on manual unzipping such names will be problematic. We better avoid "+" and use another symbol which is not escaped, say, "!". = 5.0.56 = Fixed TabExpansion in the editor console opened from the debugger dialog. Script Connect-SQLite-.ps1 - Redesigned for use of the NuGet package and the env var (can be set globally or in a profile). This is more portable and does not require installation of assemblies to GAC or registration of the provider. Fixed several issues in database demo scripts. = 5.0.55 = INITIALIZATION Internal changes in session initialization. Like in ISE and ConsoleHost v3, the default apartment state is STA. As a result, for example, it is possible to use System.Windows.Forms.Clipboard, WPF forms, and other features that require STA. NOTE: If MTA is still required set the env var: PSF.ApartmentState=MTA. Please, report such cases, perhaps a better option is needed. NOTE: New initialization caused an insignificant change in one test. If you notice any significant changes in PowerShellFar behaviour, please report. OTHER CHANGES Amended items in completion lists for commands and provider items. = 5.0.54 = Fixed incorrect comparison of keys (transition to Far3, v5.0.0). E.g. break keys in some menus did not work. Fixed issues in the "Background job" dialog shown on Far exit with existing jobs. Used the PSF external viewer instead of Notepad for viewing jobs output. Added the switch /ro to the default PSF external viewer command, so it is: /ro /m /p /v = 5.0.53 = NOTE: Simple manual upgrade steps may be needed. CONFIGURATION VIA PROFILES PowerShellFar is configured via profiles with special fixed names located in "%FARPROFILE%\FarNet\PowerShellFar". Each profile is invoked on the relevant event, once per session. Profiles are invoked in the global scope. HOW TO UPGRADE. Rename profile scripts and copy them to the profile directory. Cosmetic changes may be needed depending on how profiles were called before. Supported profiles: - Profile.ps1 - use new or upgraded - Profile-Editor.ps1 - use new or upgraded - Profile-Local.ps1 - new feature - Profile-Remote.ps1 - new feature "Profile.ps1" is the main session profile invoked on loading PowerShellFar. It replaces the old setting "StartupCode". Renamed "Profile-.ps1" to "Profile.ps1". "Profile-Editor.ps1" is the editor profile invoked on the first use of editor. It replaces the old setting "StartupEdit". Renamed "Profile-Editor-.ps1" to "Profile-Editor.ps1". NEW: "Profile-Local.ps1" and "Profile-Remote.ps1" are session profiles invoked on opening local and remote editor consoles, once per each new session. Updated the manual and added the new topic "Profiles". If the old file "%FARPROFILE%\FarNet\PowerShellFar\Settings.resources" exists remove it because PowerShellFar does not have any settings saved there now. CODE COMPLETION IN LOCAL AND REMOTE CONSOLES TabExpansion2/TabExpansion which is used in the main session is enabled in local and remote editor consoles, too. It is also initialized on the first completion and the same completer rules and expansion profiles are used. Fixed some code completion issues in remote consoles. = 5.0.52 = TabExpansion - Like in ISE, completion list items can be different from their completion texts (e.g. shorter, without common leading parts, etc.). TabExpansionProfile.ps1, Type/Namespace completion - Fixed cases of incorrect replacement on type name completion. - Like in ISE, completion lists show ListItemText instead of CompletionText. = 5.0.51 = Multiline commands in PowerShell editor consoles - Like in ISE, [ShiftEnter] just adds a new line without invoking the command. - [Enter] at any position of the last command area invokes the whole area code. - As a result, it is possible to paste multiline code and invoke it by [Enter]. - Introduced the marker line <> for empty output. It is needed now in order to separate commands because they are not one-liners anymore. - Multiline commands are not added to the history. - Updated TabExpansion for multiline commands. - Updated editor console help. - Updated powershell.hrc in order to recognize the new marker <>. = 5.0.50 = Code completion in script editors - Covered statements that continue after the current line. - Corrected completion of variables from the current script. = 5.0.49 = Code completion in script editors analyses not just the current line but the whole code, e.g. completion in multiline statements including continued lines ( at EOL) should work fine. TabExpansion2.ps1 - Improved diagnostics of user profile and completer issues like unexpected output and invalid result type. Errors are silent, examine$Error on problems. TabExpansionProfile.ps1 - Completion of Find-FarFile:Name takes into account pre-typed parts. - Completion of help comment tags (.Synopsis, etc.) works in ISE, too. - Improved completion of "one line code" in comments, also works in ISE. = 5.0.48 = TabExpansionProfile.ps1, TabExpansion2.ps1 - Completion in comments moved from TabExpansion2 to TabExpansionProfile. In other words, it is up to a user. TabExpansion2 is now just a bare engine for invoking completers added by profiles. - Completion of help comments (.Synopsis, etc.) is for FarHost only. It's complicated in ISE and useless in console. - Improved work around read only built-in results. = 5.0.47 = TabExpansionProfile.ps1, TabExpansion2.ps1, TabExpansion.ps1 - Special processing of results for ISE lists (V3). - Type/namespace order: namespaces first, types second. - Generic types are completed with "[]", "[,]", etc. at ends. - Faster type and namespace completions, even with new features. - Added ResultType to New-CompletionResult and used in completers accordingly. NB: If you use ISE, this value is important for icons in ISE completion lists. - Magic. TabExpansionProfile.ps1 Out-FarPanel completer gets properties, try: Get-Process | Out-FarPanel [Tab] = 5.0.46 = TabExpansion2 - Removed $token parameter from result processors. - Upgraded TabExpansionProfile.ps1 result processors accordingly. - Added support for InputProcessors in addition to ResultProcessors. - Added one custom input processor which completes .NET types and namespaces like TabExpansion.ps1 does. Personally, this way is much more useful than the built-in completion. Search-Regex-.ps1 - Extra options: * SimpleMatch instead of the old trick *pattern. * WholeWord ensures word bounds at pattern start/end words. - Command line mode: if InputObject is specified and it is a script block then it will be invoked in the background for getting input files. Analogue in UI: "Input" command + "Background input" checked. = 5.0.45 = TabExpansion2 for PowerShell v3 New script TabExpansion2.ps1 in the module home directory is automatically used for PowerShell v3. The old TabExpansion.ps1 is also there, it is used for PowerShell v2. There are many new useful features. One of the best (personally) is argument completion for some popular cmdlets and ability to add custom completers for external or even build-in commands. TabExpansion2.ps1, unlike the old one, supports custom extensions via profiles. New script Bench\TabExpansionProfile.ps1 is a profile used by the author. Use it as the base for your own. See the script comments and code for the details. Custom completers are new and some features may change, like rules for result completers. Other completers are more or less standard, they are less likely going to change. Removed Test-TabExpansion-.ps1 from the package. It's a boring test now. = 5.0.44 = TabExpansion - Improved expansion of types and namespaces. Removed type caching, all works fast enough. As a result, types added later are processed without re-caching. - If a type name contains any wildcard character then a search for all types is performed. '*' is not added to end as it used to be, so that it is possible to search for types which names "end with". E.g. [*client gets types which names end with 'client'. - Special "#". WORD# is used for command history, like in the console host. Expansion gets commands containing WORD. - Special "=". WORD= is used for lines from TabExpansion.txt from the same directory as TabExpansion.ps1. Expansion gets lines containing WORD and sets the cursor to the symbol "#", if any. Old TabExpansion#.txt can be removed. NOTE: Special "#" and "=" should work in other hosts if TabExpansion.ps1 is used there. Tested with Microsoft PowerShell console and ISE hosts. NOTE: This is probably the last PS V2 compatible TabExpansion. It will continue to exist and work for V2 but for V3 TabExpansion2 will be used. New development will be there. Some new features are coming soon. = 5.0.43 = TabExpansion: Fixed issues on not yet imported module command parameters. Improved cmdlet help for panels, especially Out-FarPanel. Internal: Removed scriptblock cache. PS V3 uses its own. = 5.0.42 = Object panel: Take into account possible problematic objects with some properties or ToString() throwing exceptions. TabExpansion: Avoided redundant parts in choice menu items in some cases. Update-FarManager.ps1, Update-FarNet.ps1: parameter Platform: default value (x86|x64) is taken from Far.exe file info. Panel-Mongo-.ps1: Adapted for the latest Mdbc. Added support of file collections. = 5.0.41 = Improved navigation of KeyValuePair's in object and member panels. = 5.0.40 = Improved view and navigation of DictionaryEntry's in object and member panels. Object panel: [Enter] on DictionaryEntry opens a panel for its Value, if it is not trivial, [CtrlPgDn] as usual opens a member panel. Member panel: only "Key" and "Value" are shown, "Name" is removed (redundant PowerShell alias of "Key"). Fixed "Cannot access a disposed object." in a dialog of remote session console. Script Invoke-Editor-.ps1. If a file is *.build|test.ps1 then the current task is invoked by Invoke-Build.ps1 (https://github.com/nightroman/Invoke-Build) Script Complete-Word-.ps1. Redraw the editor on insertion to avoid delays. Scripts Update-FarManager.ps1, Update-FarNet.ps1 - either parameter or env variable FARHOME is mandatory. Default "C:\Program Files\Far" is not used. = 5.0.39 = Fixed a few defects caused by new prefixes ps:, vps: (e.g. TabExpansion, etc.). Minor, mostly internal, changes in PSF background jobs. = 5.0.38 = Changed default command prefixes ">:" to "ps:" and ">>:" to "vps:". If you want to use the old prefixes go to Options\Plugins configuration\FarNet\Commands and change the prefixes there. = 5.0.37 = Technical build for FarNet 5.0.34. = 5.0.36 = Folder panel. Fixed occasional errors on syncing the current location before invoking PS commands when this panel is active. = 5.0.35 = Technical build for FarNet 5.0.32. Test-Dialog-.ps1 - fixed interactive testing and separator text positions. = 5.0.34 = * Adapted for FarNet 5.0.31 * Converted PowerShellFar.farconfig to PowerShellFar.macro.lua. * Removed Show-KeyMap.ps1, it does not work with new Far macros. * Select-Bookmark-.ps1 - call Redraw() after setting the position. = 5.0.33 = Improved TabExpansion of variables in a script in the editor for variables with prefixes $script:, $global:, and $private:. Moved some not PSF scripts to https://github.com/nightroman/PowerShelf They are useful with or without Far and will be maintained separately. * Add-Path.ps1 * Format-Chart.ps1 * Invoke-Environment.ps1 * Set-Console.ps1 (as Set-ConsoleSize.ps1) = 5.0.32 = Improved expansion of variables in an editor from the current text. Open-TextLink-.ps1 * Also opens Evernote links (evernote://...). Import-Panel-.ps1 * No AI, an object panel is opened for any number of objects: 0, 1, 2+. = 5.0.31 = Read-Host * The input dialog supports multi-line prompts. Panel-Job-.ps1 * [Enter] opens a menu with the commands: Suspend, Resume, Stop, Remove. * In PS v3 workflow and scheduled jobs are supported. See script comments. Panel-BitsTransfer-.ps1 * Fixed the [Enter] menu. = 5.0.30 = Expansion of variables (TabExpansion) also uses variables from the current file (usually a script) in the editor in addition to existing session variables. Show-KeyMap.ps1 * Default output file is $env:TEMP\FarKeyMap.output.htm Invoke-Editor-.ps1 * Amended invocation of .ps1 files in an external console = 5.0.29 = Module FarDescription does not depend on Far2 registry settings. The settings are defined in FarDescription.psm1. See about_FarDescription.help.txt for details. Script Update-FarNet.ps1 * Removed check for running Far instances. It was troublesome in some cases. = 5.0.28 = Adapted for the new macro engine in Far 3.0.2853. Scripts using hardcoded macros (e.g. stepper scripts) should be adapted, as well as other used macros. = 5.0.27 = Panel-Mongo-.ps1 * [ShiftF6] Prompts for a new name and renames the current collection. Reviewed and tested for PowerShell V3 RC. = 5.0.26 = Panel-Mongo-.ps1 (requires Mdbc module v2.0.0) * It can delete selected databases, collections, documents. DISCLAIMER: usual, see in the script. Thus, in addition to browsing you can also prune your data. NB: changes of document data in panels are ignored. * Specific content. New parameters DatabaseName, CollectionName allow opening collections of the specified database or documents of the specified collection. Minor supportive changes in the PSF core. = 5.0.25 = New script Panel-Mongo-.ps1, the browser of MongoDB databases, collections, and documents, including nested data. Requires MongoDB + Mdbc. Simple, fast, cool. DataPanel (universal SQL database data browser) uses new FarNet paging instead of implementing its own. Removed "Next / Previous Range" from the [F1] menu. For paging simply use "smart" [PgDn] and [PgUp]. Debugger dialog: renamed Break -> Quit (like in the console debugger). TabExpansion expands$*xxx[tab]. Added a test. = 5.0.24 = The stepper engine uses new IFar.PostSteps(). Adapted scripts to changes in powershell.hrc. = 5.0.20 = Adapted a few scripts to new powershell.hrc features. = 5.0.19 = For Far 3.0.2573. Extras - The directory Extras with Colorer syntax and color schemes is removed from the PowerShellFar package. It is distributed separately as the ColorerPack package among other FarNet packages. = 5.0.18 = Improved powershell.hrc for Colorer - Renamed PowerShell to powershell (Colorer style), update your prototype file. - powershell:regions instead of def:regions (colors can be customized in .hrd). - Comment inherits def:Comment => TODO, URL, Email, bug, fix, ??, !! - Backtick at EOL is the region LineWrap. - Added yet missing escaped "" in "...". - Improved psfconsole output. Get-TextLink-.ps1 - Gets the link + selected text, if any. Open-TextLink-.ps1 - VS link: also uses the next editor line as a hint. - In markdown files can jump to internal link targets. = 5.0.17 = FarDescription module and Edit-FarDescription-.ps1 (description tools and multi-line editor) - Do not trim, keep text as it is. - Do not preselect 1-line descriptions. - Use temp names like "name.ext.description.txt" and enable editor history. Thus, it is much more convenient to edit descriptions - texts are opened at last saved positions and Colorer adds some colors for .txt. Distinctive name can be used by other tools (e.g. RightWords for spelling checks on opening). Show-Markdown-.ps1 - Amended the anchor pattern. Reformat-Selection-.ps1 - Amended formatting of markdown lists. Indent-Selection-.ps1 - Renamed the switch Outdent -> Back. - It can work with any custom prefix, e.g. '> ' (quotations in markdown). Show-Hlf-.ps1 - @+ @- should not be treated as topic anchors. RomanConsole.hrd - Changed def:Tag color so that it is different from def:Text. (BTW, the original standard White scheme has the same "defect"). = 5.0.16 = Settings - $Psf.Settings.EditorConsoleEndOutputScript = 'Get-Date' The script is invoked after each editor console command, its output is converted to strings and written to the editor console. Markdown tools - Reformat-Selection-.ps1: formatting of markdown list items. - Markdown scripts support .text, .md, .markdown extensions. Select-Bookmark-.ps1 adapted to FarNet changes. Search-FarFile checks masks for validity. = 5.0.15 = * About - Replaced "Readme.txt" with "About-PowerShellFar.htm" which is generated from the same source as "PowerShellFar.hlf". * Markdown & markdown help tools - Requires HelpDown - New script Show-Markdown-.ps1 opens markdown as HTML or Far help. - Invoke-Editor-.ps1 opens markdown files from editors as HTML, at the topic. - Profile-Editor-.ps1 opens markdown files from editors as HLF, at the topic. = 5.0.12 = * Amended source info format in stepper error messages. = 5.0.11 = Tweaks in PowerShell breakpoint related code. = 5.0.9 = *) New FarNet drawers infrastructure and new Far events - Good news: breakpoints are now updated on script changes. There are some cases not yet processed correctly due to the nature of Far change events. - Breakpoint highlighting is based on new drawers engine + fixed minor defects. - Removed Draw-Word-.ps1 (it is replaced by the new FarNet module Drawer). - Test-EditorDrawer-.ps1 -> Test-RegisterDrawer-.ps1 *) Misc - Added yet missing switch -IsLocked to *-FarEditor cmdlets. = 5.0.8 = *) Amended drawers API - Adapted Draw-Word-.ps1. As a result, also fixed some defects. = 5.0.7 = *) Editor drawers use new PowerShell friendly API - New script Draw-Word-.ps1: Draws occurrences of the current word. - Adapted Test-EditorDrawer-.ps1 *) Breakpoints in PS files - Changed highlighting color to White on DarkRed (like in ISE, VS, etc.). *) Assert-Far - Changed order of buttons and disabled cancel. = 5.0.6 = *) Stepper (engine for tests and super-macros) - Steps may return script blocks (modal steps), other output is an error. - New cmdlet Invoke-FarStepper for running stepper scripts easier. - New Stepper.AddFile(), Stepper.Data & automatic variable$Data. - Removed $Psf.Go(), Stepper.AskDefault, Stepper.PostUnit(). - More information on errors. *) PowerShellFar.farconfig - Minor tweaks of some macros (e.g. about Mantis 1700). = 5.0.5 = *) Histories come back - Complete-Word-.ps1 uses command/dialog history again. - Show-History-.ps1 comes back. *) Misc - A few example macros in PowerShellFar.farconfig - Minor fixes = 5.0.4 = *) Editor console - Simplified menus and removed some exotic unlikely used features. - [Console] in the debugger dialog does not show not needed menus. - Files, if saved, are in the local PowerShellFar root directory. *) Cmdlets *-FarEditor, *-FarViewer - Added yet missing parameter CodePage - *-FarEditor cmdlets allow empty file names = 5.0.3 = *) Debugging Script breakpoints are highlighted in the script editor. Note: breakpoints are not updated when scripts change. To be continued, hopefully with this: http://bugs.farmanager.com/view.php?id=1981 *) Scripts - New Test-EditorDrawer-.ps1 (enjoy colors in PSF, too!) - New Show-EditorColor-.ps1 (dumps current editor colors) - Updated Show-KeyMap.ps1 for Far 3.0.2366 + new formatting. *) Removed scripts designed for Far2: - Start-Far.ps1 - Export-FarSettings.ps1 - Import-FarSettings.ps1. = 5.0.2 = - Fixed Edit-FarDescription-.ps1 = 5.0.0 = This version is designed for Far Manager 3 + FarNet 5. There are breaking changes and some scripts have to be updated. See FarNet history for details and new FarNet API documentation. Some PSF features were removed (forever or not may depend on the feedback): - FarMacro module and its cmdlets (*-FarMacro). - Far history is not supported by scripts. = 4.6.1 = This probably the last build for Far 2. Minor fixes in scripts and help. Update-FarManager.ps1 updates Far 3 by default. = 4.6.0 = Changes for PowerShell V3 CTP2. Adapted most of features. PSF should work in both V2 and V3. But some advanced scenarios may not work in V3 (yet) or may work differently. NOTE: it does not mean that use of V3 CTP2 is recommended. But it is possible. *) Scripts called by PSF Breaking change. Calling conventions changed. V3 CTP2 does not allow use of$this as it used to be in V2. Thus, instead of setting automatic variables $this and$_ before calling scripts PSF sends these data as arguments. All scripts should either use $args[0] instead of$this and $args[1] instead of$_ or use param($x,$y), for example, "param($this,$_)" added as the first script line lets to keep scripts using $this and$_ not changed. *) Use of $$is deprecated The easy to type variable$$ works funny in PowerShell V3. A bug or not, PSF scripts do not use this variable now. *) Member panel Properties that throw exceptions on getting values are now included with values like "". *) Cmdlet Assert-Far It used to require exactly Boolean values. Let's keep it simple, any type is fine, just like for 'if'. It is checked now as LanguagePrimitives.IsTrue(). *) Renamed scripts Connect-Mdb-.ps1 -> Connect-MSAccess-.ps1 Connect-Sdf-.ps1 -> Connect-SqlCompact-.ps1 *) Cosmetic changes in scripts. = 4.5.1 = *) Built-in cmdlets help - Fixed cmdlet HelpFile properties and related Get-Help problems. - Get-Help, help, man commands work with Far cmdlets just fine. - Removed workarounds Get-FarHelp and help from the internal profile. *) Popup-style list code names: replaced all Intelli with Popup. *) New-FarItem cmdlet does not accept pipeline input now. *) PowerShell.hrc for Colorer - Changed processing of '.' symbols. - Doc-comments are supported in line comments, too (as in block comments). - task is processed as function (including outlined list). It is not a PowerShell feature but it is really handy with Invoke-Build or psake`: https://github.com/nightroman/Invoke-Build https://github.com/JamesKovacs/psake = 4.5.0 = The module is built for .NET 3.5, just like FarNet 4.5.0. A few new 3.5 features are used internally. = 4.4.20 = *) Initialize-Test-.ps1 Changed the way of choosing and initializing the database provider for testing. It allows to work with available but not registered SQLite, for example. = 4.4.18 = *) TabExpansion - Improved performance of building the cache for type/namespace expansion - Added try/catch of assembly access exceptions (e.g. dynamic assemblies) - Other tweaks *) Invoking a script from the editor by [F5] As usual it sets the current directory and location to the script directory. Now it also restores them after work. Otherwise, with no ASCII plugins, the current directory was changing and locking its parent directories. *) Panel-Job-.ps1 ([F3], [CtrlQ]) Job errors, if any, are shown in the message box separately. Then the job output is shown. (It used to show the first error and no output at all). Test-Panel-Job-.ps1 - the first job makes a demo error to show this. *) Start-MSBuild-.ps1 Save and restores last used options for each project file. Data are stored in the local file Start-MSBuild-.ps1.clixml. *) Bugs Fixed null-ref issues on opening the error list from the PSF menu. There are errors with null invocation info, e.g. errors received from PS jobs. = 4.4.17 = *) Connect-SQLite-.ps1 - Use the latest ADO.NET provider from http://system.data.sqlite.org - Foreign keys are enabled by connection strings, not by pragmas. *) PowerShell.hrc - Fix: '' in here-strings @'..''..'@ should not be treated as escaped '. = 4.4.16 = *) "PowerShellFar.cfg" is not used by FarNet and removed from the module. = 4.4.15 = *) Housekeeping - Updated for FarNet changes in IFar.Post*() methods. - Code cleanup. *) Data panels - Fixed issues on invalid sort/filter user expressions. = 4.4.13 = = 4.4.14 = ### Moving from registry to user profile directories *) Settings Main persistent settings are stored in a file and modified in the standard module settings panel opened from the new FarNet menu .NET \ Settings... The settings should be migrated manually. Old registry data can be removed. The file, just in case (but use the settings panel to view/edit), is: %APPDATA%\Far Manager\FarNet\PowerShellFar\Settings.binary *) Command history is now in the file: %LOCALAPPDATA%\Far Manager\FarNet\PowerShellFar\PowerShellFarHistory.log How to export the old history: go to that directory and invoke two commands: ps: $key = Get-Item HKCU:\Software\Far2\Plugins\FarNet.Modules\PowerShellFar.dll\CommandHistory ps:$key.GetValueNames() | Sort-Object | %{ $key.GetValue($_) } | Set-Content PowerShellFarHistory.log -Encoding UTF8 Export-FarSettings.ps1 and Import-FarSettings.ps1 do not care of old registry key data. The key should be removed manually after exporting data to the file. Also, Import-FarSettings.ps1 does not care of Vessel data, the latest version of Vessel uses new FarNet settings engine. *) $Psf - Removed AppData. Use$Psf.Manager.GetFolderPath(). - Removed ShowSettings() and the dialog (the settings panel is used instead). ### Other changes *) TabExpansion.ps1 - Fixed attempt to add a dupe key to the type cache. *) Test-Panel-.ps1 - Removed obsolete KeyPressing event code. = 4.4.12 = *) Meta class - Cache of scripts created from strings (better performance on searches). = 4.4.11 = *) FarInventory module - Renamed Show-*Panel -> Open-*Panel = 4.4.10 = *) Search-FarFile cmdlet - Added parameters XFile and XPath, see FarNet history for details. *) FormatPanel (base of ObjectPanel and ItemPanel) - Better performance (avoided expensive repetitive calls of Get-FormatData). = 4.4.9 = *) DataPanel - New properties ViewSort, ViewRowFilter allow to set predefined sort/filter. - XML data may have 2+ tables, use TableName or choose a table from a menu. - New properties XmlFile, XmlReadMode, XmlSchema, XmlWriteMode, TableName. - Added control of the source XML file time in order to detect conflicts. - Hidden not calculated columns are excluded by default in the table panel. - Hidden, calculated, auto-increment fields are hidden in the member panel. - Removed redundant constructors, only the default is left. - Fix: [F1]\Filter: fixed default text in the input box. *) Connect-SQLite-.ps1 Improved discovery of the SQLite assembly or provider. In particular, it is fine simply to have System.Data.SQLite.dll in the FarNet home directory (no installation and/or registration is needed in this case). Starting with 1.0.69 (released a few days ago) SQLite.Interop.dll is also needed. *) Open-TODO-.ps1 - Changed column/field names: Text -> Name, Memo -> Text, M -> T. - [F4] in the table opens the editor to edit Name and Text values together. If the result editor text is empty then the record is deleted. = 4.4.8 = *) DataPanel class, scripts, etc. [F1] menu - New Sort command; syntax is similar to ORDER BY in SELECT. - New Filter command with a logical expression, see Expression Syntax: http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression - Sort and Filter input boxes provide TabExpansion of columns, functions, etc. Raw DataTable support - Data are not from a database, they are in-memory data or imported from and exported to XML files. Constructors: DataPanel(DataTable), DataPanel(xmlFile), DataPanel(xmlSchema, xmlData). *) New script Open-TODO-.ps1 This is a toy script but it can be useful, too, as it is or with changes. The goal is to show how to use: - DataTable with data stored in XML files; - DataPanel in order to view and modify that data. Example of Far Manager file association: - Mask: *TODO.xml - Command: ps: Open-TODO- (Get-FarPath) # *) Out-FarPanel cmdlet If it is opened when a module panel is active then this panel is restored on the output panel exit (it used to be closed when the output panel starts). = 4.4.7 = *) DataPanel - [F1] menu: "Record limit", "Record offset" (offset N tells to skip N records). - [F3]/[CtrlQ]: noisy data members are excluded, only record fields are shown. - Fixed: [F7] + [Esc] + [No] used to show an error and close the panel. *) Panel-DbTable-.ps1 For SQLite databases it now shows views in addition to tables. [Enter] on a table shows the input box with the select command to be used. As a result, you can: 1) cancel (why not?); 2) change the command; 3) execute other SQL command -- only SELECT commands are recommended, but if your command is "DROP TABLE X" then it is executed as well, IT'S YOUR CHOICE. Example (useful for SQLite): the table name is Files and the default command is "SELECT * FROM [Files]". If Files does not have an explicit key column then the opened table cannot be modified. This command: "SELECT rowid, * FROM [Files]" allows to add/delete/modify records (SQLite tables always have the rowid). = 4.4.6 = *) Connect-SQLite-.ps1 If -Panel is specified and -Options is empty then it prompts for options. This might be needed for example in order to set "DateTimeFormat=Ticks". *) DataPanel - Number of shown records is limited now, real life tables can be huge. - Added help menu ([F1]) commands: Next range, Previous range, Record start number, Record maximum count (default is $Psf.Settings.MaximumPanelFileCount). *) FarNet menu: .NET \ Panels \ Decrease|Increase left column - In PSF it works in all list panels (MemberPanel, PropertyPanel), ObjectPanel-s and DataPanel-s with two columns, Search-FarFile and Search-Regex-.ps1 panels and etc. Use via macros or by pressing [Space]. *) Bugs - Crash on stopping a script by CtrlBreak in some cases. - Could not enter nulls by [Shift{F8|Del}] in the list panel in some cases. = 4.4.5 = *) Updates for FarNet changes. *) Search-Regex-.ps1 Fixed shown count of found matches. *) PowerShell.hrc Fix "highlight braces for filter/function" *) SQLite database support - Uses SQLite ADO.NET provider: http://sourceforge.net/projects/sqlite-dotnet2 - New script Connect-SQLite-.ps1 allows to connect to a database and optionally to open it in the panel (assume Panel-DbData-.ps1 and Panel-DbTable-.ps1 are in the system path). The panel is not just a viewer, it allows to add, delete and edit database records. - Initialize-Test-.ps1 allows to create a test DB Tempdb.sqlite in %TEMP%. Then the command: ps: Connect-SQLite-.ps1 -Panel$env:TEMP\Tempdb.sqlite .. opens the DB in the panel with two test tables ready to view or change data. = 4.4.4 = *) ItemPanel (PS providers) - It supports explorer features completely. As a result, search works fine. - Improved performance of explorers in search mode. *) Search-FarFile - Added -Depth parameter. - Added -Asynchronous switch: Tells to performs the search in the background and to open the result panel immediately. Found items are added dynamically. *) Scripts A numbers of small changes dealing with changed or new explorer/panel features. = 4.4.3 = *) Revised panels - Panels are based on explorers (but not all is used/enabled yet). - Lots of changes for the new engine not mentioned in here. - Removed UserPanel, use ObjectPanel instead. - Removed ObjectPanelOnDots, it's not useful. - SetSave() -> AsSaveData - SetLookup() -> Lookup (combined) - Fixed stack overflow on command line events *) Adapted scripts - Adapted all scripts that create panels to the new panel engine. *) Renamed cmdlets to follow guidelines, hopefully Start-FarPanel -> Open-FarPanel Start-FarEditor -> Open-FarEditor Start-FarViewer -> Open-FarViewer Start-FarSearch -> Search-FarFile = 4.4.2 = *) Start-FarSearch cmdlet Added parameter -Mask: classic Far mask including exclude and regex forms. -Mask is for simple searches by name(s). -Script can search by anything. See help: vps: Get-FarHelp Start-FarSearch = 4.4.2 = *) New cmdlet Start-FarSearch See help: vps: Get-FarHelp Start-FarSearch Run Test-Explorer-.ps1 and try Start-FarSearch: # Invoke from Flat or use -Recurse from Root: ps: Start-FarSearch { $_.Data.Definition -match 'throw' } # Invoke from Root ps: Start-FarSearch {$_.Name -like 'PowerShellFar.*' } -Recurse -Directory *) Test-Explorer-.ps1 - "Tree" test case: use HKCU:\Software\Far2\Plugins as the root. - "Path" test case: use of TypeId and ExplorerTypeId on panel creation. - New test case "Location": example of an explorer with 'ExploreLocation'. *) MemberPanel, PropertyPanel - Replaced warnings on editing read only members with editor locks. = 4.4.1 = *) Test-Explorer-.ps1 It shows how just added search in explorer panels works (see FarNet History.txt) *) Housekeeping (the core) Removed use of Notepad on [ShiftF4] in panels. It was introduced and needed in Far 1.x for Unicode data. Now it is useless, besides it is modal. [F4] rules. *) Housekeeping (scripts) AnyPanel - SetDelete -> AsDeleteFiles - SetEdit -> AsEditFile - SetOpen -> AsOpenFile - SetView -> AsViewFile - SetViewAll -> AsViewAll UserPanel - SetGetData -> AsFiles - SetWrite -> AsWriteFile = 4.4.0 = *) Revision of FarNet panels The PSF core and all the scripts are updated according to the new panel API. There are many small changes in all panel scripts, mostly renaming-like. *) PowerExplorer PowerExplorer is the fully functional explorer designed for scripts. Interface methods have related script block properties. Each method calls its script. Test-Explorer-.ps1 shows a complex data tree with different kinds of explorers. *) New-FarFile Accepts System.IO FileInfo and DirectoryInfo as input and attaches it as Data. All other properties are set automatically except Description. *) PowerShell.hrc for Colorer Arrays @() and hashtables @{} use the same style as (), {} blocks. It is now easier to see orphan symbols without matching pairs, that is, syntax mistakes. = 4.3.40 = *) Panel-Macro-.ps1 Removed not needed call of Load(). = 4.3.39 = *) Cmdlets Out-FarPanel, Start-FarPanel - Removed the ReverseSortOrder switch. - The SortMode parameter now includes *Reversed values. = 4.3.38 = *) Breaking synchronous commands [CtrlBreak] is used instead of [CtrlC] in order to break synchronous commands (including started from the global editor console). Asynchronous commands in local and remote editor consoles are still stopped by [CtrlC]. *) Cmdlet Show-FarMessage New switch -Draw to draw message-like boxes. *) Test-ProgressForm-.ps1 Added ProgressBox examples. = 4.3.37 = *) Removed the hotkey [Alt1] from the main menu - THIS CHANGE BREAKS MACROS: F11 Alt1 ... - Use the CallPlugin() instead, see FarNet's Readme.txt. Update affected macros (and do not forget documentation/comments, too). - Updated Install-Macro-.ps1 *) Better UI culture support, e.g. for scripts localization $PSUICulture and$Host.CurrentUICulture are internally connected to the currect culture of the PSF module. Thus, e.g. Import-LocalizedData may work with the current culture by default (it uses $PSUICulture). *) Cmdlet New-FarEditor Replaced parameter Data with Host. As far as a caller creates the editor, it is OK to consume the Host property: it is simpler to use than the Data. *) Cmdlets Out-FarPanel, Start-FarPanel Parameter Data is now IDictionary, not Object (due to FarNet changes). *) New role of FarNet IEditor.Data, IPanel.Data: Edit-FarDescription-.ps1, Panel-DbTable-.ps1, Search-Regex-.ps1, Watch-Output-.ps1 *) Profile-.ps1 Removed menu action 'Edit recent file' (it's done by Vessel, if used). = 4.3.36 = *) FarMacro module Moved the temporary files folder %APPDATA%\FarMacro to %TEMP%\FarMacro. = 4.3.35 = *) Added the [Atl1] hotkey to the PSF menus - Bare dialog to input and invoke code. It is designed for macros. - Install-Macro-.ps1 uses the hotkey [Alt1] instead of [1]. - "F11 Alt1" discards command output, if any. - "F11 1" may be used for macros with output. - See help "Command and macro examples". *) FarDescription module - Do not trim leading white spaces. - Test-Descript-.ps1 covers this change. *) Import-FarSettings.ps1 Preserves some local data of the Vessel module. = 4.3.34 = *) Test-Dialog+.ps1 Enabled for x64, too. = 4.3.33 = *) Reformat-Selection-.ps1 Added *.R files to '#' line comments file group = 4.3.32 = *) Removed Go-Home-.ps1 The code and commands are moved to FarNet.RightControl module. Updated Profile-.ps1 and Profile-Editor-.ps1 accordingly. *) Install-Macro-.ps1 -- Added mouse macros for FarNet commands Decrease/Increase font size. -- Common\AltF11 is not used (to be used by another FarNet module). -- Shell\CtrlC to copy selected text. = 4.3.31 = *) PowerShell.hrc for Colorer Outlined: improved for functions, added for variables$global:X and $script:X (with prefix). This allows to insert functions and variable names from the outliner menu. *) Object panel columns a la Out-GridView in some cases: - Same primitive types: 1 column (TypeName) - Mixed types: 3 columns (##, Value, Type) Compare these two panels: ps: '42', 'foo' | Out-FarPanel ps: 42, 'foo' | Out-FarPanel *) Minor fix: removed misused IEditor.IsModified from editor scripts. *) Removed cmdlet Trace-Far It is not proven to be useful. Just call [Diagnostics.Trace]::Trace* methods directly (see Test-Stepper-.ps1) or use advanced .NET class TraceSource. As a result: - Test-Stepper+.ps1 does not trace (too much for a demo) - Test-Stepper-.ps1 shows use of standard .NET tracing = 4.3.30 = *) Select-Bookmark-.ps1 -- Updated for changes in Far 4.3.30 -- Stack bookmarks are included, too -- Fixed an old bug *) Install-Macro-.ps1 Added a few utility macros working with editor bookmarks including the call to Select-Bookmark-.ps1 NB: for correct work with bookmarks use Far 2.0.1667+ = 4.3.29 = *) Search-Regex-.ps1 It calls new$Far.UI.SetProgressFlash() when it is done. *) Import-Panel-.ps1 Added support for the Txt format (tab delimited data files). = 4.3.28 = *) Test-Dialog+.ps1 Added test of IsTouched property of edit-boxes and combo-edits. = 4.3.27 = *) Show-FarMessage cmdlet Allow null as the input text (show an empty message, do not fail). = 4.3.26 = *) TabExpansion.ps1 -- Undone the previous change and fixed the original issues properly. *) New library FarNet.Tools.dll (see FarNet) These tools are created and used directly, not via $Far methods. For example to create a SubsetForm add the library and then call New-Object: Add-Type -Path$env:FARHOME\FarNet\FarNet.Tools.dll $form = New-Object FarNet.Tools.SubsetForm ... *) New test/demo Test-ProgressForm-.ps1 It demonstrates typical use cases of the new FarNet tool ProgressForm and explains in code comments the common 4-steps scenario. = 4.3.25 = *) See FarNet: IEditor.BeginAccess/EndAccess are removed. PSF core and all the scripts are updated accordingly. *) TabExpansion.ps1 -- fixed minor issues on type/namespace expansion = 4.3.24 = *)$Psf.Settings.MaximumPanelFileCount sets the limit for panel files to be shown in an object panel without confirmation. Default is 1000, should be enough for data preview in most cases. Try: ps: 1..10000 | Out-FarPanel *) Edit-TextLink-.ps1 is renamed to Open-TextLink-.ps1 and: -- Recognizes and opens URL addresses (by Start-Process, like Windows Run); -- Supports Select-String output format links: :: (You may remove the old file Edit-TextLink-.ps1) *) Menu-More-.ps1: commands "Edit text link" and "Copy text link" moved to main PSF menu (see Profile-.ps1). *) Panel-Database-.ps1 -- Uses sys.databases instead of sp_helpdb (it gets more useful info and shows some problem databases, too). = 4.3.23 = *) Update-FarNet.ps1 -- This script replaces the old Update-PowerShellFar.ps1 (you may delete it). -- New feature: for any FarNet product it asks to confirm its download/update, so that you can skip not used packages and still use the script for updates of other packages. *) Edit-TextLink-.ps1 Links can include character numbers in addition to line numbers: C:\Program Files\Far\FarEng.lng(36,22) At C:\Program Files\Far\FarEng.lng:36 char:22 These links are opened at line 36 and char 22 (columns may depend on tabs) *) vps: commands output viewer -- Enabled switching to editor [F6] from the output viewer. Note: the tmp file is deleted on switching but Far prompts you to save data when editor exits. Switching to editor is used (for example) to open error sources from error messages using Edit-TextLink-.ps1 = 4.3.22 = *) FarNet raw UI moved to $Far.UI -- PSF core and scripts now use this API and$Host.UI.RawUI, not Console. -- Your affected scripts may have to be updated. Also, do not call Console methods directly; instead, use FarNet or PSF APIs ($Far.UI or$Host.UI.RawUI). *) TabExpansion #-patterns {#|#xyz|xyz#}[Tab] patterns are expanded into custom patterns from the TabExpansion#.txt in the PSF home directory. Patterns are basically any strings, one per line. # in patterns is treated as the caret insertion point after expansion. These patterns can effectively cover not standard or rare but still useful cases. Examples: #[Tab] -> all patterns #*null -> [AllowNull()], [ValidateNotNull()], ... $#[Tab] ->$LastExitCode, $MyInvocation.MyCommand.Definition, ... [Al#[Tab] -> [Alias('#')], # is removed and the caret is set there If TabExpansion.ps1 is used in other hosts then this feature is used to expand command history entries there. *) Other changes -- PowerShell.hrc for Colorer -- Added operator ::. -- Assert-Far -- Added a few helper switches. -- Help -- Minor improvements. = 4.3.21 = NOTE: update manually (not by Update-PowerShellFar.ps1). This script and its parameters are redesigned to be less sensitive to future changes in archive list and archive contents. *) Far /w mode -- Fixed TabExpansion and Complete-Word-.ps1 menu position. *) TabExpansion -- Applications are also added to candidates (gcm * -type application). It's a little bit noisy, perhaps (that's why it was not done), but it looks like we better have these candidates in the list, too. *) Script debugging dialog -- New button [View]: Opens an external viewer to view the running command output. This action is not available for some commands, e.g. editor console commands. *) Command output (continued) -- The command "Invoke script from editor" ([F5] in the editor with .ps1 file) has the same effect as if it is invoked from the input command box (similar to vps: commands from the command line). Output, if any, is shown in the internal viewer when the command is done. External viewer is used only on debugging via [View], see above. = 4.3.20 = *) Transcription of command output Output of ps: commands is written to the user screen and to the current session transcription file. The transcription file is in the %TEMP% directory, its name is "PowerShell_transcript..txt" The transcription file is lazy opened, kept opened until the end of the session and deleted if Far exits normally. Use Show-FarTranscript [-External] to view the transcribed session output. Note that external show is especially useful on script debugging. Output of vps: commands is written to files: "PowerShell_transcript....txt". Their life is shorter: they are deleted as soon as their viewers are closed. *) Update-PowerShellFar.ps1 -- Adapted to the changed FarNet package. *) Generate-Dialog-.ps1 -- update: replaced GetControl() with$dialog[] -- FarNet fix: generated button text should not have brackets *) PowerShell.hrc (Colorer) -- Added $Transcript to special PS variables (see Start-Transcript, -Path) *) Start-Far.ps1 -- Start Far with /w, not /rc switch (Far 2.0.1566) = 4.3.19 = *) Commands output -- command line commands with prefixes 'ps:' write to the console; -- command line commands with prefixes 'vps:' show output in viewers; -- command box commands always show output in viewers; -- removed$Psf.Settings.OutputPreference, there is nothing to configure; (Reminder: user menu and file association are command line commands, too) *) Console output -- fixed screen defects on UI in the middle of execution with output; -- added configurable output colors: $Psf.Settings.*ForegroundColor; -- echo commands using colors, do not echo commands with no output. Demo of new console output with all colors and message types: ps: .\Test-Write.ps1 *) Background jobs Starting jobs by prefix vps: was not really useful. The prefix is now reused for commands with viewer output (see above). Jobs should be started by usual prefix ps: and the cmdlet Start-FarJob. Start-FarJob allows to specify arguments and switches; that is why job command prefixes are not enough. Note: you can define your own prefixes and commands and do whatever you want, see Test-RegisterCommand-.ps1 for the example. In particular you can define a prefix for invoking jobs, just like it was before. In contrast: features like ps: and vps: cannot be defined from scripts. *) Member panel -- issue: input enum values should be case insensitive. = 4.3.18 = New option$Psf.Settings.OutputPreference -- Values: 'Default', 'Console'; it is normally set in the profile but it can be changed dynamically, too: ps: $Psf.Settings.OutputPreference = ... Default: as it was before (the engine decides how to output); Console: output of commands from panels is written to the user screen. The good: output is colored (errors, warnings, etc.). The bad: only the tail of long output can be seen after invocation. Output can produce unwanted but harmless screen effects on commands with Far UI and on PowerShell debugging. = 4.3.17 = Table panels -- Automatic columns preserve property order for homogeneous sets -- Improved automatic column arrangement and fixed a bug there -- Automatic Name column with a null value used to fail Tracing tools -- Use of newer FarNet tracing tools. -- Cmdlet Trace-Far now has two parameter sets: *) Trace (old): uses Trace class (for trivial tracing); *) Event (new): uses TraceSource "FarNet" (new FarNet tracing). = 4.3.16 = Start-MSBuild-.ps1 -- Use of MSBuild depending on existence: 4.0, else 3.5, else 2.0. = 4.3.15 = PSF console -- Editor title shows extra information about the session: "Local session" for the local async sessions, " session" for remote sessions. The global session editor title is just a file name, as usual. FarNet changes --$dialog.GetControl($i) ->$dialog[$i] Module FarInventory -- New function Show-EnvironmentPanel = 4.3.14 = Module FarInventory *) New functions: Show-InventoryPanel, Show-LogicalDiskPanel *) Corrected Get-Uninstall for x64 machines (registry data should be taken from more than one key). Note that in 32 bit process Get-Uninstall does not get info about installed 64 bit products; in 64 bit process Get-Uninstall should get information about 32 and 64 products. TabExpansion *) Added expansion of WMI class names immediately after Get-WmiObject, gwmi, Invoke-WmiMethod, Register-WmiEvent, Remove-WmiObject, Set-WmiInstance with optional -Class parameter. Examples: gwmi win[Tab] Get-WmiObject -Class *process[Tab] *) Fixed some cases with expressions like this: (Get-WmiObject Win32_Service -Filter 'Name="Spooler"').[Tab] *) TabExpansion does not hides errors now: (Get-WmiObject Win32_Service -Filter 'Name="Spooler").[Tab] *) TabExpansion shows an empty list now: (Get-WmiObject Win32_Service -Filter 'Name="Oops"').[Tab] Others *) Fix: script block as Expression in Columns in table panels did not work from panels created in PS modules (e.g. FarInventory). Also, the global variable$_ is now removed after use. *) Fix: Reindent-Selection-.ps1: initial indent size was not always correct. *) Install-Macro-.ps1: corrected Common macros for the AutoCompletion area. = 4.3.13 = Table and list panels: new feature "Apply command": [CtrlG] opens an input box and prompts to enter a command to be invoked for each object $_ in the selected or the current objects in a table panel or the target object in a list panel. Table panel column meta information defined by hashtables: the key 'Type' which defines Far panel column kind is renamed to 'Kind', so that the name is the same as in the FarNet SetColumn class. List and table panels and scripts: *) Property ExcludeMembers (string[]) is replaced with ExcludeMemberPattern (string, regular expression pattern). This way is simpler and more flexible. *) Added new property HideMemberPattern for members to be included into the member list but shown with IsHidden flag set. Added parameters ExcludeMemberPattern and HideMemberPattern to the Out-FarPanel cmdlet (HideMemberPattern is used in the new module FarInventory to hide some noisy but still sometimes useful WMI properties). New module FarInventory. This is a script module with a bunch of functions. It contains just a few now, to be continued. See about_FarInventory.help.txt for details or run this: ps: Import-Module FarInventory; help about_FarInventory Fixed: [CtrlR] in object panels with custom columns used to show an empty panel instead of refreshing the objects. = 4.3.12 = The PSF core and several scripts were adapted to the recent FarNet refactoring changes in editor and editor lines API. See FarNet history for details. Scripts working with that API have to be updated, more likely. In addition:$Psf property HotText was renamed into ActiveText (just to be more formal and to follow ILine.ActiveText). HotLines was removed as not really used. = 4.3.11 = DATA PREVIEW IN PANELS Improved preview of enumerable types and some frequently used types in panels. Simplified internal procedures of column set selection from properties. Default column sets now may be not the same as in previous versions. Preview is preview. Default column set selection in table panels: if there are too many properties (more than $Psf.Settings.MaximumPanelColumnCount) then best candidates for N, Z and O columns are moved to the left. Example: ps: Get-WmiObject Win32_PnPEntity | Out-FarPanel .. the first columns are Name, Description, Status. Compare: in the old version the column Name was not shown at all. OTHER CHANGES Copy objects from an object panel to another object panel: the target panel should be updated automatically. = 4.3.10 = PanelKeyEventArgs.Preprocess was removed, see FarNet news. Affected scripts should be updated. Updated scripts in PSF: Search-Regex-.ps1, Test-Panel-.ps1. Test-Panel-.ps1: added demo handler of the new event KeyPressing. The$Psf.Settings.FormatEnumerationLimit (default is $FormatEnumerationLimit) is used for object panel columns and list panel values display. Example: invoke this command: ps: Get-ChildItem hkcu:\ | Out-FarPanel .. and see that only a few first items is shown in the Property column. Compare with standard PowerShell output: ps: Get-ChildItem hkcu:\ .. results should look more or less the same (visually, of course, panel output is not text output, it shows live objects in the panel, not dead text). Fix: Module FarMacro: a few issues with paths with end '\'. = 4.3.8 = Improved TabExpansion of type and namespace names. Changed the global type cache$TabExpansionCache from DataTable to Hashtable. Some of improvements: -- more names are covered, this works now: [mi[Tab] -> [Microsoft. ... -- A dot is added automatically to namespace names (ready for the next [Tab]) Other new TabExpansion features: [*...[Tab] -- global search: the type cache is not used; example: [*farmac[Tab] is expanded to type names with 'farmac'; it should always work after loading of the FarMacro module. [...*[Tab] -- '*' tells to update the global cache before expansion; example: [farmac*[Tab] should always work after loading of the FarMacro module; compare: [farmac[Tab] does not work if FarMacro is loaded after $TabExpansionCache creation. Export-FarSettings.ps1 and Import-FarSettings.ps1 use the file FarSettings.xml where PSF commands are exported to and imported from. On import PSF commands are merged with existing in the registry. Fix: Complete-Word-.ps1 was not updated for recent FarNet changes. = 4.3.7 = See FarNet History.txt for changes there, some scripts may be affected. Registry: PSF command history moved from "SavedDialogHistory\PowerShellFarHistory" to its module data location: "Plugins\FarNet.Modules\PowerShellFar.dll\CommandHistory" Move\rename it using two registry provider panels (or maybe just remove the old location). New cmdlet Assert-Far: the helper for testing and debugging. If the conditions fail it breaks execution and prompts for choices: one is to break into the PSF debugger (may continue), another is to open a script in the editor at the assertion line (stops). In fact, "Assert-Far$false" (same as "Assert-Far") is a hardcoded breakpoint. Assert-Far with the parameter -Title is designed for production scripts: it shows a simple message and stops in a friendly way without much noise: Assert-Far ($Far.Window.Kind -eq 'Editor') "Run from editor!" -Title "Oops" Debugger dialog: -- New button [Break] stops the pipeline (throws PipelineStoppedException). -- Replaced [Goto] with  and [Goto] buttons and fixed a [Goto] bug. FarMacro module: added support of Consts and Vars areas. Cmdlet Edit-FarMacro and script Panel-Macro-.ps1 also support these areas and allow to work there. All standard Far data types are supported: text, dword, qword. ObjectPanel: fix: when it is used as a temp panel for any objects it should be updated on copying objects from another panel. Panels: obsolete and not used property and parameter "AutoSize" was removed from panels and cmdlets. There are no plans to use it in the future: default columns are good enough for data preview. = 4.3.6 = UPDATE STEPS Remove the registry key "Far2\Plugins\FarNet" and make sure you do not start old FarNet after that, otherwise you will get never used FarNet registry data. The PowerShellFar registry settings moved from: "Far2\Plugins\PowerShellFar" to "Far2\Plugins\FarNet.Modules\PowerShellFar.dll". You should reset configuration or move the old registry properties, for example, using the registry panel. See FarNet History.txt for changes there, some scripts may be affected. = 4.3.5 = *) Module FarMacro: New cmdlet Edit-FarMacro allows to edit macro sequences in the editor with syntax coloring (Colorer plugin) and syntax checks on saving ($Far.Macro.Check()). See also about_FarMacro.help.txt *) Script Panel-Macro-.ps1: it is now based on the FarModule completely. In particular the -Editor mode is removed, use new Edit-FarMacro cmdlet instead. = 4.3.4 = *) Panel Columns: new attribute Alignment: Alignment='Right' can be used together with positive column widths. *) Table panels: better adjustment of built-in table formats for narrow panels. For now we just drop preset widths and ignore alignments. Right aligned data are not funny any more after that, they are just shown as they are. *) Panel-Macro-.ps1: [F4] or "Panel-Macro- " (edit macro sequence in the editor): on exit from the editor IMacro.Check() is called to check the sequence, show errors and prompt to continue or discard. This is better than nothing. To be continued. = 4.3.3 = *) "PowerShellFar" item was removed from the disk menu for 3 reasons: 1) It looks like many users are not happy due to extra items in disks; 2) This menu has some known peculiarities for opening panels; 3) This item can be added for example from the profile script: $null =$Far.RegisterTool($null, "PSF panel", {$Psf.ShowPanel() }, "Disk") *) Table panels: added simple procedures that "fix" built-in PS table formats for narrow panels, at least to make more columns visible. Right aligned data may look funny. Tip: use wider panels (80+) or set Columns by a script. *) FarNet: FarColumn, SetColumn: Width type changed from 'string' to 'int'. = 4.3.2 = TABLE PANELS: TRUE COLUMNS AND PS FORMATS All table panels show data in true columns now. Pseudo-columns of Format-Table are not used. Columns are defined: 1) manually by property Columns; 2) auto by object types and related PS formats (TableControl); 3) auto by properties for mono type object sets; 4) three column mode for mixed type object sets: index, value, and type. PS TableControl formats are now found heuristically by object types in the Get-FormatData list. Next versions will allow to specify formats manually. Option AutoSize is not used now but it is kept for the future. Built-in PS formats are good only if panel width is about 80, like default console (Far width is about 164 with two such panels). Next versions will be able to fix formats for too narrow panels dynamically. *) Removed obsolete properties and parameters FarName, ExcludeColumns from panel classes, cmdlets and all scripts. Only Columns or PS formats are used. *) New option $Psf.Settings.MaximumPanelColumnCount (3-13, default is 8). *) UserPanel: two methods SetGet*() are replaced with one SetGetData(). OTHER CHANGES *) Provider panels (ItemPanel, FolderTree) are now more robust on internal PS core failures. They ignore faulty items and still return other items. *) Object panels on [F7] prompt a user to enter a command that gets new panel objects. Old action was actually almost useless (add an empty PSCustomObject). *) Object panels do not prompt on [Esc] any more. [Esc] closes panels. *) Removed cmdlets New-FarObjectPanel and New-FarUserPanel because they do not add any value to New-Object PowerShellFar.ObjectPanel, PowerShellFar.UserPanel *) Start-FarPanel cmdlet: renamed confusing parameter OrderBy to SortMode and View to ViewMode. Added these parameters to Out-FarPanel, too. *) Renamed$Psf.Settings.MaxHistoryCount -> MaximumHistoryCount. *) Fixed Rename-FarFile-.ps1: Added import of the FarDescription module. *) Removed Set-SynopsisDescription-.ps1 because it does not depend on Far. Instead, use a new function Update-FarDescriptionSynopsis exported by the FarDescription module (see its definition in FarDescription.psm1). = 4.3.1 = REFACTORING: PLUGINS -> MODULES AND OTHER NAME FIXES *) See breaking name changes in FarNet History.txt; your scripts that use changed names should be updated. In PSF, in addition: -- Show-FarMsg -> Show-FarMessage -- Removed script Debug-Msg-.ps1. In fact, it was not very useful since the debugger was implemented. *) Removed the term "plugin" from two properties\options. Rename: 2 properties in $Psf.Settings (just in case if scripts use them) and 2 registry values of HKEY_CURRENT_USER\Software\Far2\Plugins\PowerShellFar: -- PluginStartupCode -> StartupCode -- PluginStartupEdit -> StartupEdit POWERSHELL MODULES (Yes, modules, just like in FarNet, the same approach but for PowerShell) *) These modules are standard PowerShell modules. But they: -- are normally designed for FarNet and used with the PSF FarHost; -- do not use PowerShellFar directly (at least this is not recommended) *) Default Modules directory Directory "$($Psf.AppHome)\Modules" is added to$env:PSModulePath on loading, so that all modules in this directory are available at runtime. As usual, import them by Import-Module. In UI there is also the "Modules+" menu. NEW MODULE FARMACRO (Actually the first for the FarHost) Cmdlet New-FarMacro moved there from the PSF core (it's good to keep some not frequently used tools like this in modules: they are loaded only when needed). Switch -Install is removed, instead a new cmdlet is added: Set-FarMacro. New provider FarMacro with its default drive FarMacro:\. Provider panels work for FarMacro automatically: edit, copy, move, rename, create, remove, and etc. NOTE: The script Panel-Macro-.ps1 is not yet upgraded, it still works directly with "old" Registry provider, not yet with "modern" FarMacro. To be continued. For more details: ps: Import-Module FarMacro; man about_FarMacro NEW MODULE FARDESCRIPTION (Actually works for any host) Though it is designed for Far it does not depend on Far or FarNet, it works in any PS host (i.e. you can work on descriptions using standard Console and ISE hosts or any others). But it uses Far description settings from the registry: HKEY_CURRENT_USER\Software\Far2\Descriptions All the code dealing with descriptions, including the Update-FarDescription cmdlet, moved to this module. For more details: ps: Import-Module FarDescription; man about_FarDescription OTHER CHANGES *) Menu action "Help" did not work in the cmdline with PSF prefixes. Fixed. *) Provider panels: improvements for "unknown" not configured providers. *) Show-KeyMap-.ps1: updated for FarNet 4.3.0 changes; added the dialog key map; added more special keys; added area names to key names. *) Reformat-Selection-.ps1: added detection of comments for some known file types of PowerShell, Perl, Python, Ruby, PHP, SQL, Lua, Cmd, Basic. = 4.3.0 = NEW WAY FOR MACROS WITH EMBEDDED CODE *) "Invoke input code" dialog is now suitable for macros with embedded code. Namely, when a macro is in progress this action works in a special way: -- an input box is used instead of the dialog; -- commands are not stored in the history; -- commands output is discarded. Thus, now it is convenient to put some code into a macro. Example: [F10] (exactly!) in Panels: safe exit with background jobs check: F11 X 1 "$Far.Quit()" Enter (X is the PowerShellFar hotkey in the plugins menu) .. or hotkey independent version with native F10 if PSF is not installed: F11$If (Menu.Select("PowerShellFar", 2) > 0) Enter 1 "$Far.Quit()" Enter$Else Esc F10 $End NEW FEATURE: SCRIPTING FAR EXIT *) A few tips about new method$Far.Quit() in addition to above examples. Some update, backup, restore commands waits for Far exit: -- Update-FarManager.ps1 -- Update-PowerShellFar.ps1 -- Export-FarSettings.ps1 -- Import-FarSettings.ps1 -- ... They all can be started from the command line or the user menu like this: ps: Start-Process powershell.exe "-noexit Update-FarManager"; $Far.Quit() ("-noexit" is to keep a new console opened, it's up to you) POWERSHELL HELP IN EDITORS *) Main menu: new action "&-. Help": For the current code token in an editor line (editor, editbox, cmdline) it gets and shows in the viewer available help information. In code editors (*.ps1, *.psm1, *.psd1, *.psfconsole, input code boxes) this action is associated with [ShiftF1]. It is exposed for scripting as$Psf.ShowHelp(). *) Script Get-Usage.ps1 is replaced with internal function Get-FarHelp and removed. Keep or remove it yourself. Old version will be in here: (tags/4.2.26) PowerShellFar/Bench/Get-Usage.ps1 TWEAKS AND FIXES *) TabExpansion.ps1: reduced conflicts with internal variable names used by TabExpansion itself (e.g. "Line", this should work correctly: $Line.[Tab]). *) Macros: -- New cmdlet New-FarMacro; -- Script Panel-Macro-.ps1: updated; -- Script Install-Macro-.ps1: uses new cmdlet New-FarMacro. *) PowerShellFar.hrc for Colorer: missed operator -bnot and new New-FarMacro. *) Minor tweaks and new features in psfconsole UI. = 4.2.27 = *) Fixed unexpected effects with IsPath = true in some dialogs (4.2.26). *) At last implemented [Halt command] in core "prompt for choice" dialogs: -- Console host: [CtrlC] halts the command; -- ISE host: [Esc] halts the command; -- Far host: for compartibility with other hosts: [Esc] opens a dialog with extra options: [Halt command], [Cancel]. Example: press [Esc] after this: ps: Remove-Variable Host -Confirm *) Removed$Psf.ShowCallStack() and calls of it. Why? 1) In PS V2 there is a built-in cmdlet Get-PSCallStack. 2) $Psf.ShowCallStack() is not found very useful but may have issues. 3) It is a wrapper of a script, you can use the original script instead: (tags/4.2.26) PowerShellFar/Resources/Show-CallStack.ps1 *) Test-CallStack-.ps1: it tells how to use the built-in cmdlet Get-PSCallStack instead of the removed$Psf.ShowCallStack(). *) Menu-Favorites-.ps1: fix: [BS] did not work in empty submenus. = 4.2.26 = *) ETS (Extended Type System): in addition to FarDescription property: added code methods FarMoveTo() (files and directories) and FarCopyTo(), FarDelete() (files only). They call .NET methods MoveTo(), CopyTo(), Delete() and move, copy, delete the descriptions. Test-Descript-.ps1 shows how they all work. *) New script Rename-FarFile-.ps1 uses new FarMoveTo() to rename the current item on the file panel. New name can be defined as a string (boring, can be done manually) or a scriptblock (handy, can be in the user menu or a script) with \$_ = the current FileInfo or DirectoryInfo, see an example there. *) PowerShellFar UI editboxes use new FarNet IEdit.IsPath where appropriate: "Invoke input code ~ Code", "Breakpoint ~ Script", "Export-Clixml ~ Path". *) New script Show-KeyName-.ps1: Shows internal Far names of pressed keys. Why? E.g. on writing macros some key names are difficult to remember. *) Invoke-Editor-.ps1: *.*proj files are started by Start-MSBuild-.ps1. *) Updates for FarNet 4.2.26: -- Generate-Dialog-.ps1: Password -> IsPassword. -- Install-Macro-.ps1, Panel-Macro-.ps1, Show-KeyMap-.ps1: updated names. = 4.2.25 = *) Test-Panel-.ps1: IPluginPanel event MakingDrectory is fixed in FarNet and the test now shows how actually this event is used. = 4.2.23 = *** Far 2.0.1311+ *** *) Win7 taskbar icon: PowerShellFar uses new FarNet methods SetProgressState() and SetProgressValue(): -- Running commands and scripts normally show their activity during execution (at least Indeterminate icon state). -- Internal WriteProgress() calls SetProgressValue() to display percentage. As a result, the cmdlet Write-Progress updates the icon. NOTE: after use call Write-Progress -Completed: you are responsible for cleaning the icon. -- Finished PSF background jobs show green\red state depending on their state. So that if there are finished jobs you are notified via the icon in addition to the console title. *) Menu-Favorites-.ps1: [Space]: It works as [Enter] but the menu is not closed after opening a file. *) PowerShell.hrc: + new V2 number suffixes: TB and PB (tera\peta bytes). = 4.2.22 = *) Cmdlet Find-FarFile: new parameters -Where and -Up: allow to go to the next (down\up) panel file which matches the specified -Where boolean scriptblock. See also new script Select-FarFile-.ps1. *) New script Select-FarFile-.ps1: Selects active or passive panel files by the specified scriptblock filter. See also Find-FarFile cmdlet with new parameters -Where and -Up. *) New script Menu-Favorites-.ps1: Shows Windows Favorites as a menu and invokes items. -Flat mode may be useful with [CtrlAltF] menu filter. *) Profile-.ps1: added call of Menu-Favorites-.ps1 to the PSF main menu. *) New script Test-Panel-Job-.ps1 to play with Panel-Job-.ps1. = 4.2.21 = *) FarNet: IPluginPanel: property DataComparison (class Comparison