Page 12 of 18

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

Posted: Sun 05 Jun, 2011 14:26
by NightRoman

Latest post of the previous page:

= 4.4.17 =

*) Module settings panel and engine

Default setting names start with '-'. Ever edited setting names start with '+'.
See more about defaults in the panel help [F1].

Reset to defaults ([Del], [F8]) works for all settings, with or without default
values explicitly defined by settings attributes.

[CtrlF11] in settings shows default / edited (- / +) data sorted separately.

For developers: see ModuleSettingsProvider API docs for some technical details.

*) FarNet.Demo module (included as sources)

Though it is a demo module it includes tools that can be useful for developers:

`Tracing` tool shows the menu that allows to change the level of tracing used
by the core and to turn tracing to the file on/off. It can be handy if you do
not have or use DebugView.exe from Sysinternals or similar diagnostics tools.

`demo: process` command shows some useful info about the current process.

`demo: assembly` command shows currently loaded .NET assemblies.

HINT: Tracing level and listeners can be set permanently in Far.exe.config,
for example in order to trace loading of preloadable modules. FarNet.Demo
allows to do that temporary for the already started session.

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

Posted: Sun 19 Jun, 2011 13:16
by NightRoman

= 4.4.18 =

*) Help helpers

New IFar.GetHelpTopic() helps to format strings for HelpTopic properties like
"<C:\...\MyModule\\>Topic" (but in fact format details are hidden in this way).

New IFar.ShowHelpTopic() is a simple method for simple cases. The old and not
quite simple ShowHelp() still works as usual. But it is kind of deprecated now.

*) FarNet.Demo module
Added two help files (en, ru) and examples of using help files in the code:
a) HelpTopic property of the menu;
b) explicit call of ShowHelpTopic().

*) Module setting
- Added remarks about recommended data types to ModuleSettingsProvider.
- Module settings panel is not closed (by pressing [Esc]) if data are invalid
and Save() throws an exception. Forced close (open another panel) is allowed.

*) IEditor
New ConvertPointEditorToScreen(), in addition to ConvertPointScreenToEditor().

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

Posted: Tue 21 Jun, 2011 08:31
by NightRoman

= 4.4.19 =

*) Bug
Fixed DirectoryNotFoundException on reading the module cache at start.

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

Posted: Fri 24 Jun, 2011 06:35
by NightRoman

= 4.4.20 =

*) Editor color API
This API is experimental and not yet recommended for public use, it is added
for the RightWords module for highlighting of misspelled words in editors.
- IEditor: new methods GetColor(), SetColor(); new class LineColor.
- New EditorRedrawMode enum, EditorRedrawingEventArgs uses it.

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

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

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