Page 8 of 18

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

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

Latest post of the previous page:

= 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.

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

Posted: Thu 03 Dec, 2009 15:36
by NightRoman

= 4.2.15 =

*** Far 2.0.1238+ ***

*) IEditor: new property ShowWhiteSpace: Gets or sets show white space flag.

*) Internal: more robust IFar.Dialog (current dialog). Note: implemented as
workaround: there is no such Far API, see Mantis 1179.

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

Posted: Sun 06 Dec, 2009 14:21
by NightRoman

= 4.2.16 =

*) Updated API code comments and documentation.

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

Posted: Tue 22 Dec, 2009 12:45
by NightRoman

= 4.2.17 =

*) Added section PROBLEMS AND SOLUTIONS to the Readme.txt; discribed a rare
problem of loading .NET plugins in x86 Far on x64 machines and a possible

*) API code comments and documentation.

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

Posted: Wed 23 Dec, 2009 17:08
by NightRoman

= 4.2.18 =

*) Version numbers: as far as FarNet and PowerShellFar are always built and
released together, from now on their version numbers will be the same.

*) FarNet updates: if you use FarNet together with PowerShell then it can be
updated together with PowerShellFar by a script distributed with PowerShellFar.

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

Posted: Thu 24 Dec, 2009 14:39
by NightRoman

= 4.2.19 =

*) Archive structure: files LICENSE and History.txt moved to the plugin folder

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

Posted: Thu 31 Dec, 2009 12:34
by NightRoman

= 4.2.20 =

*) IEditor: confusing property name "IsEnd" is changed to "IsLastLine".

*) API code comments and documentation.



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

Posted: Sun 03 Jan, 2010 14:57
by NightRoman

= 4.2.21 =

*) IPluginPanel: property DataComparison (class Comparison<object>) is replaced
with easier to use and more natural property DataId (delegate Getter). This
change is breaking if your plugins use DataComparison.

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

Posted: Tue 05 Jan, 2010 11:15
by NightRoman

= 4.2.22 =

*) IPanel: methods SelectAt(), UnselectAt(): null as input parameter is OK now,
it is simply ignored, just like an empty array.

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

Posted: Sun 10 Jan, 2010 14:45
by NightRoman

= 4.2.23 =

(Standard file based resource management in .NET)

*) BasePlugin: localization support:
-- New property CurrentUICulture (normally you should not care but see help).
-- New method GetString() gets localized strings from standard resource files:
PluginBaseName.resources (default, English is recommended) (Russian) (German)
Binary .resources files are generated by resgen.exe from trivial .txt\.restext
files or Visual Studio .resx files. Note that resgen.exe allows to decompile
.resources back to .restext or .resx, only original comments are lost.

Yet another way to build resources is MSBuild task GenerateResource.

*) IFar: localization support:
-- New method GetCurrentUICulture() based on %FARLANG%.

*) Plugins.NET\Tutorial-ToolPlugin: shows how to build a localized plugin using
trivial .restext files. Note that translates only language
dependent strings and does not care of others. The .NET resource manager
processes such cases just fine.


*) IFar: new methods SetProgressState() and SetProgressValue() expose Far API


*) IFar.TempName() uses changed Far FSF.MkTemp (build 1311).

*) Plugins.NET: it is decided to drop VB and JS samples. Hopefully provided CS
samples should be quite enough: basically all .NET languages are very similar.

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

Posted: Sun 10 Jan, 2010 20:30
by NightRoman

= 4.2.24 =

PLUGINS LOCALIZATION SUPPORT (continued, see 4.2.23)

*) FarNet configuration menus and dialogs
-- Section "Tools": fixed displayed tool number.
-- Section "Modules": added submenu item "UI culture".
-- Updated the .hlf file.

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

Posted: Tue 12 Jan, 2010 12:18
by NightRoman

= 4.2.25 =

*) IPluginPanel: it turned out that the event MakingDirectory still was not
quite implemented. Now it is.

*) Far error messages in a panel which is not subscribed to MakingDirectory
on pressing [F7] are fixed.

*) Plugins.NET samples: replaced .bat files with .proj files for MSBuild.exe:
Basically "MSBuild" and "projects" are similar to "make" and "makefiles" but
MSBuild is .NET oriented and projects are XML files (see MSDN for details).

MSBuild.exe Build.proj (makes default targets, usually "Build")
MSBuild.exe Build.proj /t:Build (makes the target "Build")
MSBuild.exe Build.proj /t:Clean (makes the target "Clean")
MSBuild.exe Build.proj /t:Build;Clean (makes the "Build" and "Clean")

If you use PowerShellFar then the script Start-MSBuild-.ps1 can be used, too.
It helps to choose command line parameters and keeps commands in history.

Even if you develop in Visual Studio, MSBuild tasks still can be useful, for
example you may add custom MSBuild tasks like resource files generation (see
Tutorial-ToolPlugin\Build.proj). See commented out targets "BeforeBuild" and
"AfterBuild" in your Visual Studio project file (.csproj, use text editor).

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

