Page 6 of 20

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Mon 06 Apr, 2009 10:46
by NightRoman

Latest post of the previous page:
(+ FarNet and API documentation)

= 2.0.11 =

*) [PowerShellFar.TreePanel] starts in [Ctrl0] view mode and supports [Ctrl1]
mode - full screen. Quick search Alt+[Letter] should work now as usual, '+' and
'-' in tree node names are 'ignored'.

*) Test-Panel-.ps1 shows how to use new FarNet PanelModeInfo and
IPluginPanelInfo.Modes to describe plugin panel view modes (column types,
widths, titles, status line and etc.).

*) Profile-Editor-.ps1 - avoided global handler functions, removed obsolete
features, other refactoring. Note: selection by Click + ShiftClick on some
machines works only for second ShiftClick at the same position, for unknown

*) Generate-Dialog-.ps1: 1) added parameter OutputPath; 2) when dialog code is
generated then the output file is opened in the editor; 3) width and height are
used for generated CreateDialog(), not coordinates.

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Sun 12 Apr, 2009 12:52
by NightRoman
(+ FarNet and API documentation)

= 2.0.12 =

*) New class PowerShellFar.FolderTree - replacement of ProviderTree which was
rather experimental. Menu: F11 > PSF > Power Panel > Folder tree. It works for
all "navigation" providers: FileSystem, Registry, Feeds, Certificate and etc.
(depends on installed PS snap-ins). In brief: it shows expandable folder tree
of directories, registry keys, etc. See more in .hlf: "Folder Tree".

*) List panels member panel (object properties, [CtrlPgDn]) and property panel
(provider item properties, [CtrlA], [ShiftEnter]) start in 'Descriptions' mode
[Ctrl6] with two equal width columns Name and Value.

*) Table panels and tree panels use custom 'Descriptions' mode, so that it does
not depend now on Far view mode settings.

*) Fix. PSF debugger dialog - shown in the debugger source code lines was read
with incorrect encoding.

*) Fix. Profile-Editor-.ps1 - editor text selection by Click + ShiftClick did
not work sometimes.

*) Show-History-.ps1 - folder history depends on the active panel type:
standard Far file panel ~ file system directories; plugin panel ~ plugin paths.

*) Test-Panel-.ps1 - adapted to FarNet changes (SetMode()). Shows how to use
new method Clone() for creation of a mode similar to another one.

*) Refactoring: replaced some code originally designed for PS V1 with newer. As
a result, removed some code from the internal startup script PowerShellFar.ps1.

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Mon 27 Apr, 2009 11:55
by NightRoman
(+ FarNet and API documentation)

= 2.0.13 =

*) New cmdlet Trace-Far - for tracing tasks. It is a helper for .NET class
Trace methods. "Test-Stepper-.ps1" and "Test-Stepper+.ps1" show how to use it.
Tracing output normally depends on configuration "Far.exe.config", it can be
sent to a debugger (default listener), a file ("c:\Far.exe.trace.log") and etc.

*) Documentation of PSF cmdlets moved from .hlf to .chm - it is more useful for
many reasons. See classes *Command in PowerShellFar.Commands namespace.

*) Search-Regex-.ps1 uses custom modes Descriptions and LongDescriptions
independent on Far panel modes.

*) Export-FarSettings.ps1 - S_And_R history values are exluded from export.

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Mon 18 May, 2009 11:39
by NightRoman
(+ FarNet and API documentation)

= 2.1.0 =

*) Breaking changes in FarNet 4.1.0 in almost 100% cases should not affect
scripts. Nevertheless: a) if you use the name IFile directly, replace it with
FarFile or SetFile; b) $Far.CreatePanelItem() will be removed soon, replace it
with New-Object FarNet.FarFile or, even better, with New-FarFile.

*) Concept of TreePanel and related features is almost completely reworked with
use of new FarNet capabilities. Everything works fine and it seems that tree
panels will be supported, but implementation is still in progress.

*) PowerShellFar.AnyPanel.Items is renamed into ShownItems to avoid confusion
and to follow FarNet <-> PSF names correspondence. That is, ShownItems are
derived from ShownFiles, SelectedItems are derived from SelectedFiles,
CurrentItem is derived from CurrentFile.

*) Show-History-.ps1 - when a panel is a plugin panel, it shows all paths from
history, not only plugin paths.

