https://www.nuget.org/packages/FarNet Far Manager 3.0.5505 = 8.1.6 = IEdit.History and IEdit.IsPath may be changed in Far dialogs or set in module dialogs after opening. This needs Far 3.0.6266 = 8.1.5 = Amend XPath internals = 8.1.4 = SearchFileCommand - new parameter Exclude = 8.1.3 = Rework XPath navigator and searches = 8.1.2 = SearchFileCommand - Use Depth in XPath searches = 8.1.1 = Amend XPath search = 8.1.0 = New FarNet.Tools.FileSystemExplorer designed for FarNet.Explore, Search-FarFile, etc. Redesigned SearchFileCommand, used by FarNet.Explore, Search-FarFile - recursive by default, use Depth to control - new parameter Bfs for breadth-first-search = 8.0.3 = Update help. = 8.0.2 = Build help with the updated builder. = 8.0.1 = Minor tweaks. = 8.0.0 = Requires .NET 8.0 = 7.0.14 = Use UTF8 temp files for EditText() and ViewText(). = 7.0.13 = - Add Tasks.ExecuteAndCatch(). - Tweak error messages on failed commands. = 7.0.12 = Use UTF8 on editing module panel items. = 7.0.11 = Tweak work with panel flags. = 7.0.10 = Avoid error on opening module panel from plugin panel (3.0.6153). = 7.0.9 = Avoid stack overflow on exceptions in GetFiles. = 7.0.8 = Add IFar.LoadModule(). = 7.0.7 = Tweaks for FarNet.GitKit (new) and FarNet.Explore modules. - Fix paging in panels (last empty page). - Add IsMaskMatch() overload. - Add GetModuleInterop() helper. - Make args nullable in Interop(). - SearchFileCommand, new parameter File. = 7.0.6 = Fix load errors on missing Modules and Lib = 7.0.5 = master -> main, update links. = 7.0.4 = Respect changed `Incremental` filter on menu restarts. = 7.0.3 = Avoid stale editor Opened called in rare cases. = 7.0.2 = Package tweaks. = 7.0.0 = Requires .NET 7 SDK or runtime, see https://github.com/nightroman/FarNet#readme fn-scripts: - load assembly once if `unload=false` - allow omitting type namespace if the name is the same as script: fn: script=MyScript; method=.MyType.MyMethod Modules/GQLParser - add directiveNewLine, unionMemberNewLine = 6.0.27 = - Amend error formatting. - Amend errors on locked editors. - Throw on locked editor in BeginUndo(). - Make dialog ILine.InsertText() similar to other editor lines. - Modules/GQLParser - preserve comments. = 6.0.26 = Support async fn-methods. See Modules/GQLParser sample. = 6.0.25 = Changed command processing with testing, e.g. used by Start-Far.ps1 (PowerShellFar). Amend exception info formatting. = 6.0.24 = Improve AssemblyResolver, fix known cases. = 6.0.23 = Add experimental IFar.FS file system context helpers. Add fn-script Modules/GQLParser sample. = 6.0.22 = Amend fn-command and input exceptions handling. = 6.0.21 = Add FarNet.Tools.InputBox, use for fn-commands input. Improve errors on exceptions in fn-commands. Amend API nullable references. = 6.0.20 = FarNet modules, like FarNet scripts, may have methods for calls by the command `fn:`. Syntax: `fn: module=; ...`. Example: see the sample module FarNet.Demo. = 6.0.19 = Script method parameters may have convertible types, not just strings. = 6.0.18 = Support FarNet scripts (first step), alternative to modules, see https://github.com/nightroman/FarNet/discussions/35 - add IFar.InvokeCommand - add menu item "Invoke" = 6.0.17 = IEditor.Close - ignore if editor is not opened. = 6.0.16 = NRT tweaks in the API. = 6.0.15 = FarNet API uses nullable reference types (NRT), see https://github.com/nightroman/FarNet/discussions/33 = 6.0.14 = Removed deprecated methods, see 6.0.13 Interactive editors: - support history navigation by up/down arrows in the last line - the key for show history changed from F6 to F5 - new property AutoSave = 6.0.13 = **Deprecated** IModuleManager methods: shorter names and GUID moved to attribute Id - RegisterModuleCommand -> RegisterCommand - RegisterModuleDrawer -> RegisterDrawer - RegisterModuleTool -> RegisterTool This unlikely affects many modules (PowerShellFar is the only known). So the deprecated methods will be removed in the next version. = 6.0.12 = Stopped using deprecated System.Runtime.InteropServices.Guid as module item id. Modules should use the property Id of module item attributes. Added Prefix to ModuleCommandEventArgs. = 6.0.11 = InteractiveEditor.EndOutput - fix when the editor is closed = 6.0.10 = Assembly resolver: use LoadFrom, not LoadFile. = 6.0.9 = Retired FarNet.Works.*.dll, moved to FarNet. = 6.0.8 = Amend assembly resolver, fix module debugging. = 6.0.7 = - Use code page 65001 for editing XML settings. - Use new module ids in demo modules. = 6.0.6 = New property Id (GUID string) in module item attributes. This GUID replaces the currently used extra attribute `System.Runtime.InteropServices.Guid`. Support two ways of loading modules: - modern, using `AssemblyLoadContext`, when ".deps.json" exists - simple, using `Assembly.LoadFrom` and some custom assembly resolver ALC way is more reliable, dependencies are resolved by the deps files. Also, in theory it is possible to unload ALC module (cool but not yet). How to build: - in a project: true - check dependencies: nuget/projects, private (included) or not - publish to the module directory using `dotnet publish` - keep generated result json files to be used by ALC Simple modules are also supported. If it's just one assembly then its simple copy to the module directory is enough. This way may be more effective, too. For examples of new item ids and building for ALC, see updated modules: EditorKit, RightWords, FSharpFar (they have nuget/project dependencies). Retired FarNet.Works.Loader.dll, moved to FarNet. = 6.0.5 = Tweak assembly resolver. = 6.0.4 = MessageArgs - new property TypeId. = 6.0.3 = Make ModuleSettings(string) public and explicit file settings easier. Used in JavaScriptFar for session configuration files. = 6.0.2 = Retire obsolete members, see 6.0.1. = 6.0.1 = Obsolete -> new panel members: - ShownList -> Files - ShownFiles -> GetFiles() - SelectedFiles -> GetSelectedFiles() - SelectedList will become SelectedFiles after removing obsoletes = 6.0.0 = Requires .NET 6 SDK or runtime, see https://github.com/nightroman/FarNet#readme FarNet 6 announcement -- https://github.com/nightroman/FarNet/pull/25 Main changes (plugin and API did not change much): - FarNet.Tools.dll is removed, types moved to FarNet.dll not changed. - All published FarNet.* modules are updated. - Modules are now developed with net6.0+. = 5.9.4 = ProgressForm - Add Show(Task). - Add CancellationToken. - Retire ability to abort jobs, not supported in newer .NET. - Remove Canceled event, use CancellationToken.Register(). - Remove timer events as not really needed. = 5.9.3 = On editing module settings exclude files from history. = 5.9.2 = Retired unreliable IFar.GetHelpTopic, ShowHelpTopic. Retired not really needed Panel.Open(bool). = 5.9.1 = Added BaseModuleItem.GetHelpTopic, ShowHelpTopic. Use them instead of IFar.GetHelpTopic, ShowHelpTopic. IFar methods are deprecated and will be removed soon. = 5.9.0 = Requires .NET Framework 4.7.2 or newer. = 5.8.4 = Update config for FSharpFar. = 5.8.3 = Amend dialog initialization event. = 5.8.2 = Internal panel changes. = 5.8.1 = Dialog: - add Id, Close(int), Activate() - fix non-modal Initialized event Tasks: - add Command(Action) - Editor() and Viewer() support already opened UI: - removed experimental SetUserScreen Viewer: - add IsOpened Window: - add GetIdAt() = 5.8.0 = Added (experimental) SetUserScreen for new features in PSF. = 5.7.4 = - List menus: [Ins] adds a new part (•), to filter in found. - Settings do not require [Serializable]. = 5.7.3 = - Removed deprecated IEditor.GetColors(). - Fixed ignored space in list menus. = 5.7.2 = - Tweaks in module config and related UI. - Simplified filtering in list menus. = 5.7.1 = IEditor: - Added HasColorer - Added GetColors(int, List) - Deprecated IList GetColors(int) = 5.7.0 = Reworked modules configuration, maintained by Options \ Plugin configuration \ FarNet. Details: https://github.com/nightroman/FarNet/wiki/Zoo Package: replaced "FarNet.Works.Manager.dll" with "FarNet.Works.Loader". = 5.6.2 = Minor tweaks in module settings. Avoided unnecessary assemblies loading for settings menu. Reworked module cache (Cache*.bin). You may remove old %FARLOCALPROFILE%\FarNet\Cache*.binary = 5.6.1 = Work on XML settings, support versioning - Add UpdateData, see in FarNet.Demo - Improve XmlCData = 5.6.0 = Retired FarNet.Settings library and types. New XML based ModuleSettings is used instead. Details: https://github.com/nightroman/FarNet/wiki/Zoo#retired-farnetsettings All FarNet.* module packages are updated: - FarNet.Demo (sample code) - Drawer - FSharpFar - RightControl - RightWords - Vessel = 5.5.3 = Maintenance. = 5.5.2 = Update Far.exe.config for F# v6. = 5.5.1 = Settings panel now saves on changing any value, not on closing. This allows applying changes in modules with overridden save. = 5.5.0 = Dialog - Replaced unreliable Far based Idled events with Timer and TimerInterval. - Retired IdledHandler, not needed with new Timer events. Panels - Replaced Idled with Timer and TimerInterval. - Replaced IdleUpdate with IsTimerUpdate. - Replaced UIIdle with UITimer. = 5.4.23 = Make ProgressForm based on timer instead of unreliable idle events. = 5.4.22 = Fix setting colors (adapt for build 5821). = 5.4.21 = Fix GetColors (adapt for build 5788). = 5.4.20 = Updated Far.exe.config for latest FSharpFar. = 5.4.19 = ListMenu supports CtrlV, ShiftIns for filter. = 5.4.18 = Fix internal help paths. = 5.4.17 = Add IListMenu.TypeId assign the default. = 5.4.16 = Skip plugin records on getting folder history. = 5.4.15 = Add IHistory.GetHistory(GetHistoryArgs). = 5.4.14 = Improve Tasks.Macro, more reliable and effective waiting for completion. = 5.4.13 = New Tasks methods: OpenPanel, WaitPanelClosed, WaitPanelClosing, Viewer. = 5.4.12 = Panel.Open should fail in modal areas, except Desktop. = 5.4.11 = Add Tasks.Wait(). Use unique temp names to avoid history in Panel.UIEditFile(). = 5.4.10 = Amend Tasks.Macro on syntax errors. = 5.4.9 = Tweaks in tasks and jobs code. = 5.4.8 = Retire IFar.PostSteps designed for removed PSF stepper. Use IFar.PostStep (it is mostly needed internally). = 5.4.7 = Add FarNet.User.Data, dictionary for cross thread and module operations = 5.4.6 = Add Tasks.Run for running modal UI without blocking tasks = 5.4.5 = Improve Tasks.Keys/Macro = 5.4.4 = Add Tasks.Panel = 5.4.3 = - add event IDialog.Closed - simplify Tasks.Macro() = 5.4.2 = Add Tasks.Dialog() without the closing function = 5.4.1 = - new static class Tasks with async helpers - tweak opening panel from non-panel window - fix rare memory leaks and issues in dialogs - add EditTextAsync() in addition to EditText() - module panel edit file - reopen editor on errors = 5.4.0 = FarNet requires: - .NET Framework 4.5 or newer - Visual C++ Redistributable for Visual Studio 2019 = 5.3.2 = Minor tweaks of help and code. = 5.3.1 = Allow list menus to be wider. = 5.3.0 = GetFiles methods return IEnumerable instead of IList. = 5.2.24 = PanelPlan.Clone() returns PanelPlan instead of Object. = 5.2.23 = Requires Far 3.0.5505 for new menu flags Menu, new options - NoBox, NoMargin, SingleBox, NoShadow IAnyEditor - FirstOpening event, called once on opening the first editor = 5.2.22 = Add optional EditorOpened handler to EditTextArgs and GetContentEventArgs. Remove obsolete EditText(string, string), use EditText(EditTextArgs). About-FarNet.htm - use GitHub like CSS. = 5.2.21 = unlisted = 5.2.20 = Update Far.exe.config ~ FSharp.Core 4.7.0 = 5.2.19 = Fix the exported function signature. = 5.2.18 = - Fix null editor on exiting Far with not active editor. - Update Far.exe.config for FSharpFar. = 5.2.17 = Use %TEMP%\FarNet for module settings if the normal location is RO. = 5.2.16 = - Use noNewLine in SaveUserScreen, ShowUserScreen. - Fix opening panels from other windows. = 5.2.15 = Fix not updated controls on closing non modal dialogs. = 5.2.14 = - Enable FarNet menus in VMENU areas. - Rework posting and invoking synchronous jobs. - Undo blocking Mantis 2241 but document when API may hang. = 5.2.13 = - Retire SubsetForm (moved to Zoo, use the source if needed) - Update Far.exe.config for FSharpFar = 5.2.12 = Adapted for Far 3.0.5176, panel items ".." should have the directory attribute. = 5.2.11 = Changes for FSharpFar in Far.exe.config. = 5.2.10 = Remove panel properties NumericSort, CaseSensitiveSort. Far 3.0.5150 removed this functionality. = 5.2.9 = Fix for Far 5134-5139, editor and viewer start sizes. = 5.2.8 = Fix #13, panel should inherit its explorer location on opening. = 5.2.7 = Far Manager 3.0.5048 IDialog: - Add method Open, opens non-modal dialogs. - Add events GotFocus and LosingFocus, called for non-modal dialogs. - Add method Redraw. = 5.2.6 = Add "Interop()" to module manager and host. Experimental, to be tested in PS and FS. = 5.2.5 = Far Manager 3.0.5013 "Far.exe.config" is configured for F# 4.1 with FSharpFar 1.4. PostMacro does not cause the LuaMacro dialog on syntax errors. It gets the error info and includes it to the exception message. = 5.2.4 = Remove internal KeyCount from IEditor. = 5.2.3 = Fix #6 Fix #7 = 5.2.2 = - Adapt for Far 3.0.4821 - Remove internal IsUserScreen = 5.2.1 = Add InteractiveEditor, HistoryLog, and HistoryMenu to FarNet.Tools. Currently they are used/tested in PowerShellFar and FSharpFar. Later they will be available for other modules. Remove experimental IsCommandMode. = 5.2.0 = Adapt for Far 3.0.4782. Review console output. = 5.1.3 = Fixed crash in SaveScreen and RestoreScreen. = 5.1.2 = Far.exe.config changes for modules. = 5.1.1 = EditorTextWriter - Fix \r\n written as two chars. = 5.1.0 = Changed interfaces of ModuleEditor and ModuleDrawer. Invoke(object sender, ...) is replaced with more useful Invoke(IEditor editor, ...). Modules using these classes should be upgraded, e.g. use the latest PowerShellFar, Drawer, RightWords. = 5.0.68 = Corrected default colors on console writing (Far 3.0.4662 changes) = 5.0.67 = Removed Samples from the package. = 5.0.66 = Far does not support idle editor events. Removed Idled editor events from FarNet. = 5.0.65 = ProgressForm: New event Idled. = 5.0.64 = Editor: - New properties IsKeyBar, IsTitleBar. - Fixed ConvertPointEditorToScreen(), ConvertPointScreenToEditor() on hidden title bar. ProgressForm: - New event Canceling. = 5.0.63 = Fixed several issues in Message(MessageArgs). Migration to GitHub: updated links. = 5.0.62 = Minor changes due to migration to GitHub, mostly in the documentation. = 5.0.61 = Removed work around unwanted Far messages on setting missing directories. = 5.0.60 = Fixed double Invoke() in module editors (from EE_GOTFOCUS and then from EE_READ). = 5.0.59 = Editor color drawers use the new flag ECF_AUTODELETE (Far 3.0.4134). Removed work around Far 3.0.4098 (redrawing triggers getting focus). = 5.0.58 = Adapted for Far 3.0.4138 = 5.0.57 = Work around Far 3.0.4098 (Redraw in editor triggers GotFocus). = 5.0.56 = Fixed too short message boxes, i.e. a long button line was shown out of the dialog box in some cases. = 5.0.55 = Adapted for Far 3.0.4042 (new "Desktop" window). Added the new window kind "Desktop", position 0. Note that "Panels" is now at the position 1. NB: For now this is experimental and depends on Far. = 5.0.54 = Adapted for Far 3.0.4027 (EE_REDRAW is called before EE_READ). = 5.0.53 = IEditor.Title getter uses ECTL_GETTITLE (Far 3.0.4013). = 5.0.52 = Adapted the editor code for the new Far window manager. Most of editor methods work with the specified editor, i.e. not just the current. Editor color and bookmark methods still work with the current editor. = 5.0.51 = Module panel: viewer [F3] allows switching to editor [F6]. = 5.0.50 = Passed the actual FarNet version in Far, so that Far shows it correctly. Some not yet public API used in PowerShellFar. = 5.0.49 = Package: moved manuals and other information files to FarNet. = 5.0.48 = Improved documentation and installation steps. = 5.0.47 = Use Far 3.0.3842 Fixed corrupted memory on adding items to dialog lists after creation. New events in dialog controls: Drawn, DropDownOpening, DropDownClosed. = 5.0.46 = Fix: FarNet was not shown in the plugin help list. New method IFar.Message(MessageArgs). It is recommended instead of other Message() overloads with multiple parameters. + An extra option Position. = 5.0.45 = IUserInterface: - New method GetBufferLineText, INTERNAL for now, used by PSF. - Work around missing cursor on cls in PSF command console. _140317_201247 = 5.0.44 = Async steps: - Revised self posting. - Corrected recovery on errors. HLF file uses new syntax (Mantis#0002619). Recommended Far 3.0.3831. = 5.0.43 = IListMenu - fixed "Index out of range" on the second Show() with incremental filter and changed items ([ShiftDel] and [CtrlR] in Vessel and PSF history). = 5.0.42 = IAnyEditor - the new method EditText(EditTextArgs) should be used instead of the old EditText(string, string). The old one is marked obsolete and will be removed. Far.Api.UI - added helper methods WriteLine(). ILine - new property IsReadOnly. = 5.0.41 = IUserInterface - new flag IsCommandMode, INTERNAL for now, needed for the new command console mode in PowerShellFar. = 5.0.40 = Slightly simplified the NuGet package. It is recommended to update it by the upgraded script Update-FarPackage.ps1 = 5.0.39 = THE PACKAGE MOVED TO NUGET FarNetAccord.chm is replaced by FarNetAPI.chm and built by the upgraded documentation tools. Updated some topics, added missing documentation. FarNetAPI.chm is now included to the FarNet package. Renamed the protected Panel.OpenChildBegin() to CanOpenAsChild(). Enum ReadKeyOptions moved from FarNet.Works (internal) to FarNet (public). FarNet.Tools.SubsetForm - changed type of ItemToString from Converter to Func. As a result, PowerShell script blocks can be used directly without helpers. = 5.0.38 = Fixed incorrect comparison of keys (transition to Far3, v5.0.0). E.g. [Esc] might not work in progress forms. = 5.0.37 = Fixed getting text length of dialog edit boxes. = 5.0.36 = Added the suffix 32/64 to the module cache file name. By default it is: %LOCALAPPDATA%\Far Manager\Profile\FarNet\Cache??.binary Old files Cache.binary can be removed. = 5.0.35 = Requires Far 3.0.3525 The editor event Saving receives the argument EditorSavingEventArgs which can be useful on "Save as" operations. Modules using this event have to be rebuilt (e.g. the sample module EditorKit), changes in their code are not needed unless the new argument is going to be actually used. = 5.0.34 = Far 3.0.3371. Adapted for change events in editors. Far 3.0.3265. Added new method Panel.SetActive(). = 5.0.33 = The menu command [F11 \ FarNet \ Panels \ Close panel] is now the same as [ShiftEsc] (i.e. a user may cancel closing in some cases). The hardcoded [ShiftEsc] in FarNet panels is not removed (needed at least for tests). = 5.0.32 = As it was announced, removed the obsolete property Far.Net. Use the new Far.Api instead. Upgrade your modules. All FarNet suite modules at the download page were upgraded some time ago. IFar.Dialog now gets the top dialog even if it is under other windows but not menus. Menus will be (?) enabled when Mantis 2241 is resolved. As a result, IFar.Line in menus over a dialog gets null. This is better than hanging. Workaround for macros. Macros may check the area for DialogAutoCompletion and close it by [Esc]. Then IFar.Dialog and IFar.Line work fine. Note that in command line ShellAutoCompletion is not a problem for getting IFar.Line. = 5.0.31 = Use Far 3.0.3040+. FarNet uses new Far API for setting directories in panels. Renamed the API property Far.Net to Far.Api. The old name still works but it is obsolete and going to be removed in the next version. Upgrade your modules now. Far.Line also works when auto complete menu is shown in command line. WARNING: In dialogs getting Far.Line on opened auto complete hangs in Far. A workaround is to check for and close auto complete and then only get Far.Line. = 5.0.30 = Improved diagnostics on failed changes in a locked editor. The exception "Editor is locked for changes. Unlock by [CtrlL]." is thrown instead of "ECTL_SETSTRING failed" or silent failures in some methods. = 5.0.29 = * Fixed a bug in dialog lists. * Amended the required Far version. = 5.0.28 = Adapted for the new macro engine in Far 3.0.2853. Modules using hardcoded macros should be adapted, as well as other used macros. First step to native search in FarNet panels. It is not yet working, some more features are needed in Far for setting directories "by items". = 5.0.27 = Adapted for API changes in Far 3.0.2799-2834. Most of modules work fine without updates or rebuilds. Some new API (clipboard block types, panel item custom free) is not yet used. To be continued. IViewer * Property HexMode (bool) replaced with ViewMode (ViewerViewMode - Text, Hex, Dump). IEditor, IViewer * Property Id type changed from int to IntPtr. = 5.0.26 = Menus * WrapCursor is `true` by default (as far as Far API recommends to use `true`). = 5.0.25 = Panels: paging for large data. * New property NeedsNewFiles used on paging and [CtrlR]. * New properties PageLimit (enables paging) and PageOffset. * When paging is enabled pressing [PgDn]/[PgUp] on the last/first panel items sets NeedsNewFiles, updates PageOffset, and gets files from the panel explorer. Explorers that support paging or file updates should use parameters NewFiles, Limit, and Offset in order to get new portion of files (or get cached data if NewFiles is false). Misc * Amended the stepping code. = 5.0.24 = Panel * GetContent+UseFileName: fixed issues on existing targets with source names. Asynchronous sequences (almost "coroutines" if used with C# yield) * New method IFar.PostSteps() * Removed redundant PostStep2() Misc * Fix: incremental filter update on backspace. = 5.0.23 = 5.0.22 continued * Move (F6) deletes successfully copied files if an explorer can DeleteFiles. * Bad names are silently ignored if the target is a plugin because Far does not know about names possibly corrected by a user. This is especially important on move: not completely processed files should not be deleted. = 5.0.22 = Module panels. For exporting files (F5/F6) from a module panel to a native file or plugin panel it is enough to implement GetContent(). Files with good names are copied fine. A user is prompted to correct bad names in interactive mode. Bad names are ignored in batch mode. Possible duplicates are not treated, the last file wins. NOTES: * Still, consider to use ExportFiles (more power, control, flexibility). * F6 works like F5 in new "lazy" scenarios, to be continued. = 5.0.21 = Use Far 3.0.2581. Fixed incorrect flag on panel view operations (from MaximKat). FarNet panels for now do not use OPIF_SHORTCUT, so that their paths do not go to history and do not clatter it. It is not yet clear how this mechanism will work in FarNet. To be continued. New panel property IsNavigation ~ PFLAGS_SHORTCUT & OPIF_SHORTCUT in Far API. It is always false for FarNet panels (see above). Not sure about this flag, consider this as experimental. = 5.0.20 = Use Far 3.0.2578. Fixed return value of Plugin.Call(). = 5.0.19 = For Far 3.0.2573. = 5.0.18 = Module commands in macros with Plugin.Call() - Swapped the roles of leading colons - `:` is for async jobs, any area, opens all but panels, `::` is for async steps, areas with the plugin menu, opens all. `::` is deprecated and may be removed soon, Plugin.Command() will replace it. FarSetting - New setting groups. IWindow - New property IsModal. = 5.0.17 = IEditor - SelectedLines excludes the last line of the selection area if nothing is actually selected there. This convention seems to be effective in practice. = 5.0.16 = Far 3.0.2516 (new file mask API) Module configuration - Masks support all Far features including useful . - Masks are checked for validity on various input. - Empty masks in config exclude all files. - Internal refactoring. IFar - Renamed MatchPattern -> IsMaskMatch. It uses Far API. - Added IsMaskValid() checks a mask for validity. Editor - Renamed StackBookmark -> SessionBookmark (a la Far). Panel - New property CodePage in GetContentEventArgs. - Disabled history on view/edit items via temp files. = 5.0.15 = Far 3.0.2479 (settings API) * About - Replaced "Readme.txt" with "About-FarNet.htm" which is generated from the same source as "FarNetMan.hlf". * Far settings - Added IFar.GetSetting() - Removed IFar.Confirmations, use GetSetting(). - Removed IAnyEditor.WordDiv, use GetSetting(). * UI - Removed "the" from the Panels menu items. New names: "Push/Shelve panel", "Close panel". Macros with old names should be updated. = 5.0.14 = * Fixed - A bug in the Drawers config menu. - Minor defects in the Tools config menu. = 5.0.13 = Far 3.0.2460 (API changes) = 5.0.12 = Far 3.0.2458 (API changes) * ModuleCommandEventArgs - Replaced MacroArea with IsMacro. For MacroArea use IFar.MacroArea. - Command is read only. = 5.0.11 = *) Adapted for Far 3.0.2450 dialog API changes. *) A few tweaks on getting data from Far. *) Fixed IAnyEditor.WordDiv. = 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. = 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, IEditor.Changed. - Old drawer methods were removed. - Replaced GetModuleCommand and GetModuleTool with GetModuleAction. The new method gets all module actions including commands, drawers, editors, tools. = 5.0.8 = *) Editors - New method ILine.MatchCaret() for getting current words easier. - Simpler and yet more flexible and PowerShell friendly drawers. = 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. = 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(). = 5.0.5 = *) History - All histories come back, use IFar.History and its methods. = 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. = 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. = 5.0.2 = *) IWindow - Fixed some Get*() methods. - Removed Commit(), it is done by SetCurrentAt(). = 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. = 5.0.0 = This version is designed for Far Manager 3. All 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 - Panel key bars do not work yet - MsgOptions -> MessageOptions - Panel UseFilter -> NoFilter = 3.1.? - 4.6.1 = https://github.com/nightroman/FarNet/blob/main/FarNet/History4.txt