FarNet — .NET Far API and .NET module manager

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

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Mon 26 Jul, 2010 11:28

Latest post of the previous page:

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

= 4.3.25 =

*) IEditor
-- Very good news: workaround methods BeginAccess/EndAccess for faster line
iterations are not needed anymore (Far 2.1623+) and removed. Breaking change,
modules using them should be updated.
-- If EditorKit module is used then it has to be rebuilt.

*) Documentation
-- It is adapted for and built by the latest Sandcastle. Documentation style is
changed from "Prototype" to "VS2005" because "Prototype" is declared obsolete.
("VS2005" style is better, basically)

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Wed 04 Aug, 2010 11:01

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

= 4.3.26 =

*) New utility library FarNet.Tools.dll (and its FarNet.Tools.xml)
It will contain tools that are not FarNet API or Far Manager API but extra
FarNet utilities designed for all modules. If a module uses these tools then
FarNet.Tools.dll should be added to its references together with FarNet.dll.
-- moved SubsetForm from FarNet to FarNet.Tools;
-- added new utility form ProgressForm; examples: Test-ProgressForm-.ps1 in
PowerShellFar and the separately distributed module FolderChart.

*) Utility forms moved from FarNet to FarNet.Tools
-- removed IFar.CreateSubsetForm() method;
-- removed interfaces IForm and ISubsetForm.

*) Documentation
-- Added documentation of new FarNet.Tools types.
-- Improved index panel: added sub-indexes for types, joined indexes for
members with same names + full names view in the "Topics found" dialog.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Mon 16 Aug, 2010 17:56

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

= 4.3.27 =

*) FarNet.Tools.ProgressForm
-- New helper method SetProgressInt64() for long integer values.
-- New method Invoke() invokes the specified job action delegate in a new
thread. This is a simple scenario with optional job thread abortion.
-- New features were tried/tested in the MultiHasher module and will be
proposed to the author. Watch the MultiHasher announcements.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Fri 20 Aug, 2010 12:40

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

= 4.3.28 =

*) IEdit, IComboBox
Added property IsTouched (~ DM_EDITUNCHANGEDFLAG).

*) New interface IEditable
IEdit and IComboBox now share the same base interface IEditable.
(It's unlikely breaking, but probability is not zero)

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Fri 27 Aug, 2010 14:09

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

= 4.3.29 =

*) Far.Net.UI
New method SetProgressFlash() (Far 2.0.1660, ACTL_PROGRESSNOTIFY).

*) FarNet.Tools.ProgressForm
The progress form calls SetProgressFlash() after show. As a result, such
modules as FolderChart, MultiHasher have this new feature automatically.
NB: the toolbar icon flashes only if the window is not active.

*) IDialog
Fixed work of the TypeId property for native Far dialogs.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Sun 12 Sep, 2010 12:35

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

= 4.3.30 =

*) IEditor
-- New property Bookmark gets the bookmark operator.
-- Method Bookmarks() moved to the IEditorBookmark.

*) New interface IEditorBookmark
Operates on the standard and stack (new!) editor bookmarks.

*) Exceptions on Far call failures
InvalidOperationException is used for internal issues, e.g. Far call failures,
instead of OperationCanceledException. Modules may be affected if they used to
catch/check OperationCanceledException.

NB: for correct work with bookmarks use Far 2.0.1667+

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Wed 01 Dec, 2010 17:53

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

= 4.3.31 =

*) UI: new .NET menu items
Added two new menu items "Editors..." and "Viewers..." that show the editor or
viewer list sorted by recent activity. This is experimental but it looks like a
useful addition to the native Far menu Screens.

*) Editor & Viewer
-- New methods Activate() to make the instance window active.
-- Improved internal management of editor and viewer lists. Useful side effect:
IFar methods Editors() and Viewers() return instances sorted by last activity.

*) IEditor
-- New properties KeyCount, TimeOfOpen, TimeOfSave (for statistics, AI, etc.)
-- Changed Save(): it saves only on changes. This is shorter than often used
"if (!editor.IsSaved) Save();" and helps to avoid misuse of the IsModified.
-- New method Save(bool) allows to save even not changed file.

NB: change of Save() is unlikely breaking but you may want to review your calls
and remove not needed checks.

