Изменения API в сравнении с макроязыком

Far Manager Macro System

Изменения API в сравнении с макроязыком


  1. Все идентификаторы чувствительны к регистру символов.
  2. Вместо прямого указания клавиш используется функция Keys.
  3. $AKey –> Keys("AKey")
  4. $SelWord –> Keys("SelWord")
  5. $XLat –> Keys("XLat")
  6. $Exit –> exit()
  7. Логические свойства имеют тип boolean (поэтому нет смысла сравнивать их с числом 0).
  8. Функция prompt может возвращать либо стринг, либо false (но никогда не число 0).
  9. Многие функции помещены в таблицу mf (сокращение от macrofunctions), например: mf.abs, mf.fsplit и т.д.
  10. Функции Far.Window_Scroll, mf.beep, mf.fexist и Panel.SetPath возвращают булевое значение, а не число.
  11. Функции mload и msave изменились, см. их описание.
  12. Свойства, зависящие от контекста исполнения, находятся в таблице Object, например: Object.CurPos, Object.Empty.
  13. CheckHotkey -> Object.CheckHotkey
  14. GetHotkey -> Object.GetHotkey
  15. Логические свойства проверки области исполнения находятся в таблице Area, например: Area.Editor, Area.Shell.
  16. Macro.Area -> Area.Current.
  17. Dialog.AutoCompletion -> Area.DialogAutoCompletion
  18. Shell.AutoCompletion -> Area.ShellAutoCompletion
  19. CallPlugin –> Plugin.Call. Этот вызов – всегда асинхронный. Для синхронного вызова следует использовать Plugin.SyncCall.
  20. Функции Plugin.Exist, Plugin.Menu, Plugin.Config и Plugin.Command возвращают булевое значение.
  21. mmode(3,x) больше не влияет на синхронность/асинхронность вызовов плагинов из макроса; ничего не делает; возвращает 0.
  22. Dlg.Info.Id -> Dlg.Id
  23. Dlg.Info.Owner -> Dlg.Owner
  24. Far.Cfg.Get -> Far.Cfg_Get. Эта функция возвращает стринг в случае успеха или false в случае неудачи.
  25. Far.Cfg.Err больше не существует.
  26. FullScreen -> Far.FullScreen
  27. IsUserAdmin -> Far.IsUserAdmin
  28. History.Disable -> Far.DisableHistory
  29. KbdLayout -> Far.KbdLayout
  30. KeyBar.Show -> Far.KeyBar_Show
  31. Window.Scroll -> Far.Window_Scroll
  32. Menu.Info.Id -> Menu.Id
  33. MsX, MsY, MsButton, MsCtrlState, MsEventFlags — см. таблицу Mouse
  34. RCounter больше не существует.
  35. Macro.Const, Macro.Func, Macro.Keyword и Macro.Var больше не существуют.
  36. Спецификация макроса: флаг DisableOutput больше не существует; перерисовка экрана по умолчанию запрещена; добавлен флаг EnableOutput (применять его, если нужна перерисовка экрана во время исполнения макроса).
  37. Спецификация макроса: флаги Selection и NoSelection больше не применяются для областей редактора/вьювера/диалога. Для этих областей следует использовать соответственно EVSelection и NoEVSelection.
  38. Спецификация макроса: флаг RunAfterFARStart действует и при запуске Far Manager c ключом /e или /v. При этом будут запускаться только автостартующие макросы, поле area которых содержит соответственно Editor или Viewer.

См. также: Ограничения в использовании некоторых функций