FAR Plugins API History

Far Manager

FAR Plugins API History

The key moments of FAR Manager Plugins API history are noted here.

FAR 1.75 01.04.2009

+ LIF_HIDDEN, LIF_GRAYED
+ MIF_HIDDEN, MIF_GRAYED
+ COL_MENUGRAYTEXT
+ COL_MENUSELECTEDGRAYTEXT
+ COL_DIALOGCOMBOGRAY
+ COL_DIALOGCOMBOSELECTEDGRAYTEXT
+ COL_DIALOGLISTGRAY
+ COL_DIALOGLISTSELECTEDGRAYTEXT
+ COL_WARNDIALOGCOMBOGRAY
+ COL_WARNDIALOGCOMBOSELECTEDGRAYTEXT
+ COL_WARNDIALOGLISTGRAY
+ COL_WARNDIALOGLISTSELECTEDGRAYTEXT

FAR 1.71 26.11.2008

+ COL_EDITORSCROLLBAR

FAR 1.71 05.11.2008

+ KEY_SLEEP

FAR 1.71 24.09.2008

* FLINK_SYMLINK renamed to FLINK_JUNCTION
+ FLINK_SYMLINKFILE
+ FLINK_SYMLINKDIR

FAR 1.71 11.08.2008

+ COL_COMMANDLINEUSERSCREEN

FAR 1.71 17.06.2008

+ VE_GOTFOCUS, VE_KILLFOCUS

FAR 1.71 15.05.2008

+ FDIS_DELREMOVESBLOCKS
+ FDIS_MOUSECLICKOUTSIDECLOSESDIALOG

FAR 1.71 30.03.2008

+ ECTL_ADDSTACKBOOKMARK
+ ECTL_CLEARSTACKBOOKMARKS
+ ECTL_DELETESTACKBOOKMARK
+ ECTL_GETSTACKBOOKMARKS
+ ECTL_NEXTSTACKBOOKMARK
+ ECTL_PREVSTACKBOOKMARK

FAR 1.71 29.03.2008

+ PFLAGS_PANELLEFT

FAR 1.71 17.03.2008

+ COL_DIALOGLISTARROWS,
+ COL_DIALOGLISTARROWSDISABLED,
+ COL_DIALOGLISTARROWSSELECTED,
+ COL_DIALOGCOMBOARROWS,
+ COL_DIALOGCOMBOARROWSDISABLED,
+ COL_DIALOGCOMBOARROWSSELECTED,
+ COL_WARNDIALOGLISTARROWS,
+ COL_WARNDIALOGLISTARROWSDISABLED,
+ COL_WARNDIALOGLISTARROWSSELECTED,
+ COL_WARNDIALOGCOMBOARROWS,
+ COL_WARNDIALOGCOMBOARROWSDISABLED,
+ COL_WARNDIALOGCOMBOARROWSSELECTED,
+ COL_MENUARROWS,
+ COL_MENUARROWSDISABLED,
+ COL_MENUARROWSSELECTED,

FAR 1.71 05.01.2008

+ KEY_MSWHEEL_LEFT, KEY_MSWHEEL_RIGHT

FAR 1.71 31.12.2007

+ ACTL_REDRAWALL

FAR 1.71 23.12.2007

+ ProcessDialogEvent
+ FarDialogEvent
+ OpenDlgPluginData
+ PF_DIALOG
+ OPEN_DIALOG
+ DIALOG_EVENTS

FAR 1.71 14.12.2007

+ MCMD_GETSTATE

FAR 1.71 06.12.2007

+ EE_GOTFOCUS, EE_KILLFOCUS
+ FE_GOTFOCUS, FE_KILLFOCUS

FAR 1.71 04.12.2007

+ DIF_NOAUTOCOMPLETE

FAR 1.71 06.08.2007

- _FAR_USE_FARFINDDATA
+ _FAR_USE_WIN32_FIND_DATA

FAR 1.71 20.02.2007

+ DIF_NOTCVTUSERCONTROL

FAR 1.71 30.01.2007

+ FCTL_GETUSERSCREEN

FAR 1.71 07.12.2006