*) Download-FarUpdate.ps1 - parameter 'Platform' default value depends on the
current process. So that if you run it from x86/x64 Far and want to download
x86/x64 version (i.e. the same), then you do not have to use this parameter.

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Sun 31 May, 2009 17:36
by NightRoman
(+ FarNet and API documentation)

= 2.1.1 =

*) As it was announced, methods $Far.CreatePanelItem() were removed from
FarNet. Scripts should create instances of SetFile directly by New-Object or

*) Far updates. Due to recent Far changes scripts "Download-FarUpdate.ps1",
"Install-FarUpdate.ps1" are replaced with one script "Update-FarManager.ps1".
ONLY Far 2.x is supported, both x86 and x64. See comments for details.

*) Minor improvements in TabExpansion.

*) Minor changes in "Export-FarSettings.ps1" and "Import-FarSettings.ps1".

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Sat 06 Jun, 2009 14:50
by NightRoman
(+ FarNet and API documentation)

= 2.1.2 =

*) Update-FarManager.ps1
- Checks for new archives only, exits if none.
- Asks to exit Far only when it starts extraction.
- Searches for extra items in top home directories, too.
- New parameter - switch Stable - to get only stable builds.

*) New script Format-Chart.ps1. Formats output as a table with the last chart
column. This script should work for any host, e.g. in PS console, too. Example:
just run Test-Watch-Output-.ps1 - it shows chart of process working sets (but
you can make charts of anything you want, of course). Note: Format-Chart.ps1
has to be in the system path for this demo.

*) New script Go-Link-.ps1 opens a file in editor by a text link in the current
line. Recognised text link types: Visual Studio, PowerShell. To be continued.

*) $Psf.HotText - for practical reasons it is changed. It is now the selected
text or the current line text in the current editor or an edit line. (get|set)

*) Minor tweaks in others scripts.

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Mon 08 Jun, 2009 09:26
by NightRoman
(+ FarNet and API documentation)

= 2.1.3 =

*) Fixed the "Power panel" call from the disk menu (FarNet fix).

*) Update-FarManager.ps1 - with -Stable switch URL was not correct.

*) Watch-Output-.ps1
Avoided use of a global function. New parameter Seconds specifies update
frequency, default: 1.0 second (it was too frequent before). Details: it uses
new FarNet feature [FarNet.IdledHandler], it is an example in the editor.

*) Test-Panel-Tree-.ps1, Test-Watch-Output-.ps1 - minor tweaks and fixes.

*) Test-Dialog-.ps1 uses new FarNet feature [FarNet.IdledHandler]: time in the
console title is updated every 2 seconds, it is an example in the dialog.

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Mon 15 Jun, 2009 14:02
by NightRoman
(+ FarNet and API documentation)

= 2.1.4 =

*) New-FarFile cmdlet supports custom columns by the parameter -Columns (see
FarFile.Columns, SetFile.Columns).

*) Test-Panel-.ps1 shows how to use just implemented in FarNet custom panel
columns (use [Ctrl0] mode in this demo).

*) Edit-Link-.ps1 is the renamed Go-Link-.ps1. New: it also recognizes some
full and relative file system paths and opens that files, paths with spaces
should be quoted. To be continued.

P.S. TablePanel and derived DataPanel, ItemPanel, ObjectPanel, UserPanel do not
use yet custom panel columns. To be continued.

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Tue 16 Jun, 2009 10:15
by NightRoman
(+ FarNet and API documentation)

= 2.1.5 =

Updated for Far 2.0.997 (breaking changes in Far Editor and Window API)

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Wed 24 Jun, 2009 13:55
by NightRoman
(+ FarNet and API documentation)

= 2.1.6 =

*) Scripts Indent-Selection-.ps1, Reformat-Selection-.ps1,
Reindent-Selection-.ps1 now use BeginUndo\EndUndo to make operations atomic.

*) Script Watch-Output-.ps1 was kind of "memory leaking" because of growing
undo data, though undo is not actually needed. Far 2.0.1010 provides some
workarounds. Unfortunately it is not yet possible to turn Undo off.

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Sun 12 Jul, 2009 17:21
by NightRoman
(+ FarNet and API documentation)

= 2.1.7 =

*) Go-Head-.ps1 uses new panel property ShownList (more effective) and works
for plugin panels, too.

*) PowerShell.hrc - constants and auto and user variables should be different
in expandable strings (e.g. in "text $true $this $user" 4 words should have
differnt colors)

