FarNet — .NET Far API and .NET module manager

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

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

Post by NightRoman »

Latest post of the previous page:

http://code.google.com/p/farnet/

= 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.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 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.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 4.2.16 =

*) Updated API code comments and documentation.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

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

*) API code comments and documentation.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 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.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 4.2.19 =

*) Archive structure: files LICENSE and History.txt moved to the plugin folder
"Plugins\FarNet".
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 4.2.20 =

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

*) API code comments and documentation.

==

HAPPY NEW YEAR!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 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.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 4.2.22 =

*) IPanel: methods SelectAt(), UnselectAt(): null as input parameter is OK now,
it is simply ignored, just like an empty array.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 4.2.23 =

PLUGINS LOCALIZATION SUPPORT
(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)
PluginBaseName.ru.resources (Russian)
PluginBaseName.de.resources (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 Hello.ru.restext translates only language
dependent strings and does not care of others. The .NET resource manager
processes such cases just fine.

WINDOWS 7 TASKBAR ICON

*) IFar: new methods SetProgressState() and SetProgressValue() expose Far API
ACTL_SETPROGRESSSTATE and ACTL_SETPROGRESSVALUE (build 1309).

MISC

*) 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.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 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.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 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:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\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).

Examples:
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).
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

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

NEW FEATURES

*) 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.

REFACTORING OF MACROS
(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.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 4.2.27 =

*) Tweaks in docs and code.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 4.3.0 =

NEW VERSION NUMBER

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 IN THIS VERSION

*) 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.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

http://code.google.com/p/farnet/

= 4.3.1 =

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

ANNOUNCEMENT

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.

TERMINOLOGY: PLUGINS -> MODULES
(breaking name changes)

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

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

Members:
-- 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)

OTHER CHANGES

*) 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).
Post Reply

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