+ VIEWER_SETMODEFLAGS_TYPES

FAR 1.71 01.12.2006

* ViewerMode.TypeWrap renamed to ViewerMode.WordWrap
+ VCTL_SETMODE
+ enum VIEWER_SETMODE_TYPES
+ struct ViewerSetMode

FAR 1.70 29.03.2006

! restrictions to keys received by the ProcessKey() function no longer apply.
+ PKF_PREPROCESS
+ ACTL_GETSHORTWINDOWINFO
+ ECF_TAB1
! EOPT_EXPANDTABS -> EOPT_EXPANDALLTABS
+ EOPT_EXPANDONLYNEWTABS, EXPAND_TABS
+ FARINT64
+ ViewerAPI: ViewerInfo, ViewerMode, ViewerSelect, ViewerSetPosition,
             ViewerControl, ProcessViewerEvent,
* All enumerations in plugin.hpp are now named.
+ FARMACRO_KEY_EVENT
+ DM_GETSELECTION, DM_SETSELECTION
+ DN_LISTHOTKEY
! Now plugins receive keyboard events through ProcessEditorInput both
  when recording and when playing back macros. Previously, keyboard
  events were received only when recording macros.
* Removed some of the limitations on the keys sent to plugins through
  ProcessEditorInput.
  Keys which are not sent to plugins: Ctrl-W, F11, Alt-F9, F12, Ctrl-Tab,
  Ctrl-Shift-Tab, Alt-Ins, Ctrl-Alt-Shift.
  The following key combinations are sent if:
    Alt-F5 - the PrintMan plugin is not installed;
    Alt-F11 - the editor is modal;
    F6 - switching to the viewer is disabled
+ DN_DRAWDIALOGDONE
+ ACTL_GETPLUGINMAXREADDATA, ACTL_GETWCHARMODE
+ ACTL_GETDIALOGSETTINGS
! FIS_PERSISTENTBLOCKSINEDITCONTROLS -> FDIS_PERSISTENTBLOCKSINEDITCONTROLS
! FIS_HISTORYINDIALOGEDITCONTROLS    -> FDIS_HISTORYINDIALOGEDITCONTROLS
! FIS_AUTOCOMPLETEININPUTLINES       -> FDIS_AUTOCOMPLETEININPUTLINES
+ FRS_SCANSYMLINK
+ FSS_SCANSYMLINK
! Now GetReparsePointInfo returns an error for remote folders, because
  correct information about symbolic link contents can not be obtained in
  such case.
- Garbage had been returned in PanelInfo.SelectedItems[0] when no files were
  selected and the cursor was positioned on the ".." element.
+ MCMD_POSTMACROSTRING
+ ActlKeyMacro.Param
+ KSFLAGS_NOSENDKEYSTOPLUGINS
+ ESPT_SETWORDDIV, ESPT_GETWORDDIV
+ FMENU_CHANGECONSOLETITLE
! DM_LISTSETMOUSEREACTION (behaviour changed)
+ LMRT_*
+ FCTL_SETNUMERICSORT, FCTL_SETANOTHERNUMERICSORT, PFLAGS_NUMERICSORT

FAR 1.70 beta 5 09.04.2003

+ OPM_QUICKVIEW
+ FCTL_GETPANELSHORTINFO, FCTL_GETANOTHERPANELSHORTINFO
+ FIB_NOAMPERSAND
+ ESPT_LOCKMODE
+ ECTL_TURNOFFMARKINGBLOCK
! CONSOLE_* -> FAR_CONSOLE_*
+ MAXSIZE_SHORTCUTDATA
+ FCTL_CHECKPANELSEXIST
+ LIF_DELETEUSERDATA
+ EF_IMMEDIATERETURN, VF_IMMEDIATERETURN
+ FLINK_DONOTUPDATEPANEL
+ ECTL_DELETEBLOCK
+ FDLG_SMALLDIALOG, FDLG_SMALLDIALOG
+ ACTL_SETARRAYCOLOR, FarSetColors, FARCOLORFLAGS.FCLR_REDRAW
+ FarListColors