*) Start-FarPnel. Parameter Id is renamed into TypeId.

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Mon 10 Aug, 2009 11:06
by NightRoman
(+ FarNet and API documentation)

= 2.1.8 =

*) New script Test-SubsetForm-.ps1 demonstrates new FarNet feature: ISubsetForm
used for selection of a subset of items.

*) FarName revision (breaking, but hopefully not much)
- Artificial extra property 'FarName' in objects is not used anymore. Practice
shows that this way is not natural and also expensive. Panel property 'FarName'
should be used instead, where appropriate.
- Import-Panel-.ps1: parameter -Name is renamed into -FarName, i.e. the same
name as ObjectPanel's property has.
- Cmdlet New-FarObjectPanel: added parameters -FarName and -FarDescription.
- Simplified related internal procedures.

*) Panel-DbTable-.ps1
- Fix: it did not work with PostgreSQL databases (Npgsql ADO.NET data
provider) with tables with case sensitive names.
- Internal DataRow data are removed from show => much better performance.

*) Test-Dialog-.ps1: some more tests, demos and comments.

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Wed 19 Aug, 2009 11:37
by NightRoman
(+ FarNet and API documentation)

= 2.1.9 =

----- Changes for PowerShell V2 RC (Vista) and RTM (Win7) -----

*) Fixed minor issues and incompatibilities in scripts and the code. Basically
all latest versions should work now: CTP3 (XP), RC (Vista), RTM (Win7).

*) Added new script Panel-BitsTransfer-.ps1 - replacement of not working in RTM
Panel-FileTransfer-.ps1 which is still distributed while we use V2 CTP3 (XP).

----- Standard and user columns in PowerShellFar panels and scripts -----

The idea was to use standard and custom columns and to minimize internal use of
slow Format-Table for better data look and much better performance. It's done.

*) All panels are designed to start in AlternativeFull mode (0).

*) Main rule: if property Columns is set then columns are shown exactly
according to it and slow Format-Table is not used internally.

*) Removed method SetBind(). It is useless now, Columns defines binding.

*) Removed property FarDescription. Again, Columns does the job instead.

*) Removed properties FarName and ExcludeColumns from DataPanel. Other panels
still may use them if Columns is not defined.

*) Removed static property DataPanel.MaxFormattedRows because Format-Table is
not used internally any more. Performance on large tables is much better now.
Still, it would be nice to have some reasonable limits - to be continued.

*) Panel-DbData-.ps1: ditto: removed parameters FarName, FarDescription, and

*) Provider settings ($Psf.Providers) now also use the same approach, see the
script Profile-.ps1 for examples for the most of standard providers.

*) Object panels by default still use Format-Table internally. As far as data
are not described then let's PowerShell cares of formatting. A panel now uses
only one column to show output. No horisontal scrolling is needed. Quick search
(Alt-letter) works for a property 'Name', if any, or for a property defined by

*) All scripts were updated according to the new panel column architechture.

----- Other changes -----

*) New static class PowerShellFar.Wrap will contain wrappers for types
difficult to create in PowerShell scripts (e.g. delegates or generics).
Example from Test-SubsetForm-.ps1:
... = [PowerShellFar.Wrap]::ConverterToString({ "Item $_" })

*) Added helper scripts for MS Access and SQL Server Compact databases:
Connect-Mdb-.ps1 and Connect-Sdf-.ps1

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Sat 22 Aug, 2009 16:51
by NightRoman
(+ FarNet and API documentation)

= 2.1.10 =

*) Fixed startup issues causing TabExpansion problems (reported by GMax).

*) Fixed display issues of Format-Table (used by default in table panels).
Added new property FormatPanel.AutoSize and cmdlet switch Out-FarPanel
-AutoSize: this mode is slower but often formatted data look better or
formatting is only possible in this mode.

*) Cmdlet Out-FarPanel: parameter Columns is positional (goes first), so that
we can omit its name:
>: Get-Process | Out-FarPanel Name, Company

*) PSF panels now have a help menu called on [F1]. Its commands depend on a
panel. Method AddMenuItem() was removed; called once event MenuCreated should
be used instead for adding user commands, see Test-Panel-Menu-.ps1. All this is
experimental, to be continued, changed or even removed.

*) Search-Regex-.ps1: found file paths are right aligned now.

*) PowerShellFar.chm: PowerShellFar.Commands: removed noisy inherited members.

