FarNet — .NET Far API and .NET module manager

Анонсы новых плагинов. Обсуждение плагинов ведется ниже.
Post Reply
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.0.10 =

*) ISelection - new method SelectAll() selects all text in the editor. It is
a helper, you can do the same by Select() with proper parameters.

*) IViewer.CodePage for the opened viewer works now (read only).

*) IFar.CodeToChar() fixed old ANSI approach.
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.0.11 =

*) New. PanelModeInfo and IPluginPanelInfo.Modes are used for setting plugin
panel view modes (column types, widths, titles, status line and etc.). To be
continued, remarks are welcome.

*) Implemented processing of IFile.Owner for plugin panels. It can be used as
a custom column (with proper view mode and column titles, see above).

*) IFar.GetHistory() - adapted to recent Far Manger registry history changes.

*) IMenuItem - new properties Grayed, Hidded (new in Far API).

*) PaletteColor - added new values (new in Far API).

*) ControlKeyStates, KeyInfo and MouseInfo: AltCtrlShift is set obsolete (not
standard name) and will be removed soon. Use classic CtrlAltShift instead.
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.0.12 =

PLUGIN PANEL VIEW MODES
(in progress, subject to change)

*) New .NET menu item "Switch full screen" allows to switch "full screen"
mode for any view mode of any FarNet panel. So that you may actually have
20 modes = 10 as usual + 10 the same but with switched "full screen".

*) PanelModeInfo - new method Clone() for shallow copy. It is useful for
creation of similar modes with a few differences.

*) IPluginPanelInfo - replaced property Modes (array of all modes) with two
methods GetMode() and SetMode() (they work only for one mode).

OTHER CHANGES

*) ControlKeyStates, KeyInfo and MouseInfo: obsolete not standard name
AltCtrlShift was replaced with classic name CtrlAltShift.
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.0.13 =

TRACING

*) FarNet core supports standard .NET tracing mechanism. It is customized in
"Far.exe.config", take a look at comments there and customize it for yourself.

*) A default listener (added in machine .config) outputs to a debugger, so that
FarNet plugin debugging may be easier. Trace levels 3 and 4 (see below) can be
slow with a debugger; in this case you can remove default listeners by <clear/>
and still use a fast file writer added by <add ... />.

*) Removed option FarNet.StartupErrorDialog from "Far.exe.config" - critical
startup errors are written to the console and optionally traced now. Modal
dialogs should not be shown on loading.

*) Most important calls Far <-> FarNet <-> FarNetPlugin are already traced.
More tracing, especially FarNet <-> FarNetPlugin will be introduced later.

TRACING TIPS

1) Switch 'FarNet.Trace' defines 5 levels of tracing (0:Off ... 4:Verbose);
recommended level is 2:Warning - to trace errors and warnings, if any. Note:
they normally show plugins or system issues, not FarNet itself.

2) You can add more trace listeners, for example a log file writer; one is
added in "Far.exe.config". Remove it or change it as needed.

3) Your plugin can call System.Diagnostics.Trace methods itself. 'FarNet.Trace'
does not affect your tracing unless you use it directly (see TraceSwitch, MSDN).

4) Tracing is a standard .NET feature, see MSDN for details about tracing and
configuration files - there are many useful titbits for free there.

5) Do not be tempted to use tracing for normal data output. Tracing is for
diagnostics and troubleshooting.

MISC

*) Renamed namespace FarNet.Raw into FarNet.Support; it contains supportive
features that normally should not be used from user code.

*) Internal FarNet menu commands are processed more effectively.
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.1.0 =

MAJOR CHANGES

*) Interface 'IFile' is replaced with abstract class 'FarFile'. This approach
is more convenient for plugins that use custom implementation of files. Also,
though it is less important, it provides slightly faster access to members.
WARNING: this change is breaking, but technically in almost 100% cases you
simply just have to replace the name IFile with FarFile everywhere.

*) FarNet provides ready to use implementation of 'FarFile': class 'SetFile'.
Instances of this class can be created directly by 'new'. That is why two
methods IFar.CreatePanelItem() are not needed now; they are attributed
'Obsolete' and will be removed in the next version.