MultiArc:
+ ArcInfo.Chapters
+ ArcItemInfo.Chapter

FAR 1.70 beta 4 13.03.2002

+ EJECT_LOAD_MEDIA
+ FDLG_WARNING, FDLG_SMALLDIALOG
+ PFLAGS_*
! PanelInfo.Flags
+ KEY_MSWHEEL_UP, KEY_MSWHEEL_DOWN
+ DM_LIST*
+ VF_ENABLE_F6, VF_DISABLEHISTORY
+ EF_ENABLE_F6, EF_DISABLEHISTORY, EF_DELETEONCLOSE
+ FarList*
+ DIF_LISTWRAPMODE, DIF_LISTAUTOHIGHLIGHT, DIF_LISTNOBOX,
  DIF_SEPARATOR2
+ DM_GETCHECK, DM_SETCHECK, DM_SET3STATE, DM_SETITEMPOSITION,
  DM_GETITEMPOSITION, DM_GETDROPDOWNOPENED, DM_SETDROPDOWNOPENED,
  DM_SETHISTORY, DM_SETMOUSEEVENTNOTIFY
+ DM_LISTSETMOUSEREACTION
+ LINFO_*
+ BSTATE_*
+ ACTL_GETWINDOWCOUNT, ACTL_SETCURRENTWINDOW, ACTL_COMMIT,
  ACTL_GETFARHWND, ACTL_POSTKEYSEQUENCE
+ WTYPE_*
+ KeySequenceFlags.KSFLAGS_DISABLEOUTPUT
+ KeySequence
! Unquote
! ExpandEnvironmentStr
+ ECTL_GETBOOKMARKS
+ EditorBookMark
+ DN_LISTCHANGE, DN_MOUSECLICK, DN_DRAGGED, DN_RESIZECONSOLE,
  DN_MOUSEEVENT
+ LIFIND_EXACTMATCH
+ FMENU_USEEXT
+ MIF_*
+ FarMenuItemEx
! FarRecursiveSearch
! DI_RADIOBUTTON
+ ESPT_CHARTABLE, ESPT_SAVEFILEPOSITION
! FarCharTable
+ FCTL_GETCMDLINESELECTEDTEXT, FCTL_SETCMDLINESELECTION,
  FCTL_GETCMDLINESELECTION
+ PluginPanelItem.CRC32
+ ConvertNameToReal
+ GetReparsePointInfo
! AddEndSlash

FAR 1.70 beta 3 20.04.2001

! In plugin.hpp, the "const" modifier has been added for the
  unchangeable parameters of some exported and service functions.

+ DIF_VAREDIT - "breaking of the 512-byte barrier" - works for DI_EDIT
  and DI_COMBOBOX controls.