Posted: Sun 17 Jan, 2010 14:43
by NightRoman

= 4.2.26 =

*) Minor fix in MakingDirectoryEventArgs.

*) Work around "Far does not restore panel state" on menu action .NET \ Close
panel: let's set the top item current before closing.


*) IInputBox:
-- New flag IsPath (~ Far FIB_EDITPATH).

*) IEdit:
-- New flag IsPath (~ Far DIF_EDITPATH).
-- Renamed Password -> IsPassword (to be the same as in IInputBox). Technically
this is a breaking change but it is unlikely used (it is read only in IEdit).

*) FarNet configuration: "UI culture": added [F1] help for the input box.

(breaking changes for plugins using macros)

-- Renamed interface IKeyMacroHost to IMacro
-- Its methods Post() moved to IFar as PostMacro()
-- Renamed property IFar KeyMacro to Macro
-- Renamed class KeyMacroData to MacroData
-- Internal: the macro operator is created only when requested.

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

Posted: Tue 19 Jan, 2010 11:33
by NightRoman

= 4.2.27 =

*) Tweaks in docs and code.

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

Posted: Sat 23 Jan, 2010 14:00
by NightRoman

= 4.3.0 =


Version number moves forward due to important recent changes:
-- Localization support
-- Quit() and CanExit()
-- MakingDirectory
-- Macros revison
-- Win7 taskbar icon tools
-- GUI message boxes (suitable for special tasks)
-- Revision of panel mode info (more object oriented)
-- Long paths support (note: .NET does not like long file paths)
-- Multiple panels (true for FarNet, saved state for file panels)
-- Async writing mode in editors (including not current editors)
-- Code pages in editors (get\set)
-- More info on exceptions
-- Dialog enhancements


*) New method IFar.Quit(): Tells Far to quit (Far 2.0.1348 ACTL_QUIT).

*) New virtual method BasePlugin.CanExit() (called by IFar.Quit()).

*) Hopefully the final revision of macros (breaking for using plugins):
-- MacroData is replaced with Macro;
-- IMacro methods updated for new Macro.
The story: unusual IMacro methods with dictionaries were designed for easy use
in PowerShell. End of story: in PowerShell V2 New-Object supports dictionaries
itself, so that IMacro methods now can be natural and simple.

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

Posted: Sun 31 Jan, 2010 19:35
by NightRoman

= 4.3.1 =

!! This time update manually (do not use Update-PowerShellFar.ps1).


It is discussed and decided that FarNet plugins are not called PLUGINS any more
everywhere: in API, code, documentation. From now on they are called MODULES:
.NET assemblies implementing one or more FarNet MODULE TOOLS.

The folders structure is changed, see Readme.txt or just extract from the
archive to %FARHOME% keeping the structure. Then remove old Lib (it is now
%FARHOME%\FarNet) and Plugins.NET (it is now %FARHOME%\FarNet\Modules).
Do not forget to replace %FARHOME%\Far.exe.config with new one.

(breaking name changes)

Module tools:
-- BasePlugin -> BaseModule
-- CommandPlugin -> ModuleCommand
-- EditorPlugin -> ModuleEditor
-- FilerPlugin -> ModuleFiler
-- ToolPlugin -> ModuleTool
-- PluginException -> ModuleException

-- IPanel -> IAnyPanel (rename it first, before IPluginPanel -> IPanel)
-- IPluginPanel -> IPanel (rename it second, after IPanel -> IAnyPanel)
-- IPluginPanelInfo -> IPanelInfo

-- GetPluginPanel() -> FindPanel()
-- CreatePluginPanel() -> CreatePanel()

Let's also fix wrong names and bad names:
-- EnvExpanded -> ExpandEnvironmentVariables
-- Eol -> EndOfLine
-- HWnd -> MainWindowHandle
-- Msg -> Message
-- NoSmartCoords -> NoSmartCoordinates
-- RootFar -> RegistryFarPath
-- RootKey -> RegistryPluginsPath
-- StartSortDesc -> StartReverseSortOrder
-- UseAttrHighlighting -> UseAttribiteHighlighting

Let's also fix one confusing feature:
-- InputBox.NoLastHistory -> UseLastHistory
a) to have the same name as the property of IEdit
b) because by default it should be "don't use" (the least surprise)


*) Macros:
-- IMacro.GetNames(): fixed exceptions on missed areas.
-- Macro.Area type changed from string to enum MacroArea.
-- IMacro methods use the enum MacroArea.
-- API changes: see documentation.

*) Issue _090208_042536. IBaseList: removed the obsolete workaround method
.Clear(). Instead, the method .Items.Clear() should be used. If it still has
problems, report, it will be restored ASAP. (It was a bug in PowerShell that
looks fixed in V2 RTM).