Page 13 of 18

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

Posted: Mon 27 Jun, 2011 07:35
by NightRoman

Latest post of the previous page:

= 4.4.21 =

*) Editor color API (revised)
- IEditor: GetColors(), AddColor() work with the ColorSpan class.

*) Not standard FarNet late loading
Fixed a few issues in cases when FarNet is loaded after opening editors.

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

Posted: Wed 06 Jul, 2011 06:50
by NightRoman

= 4.5.0 =

*) Target .NET framework is 3.5

FarNet and its modules are now built for .NET 3.5. At the same time the core is
configured to run with .NET 4.0 if it is available. Thus, modules targeted for
.NET 4.0 are supported and .NET 3.5 is not needed if .NET 4.0 is installed.

The game is over for Windows 2000, RIP. If .NET 3.5 is not yet installed and
Windows is XP SP3 or above then consider to install .NET 4.0 (unless 3.5 is
really needed for something else). 4.0 is much smaller, just in case.

Existing modules built for .NET 2.0 still work, rebuild is not needed. But when
such modules are built next time their target framework should be set to 3.5.

*) Roaming and local data locations
GetFolderPath() methods are based on the environment variables FARPROFILE,
FARLOCALPROFILE if they are defined and not empty (introduced in Far 3, 2091).
Otherwise they use roaming and local paths as usual. Thus, it is possible now
to configure the locations of FarNet and its module settings and working files.

*) IFar
(mostly for internal use though this API is officially public)
New GetModuleManager(string). It is faster than GetModuleManager(type) and it
can be used if a type is not yet available because its assembly is not loaded.
In some cases names are not known directly and the old method is still used.

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

Posted: Mon 12 Sep, 2011 06:05
by NightRoman

= 4.5.1 =

*) Some new .NET 3.5 features
- Replaced a few not significant delegates with Func<> generics.

*) Changed CurrentUICulture inference from %FARLANG%
Used specific cultures instead of neutrals e.g. en -> en-US, ru -> ru-RU, ..
Neutrals are not always suitable (e.g. PowerShell help does not know "en").

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

Posted: Tue 13 Dec, 2011 04:19
by NightRoman

= 4.6.0 =

*) Asynchronous jobs
Fixed potential deadlocks of posting jobs which post new jobs themselves.

*) IEditor
New property Line, the current line. The old way of getting the current line
by the index -1 is deprecated, it does not work, for example, in PowerShell
V3 CTP2. It still works in C# and PowerShell V2 but from now on this is not
documented feature. It can be removed in future versions.

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

Posted: Sun 01 Jan, 2012 20:34
by NightRoman

= 4.6.1 =

Technical build, probably the last for Far 2.

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

Posted: Mon 09 Jan, 2012 07:07
by NightRoman

= 5.0.0 =

This version is designed for Far Manager 3. Some modules should be updated.
v5.0.x API is not final, it may change frequently but not much, most of API
already looks stabilized.

There are many breaking changes but they are all easy to fix. In theory it
would be possible to avoid most of them. But these changes were needed for
effective use of new Far and its API.

*) Settings
Roaming and local FarNet and module settings moved:

%APPDATA%\Far Manager\FarNet ->
%APPDATA%\Far Manager\Profile\FarNet

%LOCALAPPDATA%\Far Manager\FarNet ->
%LOCALAPPDATA%\Far Manager\Profile\FarNet

Actual new locations depend on %FARPROFILE% and %FARLOCALPROFILE%. This moving
should work fine for most or all modules. Module *.settings files can be moved
with no problems. FarNet.binary files should be moved only if needed. Do not
move Cache.binary, better delete them all, they will be recreated.

*) Filers
Module filer classes are not supported anymore. Their value is low and cost is
high. FarNet provides enough alternative ways for opening files in panels.

*) Hotkeys
Module menu items can now use standard Far hotkeys. As a result internal pseudo
hotkey stuff was removed from API, code, and FarNet settings.

*) Keyboard
- Used enums and structures: KeyCode, ControlKeyStates, KeyData, KeyInfo. All
other types were removed. KeyInfo in most cases replaces use of internal and
virtual numeric key codes.
- Standard and list menus use the same break keys API: Key, AddKey().
- Panel and dialog key events changed.
- ReadKeys() changed.

*) Macros
- Removed IMacro, IFar.Macro and all related stuff.
- Also removed from IFar: PostKeys(), CreateKeySequence(), PostKeySequence().
Use PostMacro() and PostText() instead.

*) Registry
- Removed IRegistryKey, IFar.OpenRegistryKey().
- Removed history methods because they used to work with the registry.

*) Windows
Removed IWindowInfo. Replaced IWindow.GetInfoAt() with GetKindAt(), GetNameAt()
and GetKindNameAt().

*) Misc
- MsgOptions -> MessageOptions
- Panel UseFilter -> NoFilter

- Panel key bars do not work yet
- Custom dialog control colors

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