*) IViewer
-- New property TimeOfOpen (similar to IEditor).

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Sun 12 Dec, 2010 15:47

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

= 4.3.32 =

*) .NET menu
-- All panel menu commands and items moved to the new submenu "Panels...".
-- Added the submenu "Console...". There are two commands there: decrease and
increase console font size. This menu is available in all menus F11\.NET

Example mouse macros for the Common area:
-- CtrlMsWheelDown (FarNet: Decrease font size):
F11 $If (Menu.Select(".NET", 2) > 0) Enter c d $End
-- CtrlMsWheelUp (FarNet: Increase font size):
F11 $If (Menu.Select(".NET", 2) > 0) Enter c i $End

Notes:
-- increasing fonts too much leads to appearance of the console scroll bars;
-- some fonts are not suitable for this kind of interactive resizing.

*) IEditor
-- SetText() now drops selection, if any; this way looks more intuitive.
-- Fixed GetSelectedText() for column kind of selection.

*) MouseInfo
-- New property Value (wheel value for the MouseWheel event). Note: MouseWheel
event works in Far 2.0.1756+

*) IListMenu
Fixed the permanent filter.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Tue 14 Dec, 2010 08:52

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

= 4.3.33 =

*) Menu Console...
Commands Decrease/Increase font size: this feature works only in Windows Vista
and above. But it should not make problems in XP.

*) MouseWheel event in editor
It turns out this event is not yet supported by Far API. The issue is being
investigated, the event is not removed from FarNet but it does not work.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Sun 02 Jan, 2011 14:20

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

= 4.3.34 =

*) x64: Fixed crashes in dialogs. Thanks to signatov2000.

*) IEditor.KeyCount
It is mostly designed for the Vessel module, not for public use. Most of not
significant keys are excluded (navigation, Ctrl and Alt combinations, etc.)

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Sat 08 Jan, 2011 06:49

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

= 4.3.35 =

*) IEditor.KeyCount
Corrected to count actual changes. (Reminder: it is not for public use)

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Sun 16 Jan, 2011 18:57

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

= 4.3.36 =

*) IEditor
Added yet missed property IsVirtualSpace (EOPT_CURSORBEYONDEOL in Far API).

*) IAnyPanel
New method SelectedIndexes().

*) Shelve/Unshelve FarNet panels
These actions use SelectedIndexes() and keep/restore selection by indexes, not
names. This is more effective and allows to restore selection with same names
(rare but still possible use case, e.g. process list). NB: Push/Pop of native
panels still use names because indexes might change if files changed.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Sun 23 Jan, 2011 15:22

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

= 4.3.37 =

*) MODULE COMMANDS AND MACROS
If a FarNet module provides commands invoked by prefixes then these commands
can be called from macros by callplugin(). The first argument is the FarNet
system ID: 0xcd. The second argument is the module prefix and command.

Example (RightControl and PowerShellFar commands):

callplugin(0xcd, "RightControl:step-left")
callplugin(0xcd, ">: Menu-Favorites-.ps1")

Mnemonic for 0xcd: eXecute CommanD

*) Search in FarNet panels
Search by name pattern and F3/CtrlQ on folders work. Note that module panels
should do this properly. E.g. built-in PSF panels do not support this, yet.

*) IEditor, IPanel, IDialog
Property object Data {get;set;} is replaced with Hashtable Data {get;}. This
change allows more than one user to attach data without conflicts. Table keys
should be unique, indeed (e.g. a unique reference, Guid, etc.).

*) IFar
Removed the Run method. Use more effective way: GetModuleCommand + Invoke.

*) ModuleCommandEventArgs
New property IsMacro tells that a command is invoked via callplugin().
New property Ignore to tell it is not done (e.g. to use another way).

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Sat 29 Jan, 2011 08:01

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

= 4.3.38 =

*** Use Far 2.0.1802+ ***

*) IFar.Message
New option Draw to draw message-like boxes.

*) IFar.UI (IUserInterface)
New method Draw(): actually draws the job done by DrawColor & DrawPalette
(it's more natuaral than also working DrawXXX(.., null)).

*) New interface FarNet.Tools.IProgress.

*) New class FarNet.Tools.ProgressBox : IProgress
Draws a simple message box with progress information.
PSF script Test-ProgressForm-.ps1 shows how to use it.