! Changed the FarListItem structure (possibility of working with "long
  data").

+ Added flag LIF_PTRDATA - for working with "long data".

! Changed the values of LISTITEMFLAGS (LIF_*) - the values for
  LIF_SELECTED, LIF_CHECKED and LIF_SEPARATOR have been shifted to the
  lower byte of the upper word, and LIF_DISABLE has been shifted "down".

! Changed field names in the FarDialogItemData structure.

+ It is now possible to handle a double click event through the
  DN_MOUSECLICK message (MouseEvent.dwEventFlags==DOUBLE_CLICK).

! Significant revamping of the internal key codes (farkeys.hpp).

+ ACTL_EJECTMEDIA

+ DM_GETTEXTPTR, DM_SETTEXTPTR, DM_SHOWITEM, DM_ADDHISTORY

! Ctrl-Break can now be controlled. Earlier the dialog was closed
  unconditionally, regardless of what the callback function
  returned on the DM_CLOSE message.

+ DIF_HIDDEN, DIF_MANUALADDHISTORY

+ The DIF_SHOWAMPERSAND flag can be used for DI_SINGLEBOX and
  DI_DOUBLEBOX items.

+ ACTL_KEYMACRO:
  struct ActlKeyMacro - the interface part for ACTL_KEYMACRO
  MCMD_LOADALL     - load all macros from the registry into the FAR
                     memory
  MCMD_SAVEALL     - save all macros from the registry into the FAR
                     memory

! Extended the syntax of the Message function

+ FSF.qsortex

+ EF_CREATENEW

! FSF.FarRecursiveSearch - added parameter void *param

+ FAR knows about 4 predefined help topics in HLF files:
  Contents - the standard main topic;
  Config   - the topic invoked by pressing Shift-F1 in the plugins
             configuration menu;
  Editor   - the topic invoked by pressing Shift-F1 in the plugins menu
             of the editor;
  Viewer   - the topic invoked by pressing Shift-F1 in the plugins menu
             of the viewer.

+ FHELP_USECONTENTS

* ACTL_GETFARVERSION returns the version number, and not TRUE/FALSE.

* ACTL_WAITKEY waits for any key if NULL or -1 is passed in the parameter
  Param.

+ ECTL_SETPARAM - allows to set editor parameters:
   - Tab size (ESPT_TABSIZE)
   - Expand tabs to spaces (ESPT_EXPANDTABS)
   - Auto indent (ESPT_AUTOINDENT)
   - Cursor beyond end of line (ESPT_CURSORBEYOUNDEOL)
   - The format of the current character code (ESPT_CHARCODEBASE)

FAR 1.70 beta 2 16.12.2000

! Changes in Param2 for messages DM_SETTEXT and DM_GETTEXT.
  Now they use pointers to FarDialogItemData structure.

+ 6 new colors are added for DISABLED items (in dialogs and warning
  messages). See Headers.c\farcolor.hpp (or Headers.pas\farcolor.pas).

+ DIF_3STATE

! The DIF_EDITEXPAND flag is no longer processed by DI_PSWEDIT and
  DI_FIXEDIT controls.

+ ACTL_GETCOLOR, ACTL_GETARRAYCOLOR

! The AddEndSlash function works with both types of slashes and replaces
  the existing trailing slash with the type of slashes that was used
  more often.

! The version format changed - the constant in plugin.hpp::FARMANAGERVERSION
  has the following format:
     HIWORD:         = NNN - # build
     LOWORD:  HIBYTE =   1 - version Hi
              LOBYTE =  70 - version Lo

FAR 1.70 beta 1 20.11.2000

+ Dialog API 1.0

! New/changed header files:
     farcolor.hpp  - Color attributes indexes.
     farkeys.hpp   - FAR manager internal key codes.

+ "Standard functions" - for reducing plugins size -
   the FarStandardFunctions structure.

+ GetMinFarVersion().

+ URL-activators and color attributes in HLF-files.

struct PluginStartupInfo:
  + AdvControl
  + InputBox
  + ShowHelp
  + DialogEx
  + SendDlgMessage
  + DefDlgProc

+ PF_FULLCMDLINE
+ FCTL_*SORTMODE, FCTL_*SORTORDER

struct KeyBarTitles:
  + CtrlShiftTitles
  + AltShiftTitles
  + CtrlAltTitles

+ EF_NONMODAL
+ ECTL_SETKEYBAR

+ DI_COMBOBOX, DI_LISTBOX, DI_USERCONTROL
+ DIF_EDITEXPAND, DIF_DROPDOWNLIST, DIF_USELASTHISTORY, DIF_BTNNOCLOSE,
  DIF_MASKEDIT, DIF_DISABLE

+ Input fields with fixed length can have an input mask.

+ Structures: FarListItem, FarList.
+ Header files for Pascal/Delphi

FAR 1.64 beta 24.05.2000

+ ECTL_SAVEFILE
+ ECTL_QUIT

+ struct EditorSaveFile

FAR 1.63 b 20.08.1999

+ VF_NONMODAL
+ VF_DELETEONCLOSE

FAR 1.62 23.05.1999

+ FCTL_GETCMDLINEPOS

FAR 1.62 b2 10.05.1999

+ EE_CLOSE

FAR 1.62 b 24.04.1999

The "Colorer" plugin "introduced" highlighting in the editor:
+ EE_REDRAW
+ ECTL_ADDCOLOR
+ ECTL_GETCOLOR

+ struct EditorColor

+ FCTL_SETCMDLINEPOS
+ FE_COMMAND

FAR 1.61 24.02.1999

+ EE_READ
+ EE_SAVE

FAR 1.60 13.10.1998

Rapid progress of the Editor API:
+ FCTL_SETPANELDIR
+ ECTL_*
+ EOPT_*
+ BTYPE_*
+ PF_DISABLEPANELS
+ PF_EDITOR
+ PF_VIEWER
+ OPEN_EDITOR
+ OPEN_VIEWER

+ struct EditorGetString
+ struct EditorSetString
+ struct EditorInfo
+ struct EditorSetPosition
+ struct EditorSelect
+ struct EditorConvertText
+ struct EditorConvertPos

struct PluginStartupInfo:
  + EditorControl

FAR 1.52 26.06.1998

+ FCTL_SETUSERSCREEN
+ FCT_DETECT
+ SM_COMPRESSEDSIZE
+ SM_NUMLINKS
+ FE_BREAK
+ OPM_DESCR

+ struct CharTableSet

struct PanelInfo:
  + ShortNames
  + SortMode

struct PluginStartupInfo:
  + CharTable
  + Text

FAR 1.50 (release version) 09.02.1998

+ PPIF_USERDATA
+ FCTL_SETVIEWMODE
+ FCTL_SETANOTHERVIEWMODE
+ FCTL_INSERTCMDLINE
+ OPIF_USEATTRHIGHLIGHTING

struct PluginPanelItem:
  + UserData

FAR 1.50 beta 03.10.1997

+ DIF_HISTORY
+ FCTL_GETCMDLINE
+ FCTL_SETANOTHERSELECTION
+ FCTL_SETCMDLINE
+ FCTL_SETSELECTION
+ FE_CLOSE
+ FMSG_LEFTALIGN
+ OPEN_COMMANDLINE
+ OPEN_SHORTCUT
+ OPIF_EXTERNALDELETE
+ OPIF_EXTERNALGET
+ OPIF_EXTERNALMKDIR
+ OPIF_EXTERNALPUT
+ OPM_TOPLEVEL
+ PPIF_SELECTED

struct PluginStartupInfo:
  + Viewer
  + Editor
  + CmpName

struct PluginInfo:
  +CommandPrefix

struct PanelMode:
  +StatusColumnTypes
  +StatusColumnWidths

struct KeyBarTitles:
  +ShortcutData

MultiArc:
  Changed a member of the ArcInfo structure:
    - int AuthVer
    + DWORD Flags

  Flags added...
    enum ARCINFO_FLAGS
    {
      AF_AVPRESENT=1,
      AF_IGNOREERRORS=2
    };

FAR 1.40 beta 27.06.1997

First time the FAR Plugins API was mentioned:
"External DLL modules (plugins) can be used to implement new FAR commands and emulate file systems..."
ER> "As a matter of fact I started thinking about plugins after Lavrentiev
ER> asked me to create a version of FAR with Arvid support. He even invented
ER> (thank you very much) a good name for it - FARvid ;-) I didn't really
ER> want to develop such a version and so I decided to make available, to
ER> whomever was interested, the API that will be sufficient as to add such
ER> capability to FAR without my participation..."
The following items are available in this version:
  • Exported functions:
    ClosePlugin, Configure, DeleteFiles, ExitFAR, FreeFindData, FreeVirtualFindData, GetFiles, GetFindData, GetOpenPluginInfo, GetPluginInfo, GetVirtualFindData, MakeDirectory, OpenFilePlugin, OpenPlugin, ProcessEvent, ProcessHostFile, ProcessKey, PutFiles, SetDirectory, SetFindList, SetStartupInfo
  • Service functions:
    Control, Dialog, FreeDirList, GetDirList, GetMsg, GetPluginDirList, Menu, Message, RestoreScreen, SaveScreen
  • Structures
    FarDialogItem, FarMenuItem, InfoPanelLine, KeyBarTitles, OpenPluginInfo, PanelInfo, PanelMode, PanelRedrawInfo, PluginInfo, PluginPanelItem, PluginStartupInfo
  • Language and help files