OTHER CHANGES

*) Reviewed and improved (hopefully) tracing of errors. IFar.ShowError() now
traces errors, too, so that if a plugin calls this function then error info is
sent to trace listeners. Reminder: see "Far.exe.config" for tracing options.
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.1.1 =

*) IEditor.CodePage for the opened editor works now (read only).

*) As it was announced, two obsolete methods IFar.CreatePanelItem() were
removed. Plugins should create instances of SetFile directly by 'new' or they
can use custom files derived from FarFile.

*) Build. Directory FarNetMan\Headers.c is removed. The FarNetMan expects it in
here: "C:\Program Files\Far\PluginSDK\Headers.c". If this is not a case then
project include directories should be corrected.
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.1.2 =

Technical build.
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.1.3 =

*) Fixed plugin calls from the disk menu.

*) IAnyEditor
Added new event Idled, as usual, triggered periodically when a user is idle.
Event OnKey is not triggered with VirtualKeyCode = 0 any more, plugins should
use new event Idled for this case. This change makes handlers more natural and
also improves performance: OnKey is relatively expensive and called not often
now, Idled is cheap (event itself, actual cost depends on handlers, of course).

*) New class IdledHandler
It is a helper for Idled events. Idled events may be called too frequently for
a particular task. In this case use IdledHandler.Create to get a handler with a
custom call frequency.

*) Forms.IDialog.Idled changed from EventHandler<AnyEventArgs> to the simple
EventHandler for 2 reasons: a) arguments were not used anyway; b) to follow
common Idled events scheme, which allows use of IdledHandler, for example.
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.1.4 =

Updated for Far 2.0.992 (breaking changes in Far Dialog API)

CUSTOM PANEL COLUMNS

At last FarNet supports custom user panel columns. Use FarFile.Columns,
SetFile.Columns. Custom columns are very easy: property Columns is any
collection of any objects. See also FarNet.PanelModeInfo: use C0-C9 in
ColumnTypes and StatusColumnTypes.
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.1.5 =

Updated for Far 2.0.997 (breaking changes in Far Editor and Window API)
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.1.6 =

*) IEditor. New methods BeginUndo(), EndUndo(), Undo(), Redo(). Note: they
implement new Far API.

*) IEditor::SetText is now atomic for Undo\Redo.

*) IFar. New method PostJob() - posts a handler to be invoked in the Far main
thread when Far gets control. Note: it implements new Far API. Note: test only
so far.

INTERNAL
- Removed workaround in Editor::SetText (missed the first empty line of the
first output), the editor looks working fine in the latest Far.
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.1.7 =

*) IPanel. New methods SelectAt, UnselectAt, SelectAll, UnselectAll.

*) IPanel. New properties ShownList and SelectedList. They are similar to
ShownFiles and SelectedFiles, but not always the same and work dynamically,
i.e. return only really accessed items. Note that ShownFiles now does not
return ".." item, if you need this item then use new ShownList instead.

*) IPluginPanel. Property Id is renamed into TypeId.

*) Internal. Changed memory management for panel items. As a result, reduced
"out-of-memory" chances for panels with extremely large number of items.
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.1.8 =

*) New utility interface ISubsetForm - Dialog for selecting a subset of items.
Create it by IFar.CreateSubsetForm(), set its Items and initial selected
Indexes, call Show(), get result selected Indexes. To be continued.

*) IDialog.MouseClicked is now also called if a control does not process this
event (same as for KeyPressed event).

*) IDialog. New property TypeId. Implemented recently added related Far API:
DN_GETDIALOGINFO, DM_GETDIALOGINFO.

*) Fixed not shown panel data of a child panel which view mode is different
from parent panel view mode. New code is also more optimal.
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.1.9 =

*) Fixed not restored parent panel current item on exit from a child panel
which view mode is different from parent.

*) New property IPluginPanelInfo.AutoAlternateNames: Tells to generate
AlternateName value in plugin panel files automatically.

*) Property IPluginPanel.Files is now get/set, you can set any IList<FarFile>
instead of refilling the existing list instance.
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.1.10 =

*) Fix: Menu: item event handler should not be triggered on a break key.
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.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.
Post Reply

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