*) ProgressForm implements IProgress
- SetProgressValue() now works with double's, not int's.
- SetProgressInt64() is OBSOLETE AND WILL BE REMOVED.

Modules with ProgressForm:
- Multihasher should work fine;
- FolderChart has to be updated;
- Rebuild other (personal) modules.

*) ProgressBox & ProgressForm
Support of multiline text (see LineCount).

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Sun 30 Jan, 2011 13:09

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

= 4.3.39 =

*) API documentation FarNetAccord.chm
Used the patch for the help builder. There are many fixes. The most important
perhaps is the fix of missing enum value descriptions.

*) ProgressForm
- Removed obsolete SetProgressInt64(). Use SetProgressValue().
- If you use the MultiHasher module: take 0.2.1 or later.

*) IAnyPanel
New property bool CaseSensitiveSort { get; set; }

*) PanelSortMode
New value ChangeTime (~ SM_CHTIME).

*) Revision of the PanelSortMode enum and related panel properties
Added all the same values with the 'Reversed' suffix, e.g. added 'NameReversed'
for 'Name', etc. Thus, all *SortMode properties in panels now get/set the sort
mode and direction in one shot. This approach seems to be easy, intuitive, and
helps to avoid some mistakes. This change is breaking if a module uses removed
*ReverseSortOrder properties.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Thu 03 Feb, 2011 07:35

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

= 4.3.40 =

*** Use Far 2.0.1807 ***

*) CallPlugin(0xcd, ..) properly opens modal UI and even panels!
CallPlugin supports asynchronous commands (steps and jobs). Asynchronous
commands are suitable for opening dialogs, modal editor/viewers, and even
panels. See Readme.txt for the details, examples, and a known issue, too.

*) IFar
New property MacroArea.

*) ModuleCommandEventArgs
New property MacroArea (instead of IsMacro).

*) IDialog
New property KeepWindowTitle (Far 2.0.1805). As a result, ProgressForm is now
able to show progress information in the console title, as ProgressBox does.

*) Housekeeping (BREAKING if a module is affected)
- Renamed FarMacroState to MacroState ("Far" is rather useless in here);
- PostKeys(, bool), PostText(, bool), PostKeySequence(, bool) - inverted the
second parameter: disableOutput -> enableOutput for consistency with PostMacro,
and Macro.EnableOutput. Also, this follows the rule of "default false". The
change is not breaking but may cause unwanted effects. Review these calls.

*) BUGS
- Fixed a minor issue in Macro.EnableOutput.
- Fixed a multithreading issue in ProgressForm.
- Fixed an error message on closing a module panel which is opened over a
native plugin panel.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: FarNet — .NET Far API and .NET module manager

Post by NightRoman » Sun 13 Feb, 2011 18:59

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

= 4.4.0 =

*** Massive revision of panel API and the first step to "file explorers" ***

All module panels have to be adapted to the new infrastructure.
Modules accessing changed panel members have to be updated, too.

*) Classes and interfaces
- Panel replaces IPanel
- IAnyPanel becomes IPanel (any panel: native, plugin, module)
- Removed IPanelInfo (Info property), its data moved to the class.
- Removed AlternateName from files, it is generated and used internally.

Module panel interface (old IPanel) is combined with the Panel class. The Panel
class (or derived) holds the panel data, event handlers, extra members, etc.
The Host property was removed.

*) New class Explorer
Experimental data provider dealing with FarFile. Explorers are panel helpers
but they can be used without panels for pure data operations including testing.

The PowerShellFar script Test-Explorer-.ps1 shows how various explorers work.

To be continued. All panel methods operating on its virtual file system will be
moved to explorers soon. Panels should be for pure UI classes.

*) Renamed/changed quite a number of lame names/things; just some of them:
- IPanel.Path -> CurrentDirectory
- IPanel.ActivePath -> StartDirectory
- IFar.ActivePath -> CurrentDirectory
- Use*Highlighting -> Highlighting (3 states)
- AddDots -> DotsMode:PanelDotsMode (3 states)
- Some flags were renamed, e.g. related to RealNames mode.
- Events: UpdateFiles, ExportFiles, ImportFiles, MakeDirectory, and
SetPanelDirectory (should set PanelDirectory, not CurrentDirectory).

*) IFar
New method MatchPattern() compatible with the core file masks.

Post Reply

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