Posted: Tue 10 Jan, 2012 07:26
by NightRoman

= 5.0.1 =

- Editor color methods with more options.
- Custom colors in dialog controls.
- Custom module panel key bars.

- Fixed crash in x64 dialogs.

- Local module settings are now saved in "Xyz.local.resources" files in order
to avoid conflicts with roaming "Xyz.resources" files when roaming and local
settings paths are the same (this is possible with custom "Far.exe.ini").

NOTE: If you use Far2 with FarNet avoid starting Far2 from Far3. FarNet in Far2
will use existing %FARPROFILE% and %FARLOCALPROFILE% paths and this may lead to
settings issues either in Far2 or Far3 (not necessarily but this is possible if
settings data structure change). This issue is not going to be fixed.

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

Posted: Wed 11 Jan, 2012 08:13
by NightRoman

= 5.0.2 =

*) IWindow
- Fixed some Get*() methods.
- Removed Commit(), it is done by SetCurrentAt().

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

Posted: Sat 14 Jan, 2012 11:40
by NightRoman

= 5.0.3 =

Adapted for Far 3.0.2377.

*) Editor colors API
- API is simpler and much easier to use. Advanced methods are not exposed,
perhaps they are not needed at all. See modules: RightWords, PowerShellFar.

*) Misc
- Fixed IFar.FarVersion build and revision.
- Revised Key/Mouse methods ==, !=, Equals.
- Memory leaks.

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

Posted: Thu 19 Jan, 2012 19:12
by NightRoman

= 5.0.4 =

*) IEditor ~ Mantis 1988 and Far 3.0.2400+
- Removed IsNew, it is not needed (at least in FarNet)
- Empty file names work now (a new file is assumed)

*) Minor tweaks.

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

Posted: Fri 20 Jan, 2012 20:02
by NightRoman

= 5.0.5 =

*) History
- All histories come back, use IFar.History and its methods.

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

Posted: Thu 26 Jan, 2012 19:37
by NightRoman

= 5.0.6 =

*) Revision of Post* methods
- Renamed PostStepAfterStep -> PostStep2.
- Removed PostStepAfterKeys, apparently it is not needed in Far3.
- Removed PostText(), not so useful in Far3, use PostMacro() + "", print().

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

Posted: Wed 01 Feb, 2012 20:35
by NightRoman

= 5.0.7 =

Requires Far 3.0.2428 (DrKnS fixed potential mouse issues).

*) [ShiftF9] in plugin menus
- Configuration actions are called only for items having the Config flag set.
For all other FarNet module plugin items the FarNet configuration is opened.

*) Keyboard methods
- More key combination helpers: IsAltShift(), IsCtrlAlt(), IsCtrlShift().

*) Module settings
- Temp files are used to minimize chances of data corruption. It is almost safe
to write settings in other threads while the main crashes, Far closes, and etc.
The last change can be lost but previous settings should survive.

*) Editor
- Drawer API is more PowerShell friendly.

*) Misc
- IFar.Dialog without hacks.

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

Posted: Thu 02 Feb, 2012 19:08
by NightRoman

= 5.0.8 =

*) Editors
- New method ILine.MatchCaret() for getting current words easier.
- Simpler and yet more flexible and PowerShell friendly drawers.

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

Posted: Tue 07 Feb, 2012 09:22
by NightRoman

= 5.0.9 =

Use Far 3.0.2442+ (new editor drawing and change events).

Centralized editor drawer infrastructure (UI and API). ModuleDrawer is the new
type of module item classes (which implement various module actions/intents).
IModuleDrawer is its runtime proxy object.

As a result, FarNet provides UI for managing drawers and their common settings.
Module drawer developers should not care of:
- How to turn a drawer on and off.
- How to turn it on automatically for some files.
- How to allow users to configure drawer color priorities.

*) UI changes
- Removed "..." from FarNet menu items (update your macros with Menu.Select).
- F11 | FarNet | Drawers - show all drawers + allow turning them on and off.
- F9 | Options | Plugin configuration | FarNet | Drawers - common configuration
properties of drawers:
-- Mask - file mask used to use a drawer automatically (empty = disabled)
-- Priority - drawer color priority

*) API changes
- New types ModuleDrawer, ModuleDrawerEventArgs, IModuleDrawer,
EditorChangeKind, EditorChangedEventArgs.
- New members IModuleManager.RegisterDrawer, IEditor.AddDrawer/RemoveDrawer,
- Old drawer methods were removed.
- Replaced GetModuleCommand and GetModuleTool with GetModuleAction. The new
method gets all module actions including commands, drawers, editors, tools.

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

Posted: Tue 07 Feb, 2012 19:27
by NightRoman

= 5.0.10 =

*) Editor
- Removed EditorRedrawingEventArgs; null is now passed in the Redrawing event.
- Fixed: drawers should be created one per editor, not session.
- Minor tweaks related to recent editor API changes.