----- Revision of Far descriptions support -----

*) For better performance and incapsulation built-in PS functions *-Descript
implemented in C# and removed from the internal profile. Descriptions are
exposed by FarDescription properties (get/set).

*) Extension properties Description of classes FileSystemInfo (FileInfo and
DirectoryInfo) are renamed into FarDescription to minimize risk of clashes
(name "Description" is too general).

*) Script Edit-Descript-.ps1 is updated to use only FarDescription properties
for all actions.

*) New cmdlet Update-FarDescription updates a description file for a directory:
removes orphan descriptions, sorts existing by file names.

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Mon 24 Aug, 2009 10:40
by NightRoman
(+ FarNet and API documentation)

= 2.1.11 =

*) Simplified type rules for TablePanel.Columns (and -Columns of Out-FarPanel
cmdlet). Only needed types can be specified, missed types will be used from
remaining default types automatically.

*) Improved data conversion on mapping data to panel columns (basically PS
conversion procedure is used).

*) Work around PowerShell bug(?) leading to occasional failures of FormatPanel
with ExcludeColumns for some types. Now it looks more stable. Note that use of
ExcludeColumns is not recommended anyway, use of Columns is much better.

*) Minor fixes and improvements here and there.

Re: PowerShellFar - Windows PowerShell host for Far Manager

Posted: Wed 02 Sep, 2009 10:36
by NightRoman
(+ FarNet and API documentation)

= 2.2.0 =

----- FarNet 4.2.0 menu items revision -----

See FarNet 4.2.0 History.txt for details. Steps to update your scripts:

*) Replace '$Far.CreateMenuItem()' with 'New-Object FarNet.FarItem' or, even
better, use cmdlet New-FarItem. Also, if you use IMenuItem name in scripts
(unlikely) then replace it with FarItem.

*) Event IMenuItem.OnClick is replaced with a single handler property Click.
You should replace 'add_OnClick({...})' with 'Click = {...}' in scripts.

*) Cmdlet New-FarItem: parameter -OnClick is renamed into -Click.

----- PowerShellFar user menu revision -----

*) Removed $Psf.UserMenu and related code everywhere. User menu items (actions)
are now added by $Psf.Action(), see API help and Profile-.ps1.

*) Removed $Psf.Settings.PluginUserCommand ("user command" or "user code"). PSF
provides enough ways to do the same without this special support. You may
delete the value Plugins\PowerShellFar\PluginUserCommand in the registry.

*) Script UserCode-.ps1 (demo for removed PluginUserCommand) is renamed into
Menu-More-.ps1 and Profile-.ps1 adds the action "More..." that calls it.

----- PowerShellFar background jobs revision -----

*) In couple of words: all jobs (included into the list or not) are started
only by the new cmdlet Start-FarJob.

*) 'Start-FarJob -Pipeline' gets a started job for direct reading (instead of
removed class Invoker). Examples: Test-Job-.ps1, Search-Regex-.ps1

*) See API help and test and demo scripts: Test-Job.ps1, Job-RemoveItem-.ps1.
Note that Robocopy-.ps1 was removed, it seems to be better to run Robocopy
for massive operations outside of Far, not as a job inside.

----- Descriptions support -----

*) New script Set-SynopsisDescription-.ps1: useful for keeping descriptions in
sync with script synopses (as it is in Bench). Read comments, use carefully.

*) Fixed Description cache issue on using both Edit-Descript-.ps1 (PSF, editor)
and [CtrlZ] (native, input box) description editors.

*) Theoretically Description code is thread safe now, so that jobs may use
FarDescription properties safely.

----- Other features/changes -----

*) Panel Columns support FormatString (just like Format-Table), e.g. this
command makes a column 'Length' with width 15 and right aligned numbers with
thousand separators (e.g. 3,230,649)
>: Get-ChildItem | Out-FarPanel Name, @{ e='Length'; f='{0,15:n0}'; w=15 }

*) New cmdlets Find-FarFile, Get-FarFile (mostly to reduce typing on testing,
but they can be used for real jobs too).

*) $Psf.Providers is now settable, see how Profile-.ps1 uses this. It seems to
be easier than it was before. Old way should work too.

*) AnyPanel: renamed event MenuCreated -> MenuCreating (more logically correct)

*) Editor console:
-- atomic undo of commands output
-- greatly improved performance of output to the editor (faster than console?)