Page 7 of 18

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Mon 24 Aug, 2009 10:39
by NightRoman

Latest post of the previous page:

= 4.1.11 =

*) Fix: IPluginPanel.ShownList used to return null instead of a "dots" file.

*) Added property GettingFilesEventArgs.Names needed in rare cases when auto
alternate names are used.

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Wed 02 Sep, 2009 10:35
by NightRoman

= 4.2.0 =

----- Major changes -----

4.1.0 introduced classes FarFile and SetFile instead of interface IFile. This
approach looks good. So now 4.2.0 in the same way introduces classes FarItem
and SetItem instead of interface IMenuItem.

Yet another change is replacement of a menu item event OnClick (with ability to
add multiple handlers) with a single handler Click. Practice shows that a
single handler is enough and less confusing.

The changes are breaking, indeed, but it should be really easy to update your
code, please follow the simple steps below:

In your code:
1) replace 'IMenuItem' with 'FarItem'
2) replace 'Far.CreateMenuItem()' with 'new SetItem()'
3) replace adding 'OnClick += ...' with setting 'Click = ...'

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

*) IMenu: added still missed property ChangeConsoleTitle.

*) IFar: improved PostJob; it collects all posted handlers (excluding dupes);
then they are all invoked in the order they were posted.

*) IPanel: new method GoToName(string, bool) in addition to GoToName(string).
New one returns succeess flag or may optionally throw if a name is not found.

*) IPluginPanelInfo: renamed too general name Format into FormatName.

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Mon 07 Sep, 2009 10:49
by NightRoman

= 4.2.1 =

*) IEditor: new method TextWriter CreateWriter(): the writer calls Insert*()
internally. It is convenient and efficient for using where a writer is

*) IEditor: new method InsertChar(): not a big deal (Insert() can do the job)
but it is effectively used by text writers created by CreateWriter().

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Fri 11 Sep, 2009 13:34
by NightRoman

= 4.2.2 =

*) IDialog: new event ConsoleSizeChanged ~ DN_RESIZECONSOLE.

*) IDialog: new methods DisableRedraw(), EnableRedraw() ~ DM_ENABLEREDRAW.

*) IDialog: Rect is settable after Show(), too; same as Move() + Resize().

*) IListMenu uses ConsoleSizeChanged to recalculate its size according to the
new console size.

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Wed 30 Sep, 2009 10:40
by NightRoman

= 4.2.3 =

*) Adapted to Far 2.0.1145+: Far does not set the current directory to the
active panel path (a step to long paths support). Still, remember that .NET
itself and many other external tools do not like long paths. _090929_061740

*) New property IFar.ActivePath: Gets the path of the active Far panel or the
ActivePath (former StartDirectory) of the active FarNet panel. Mind long paths.

*) IEditor.CodePage is now settable after opening, so that it is possible to
change code pages from a plugin. Another good news: Far 2.0.1144+ API works
correctly with code pages on open, save, and save as operations.

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Sun 04 Oct, 2009 13:32
by NightRoman

= 4.2.4 =

*) IEditor: new methods BeginAsync() and EndAsync() allows to write to not a
current editor or from background jobs. Output procedure is similar to console
output. Use this mode very carefully and only when it is absolutely needed.
Plugin PowerShellFar uses this mode for asynchronous editor consoles.

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Mon 12 Oct, 2009 09:58
by NightRoman

= 4.2.5 =

*) Requires Far 2.0.1160. Event IPluginPanel.PuttingFiles now accepts arguments
as PuttingFilesEventArgs which has additional property Source - source path of
the files being processed. This is not a breaking change, but in Far 2.0.1145+
some operations cannot be performed correctly without this Source information,
such plugins have to be updated.

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Sun 18 Oct, 2009 13:52
by NightRoman

= 4.2.6 =

(true for FarNet panels, simulation for Far file panels)

FarNet plugin panels on closing by Close() restore the original file panel
current and selected items. (Far does not do this itself, see Mantis 1114).

FarNet panel tools (available from the plugin menu) allow to work with multiple
FarNet panels and to simulate work with multiple standard Far file panels. You
-- push any FarNet plugin panel for later use (as usual);
-- shelve any standard Far file panel, i.e. keep its state (new feature!);
-- pop/unshelve previously pushed/shelved panels; the shown panel restores its
state: current and selected items and sort and view modes (new for file panels
+ restoring of selection is new for FarNet plugin panels).


*) IPanel: new method SelectNames(). It is introduced for *restoring* of the
selection (see above), but it can be used for other selection tasks as well.

*) IFar: removed method PushedPanels(). It is unlikely needed for external use.

*) IPluginPanel: property ActivePath is read only now.

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Sat 24 Oct, 2009 17:37
by NightRoman

= 4.2.7 =

*) IFar: property Version is replaced with two properties: FarVersion and

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Mon 26 Oct, 2009 13:45
by NightRoman

= 4.2.8 =

*** Requires Far 2.0.1181+ ***

*) IFar.ActivePath returns the internal Far current directory path. NOTE: this
is not always the same as the IPanel.Path of the active panel.

*) IPanel.GoToPath(): fixed wrong current item for paths ending with a slash.

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Wed 28 Oct, 2009 18:04
by NightRoman

= 4.2.9 =

*) IFar.Msg(): new MsgOptions flags Gui and GuiOnMacro allow to show standard
Windows GUI message boxes. Do not use these flags without good reasons.

*) Far.exe.config: appSettings: added key FarNet.DisableGui. Allows to disable
GUI message boxes used internally in exceptional cases. Recommended (default)
value is false, i.e. special GUI messages are enabled.

*) For safety sake: avoiding unexpected results on exceptions during a running
macro IFar.ShowError() now stops a macro before showing an error dialog.

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Mon 02 Nov, 2009 12:17
by NightRoman

= 4.2.10 =


*) New abstract class FarColumn and its simple implementation SetColumn. Use
SetColumn to define panel column type, width, and title or status column type
and width.

*) Properties ColumnTitles, ColumnTypes, ColumnWidths are replaced with new
property - array Columns.

*) Properties StatusColumnTypes, StatusColumnWidths are replaced with new
property - array StatusColumns.

New columns definition is perhaps slightly more verbose but it is more object
oriented and safe: with old version incorrect data could crash Far or lead to
displayed garbage. Also, it is now easier to change column options and order
after creation (both in code and at run time).

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Thu 05 Nov, 2009 12:24
by NightRoman

= 4.2.11 =

*** Requires Far 2.0.1200+ ***

*) Adapted for Far 2.0.1200 (IEditor.WordDiv).

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Mon 16 Nov, 2009 11:26
by NightRoman

= 4.2.12 =

*) Improved view of error messages and stack information shown on exceptions
when you press buttons [View info] and [Copy info] in exception dialogs.

*) Added class PluginException. If a plugin throws exceptions then for better
diagnostics it is recommended to use this or derived from this exceptions.

*) Minor internal tweaks.

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Tue 17 Nov, 2009 12:01
by NightRoman

= 4.2.13 =

*** Far 2.0.1209+ ***

*) Updated IFar.GetDialogHistory() for Far 2.0.1208

Re: FarNet - .NET Far API and .NET plugin manager

Posted: Thu 19 Nov, 2009 19:03
by NightRoman

= 4.2.14 =

*) IFar.Msg() with 'Gui*' options: it is OK to provide 'helpTopic' parameter,
it's not an error, it is simply ignored. Throw only on custom buttoms: they
are not supported in GUI mode.