@@ -183,6 +183,7 @@ local function AddId (trg, src)
183183end
184184
185185local function EV_Handler (macros , filename , ...)
186+ if not macros then return end
186187 -- Get current priorities.
187188 local indexes ,priorities = {},{}
188189 for i ,m in ipairs (macros ) do
@@ -293,6 +294,10 @@ local function export_GetContentData (filename, colnames)
293294 return tOut
294295end
295296
297+ local function ProcessEvent (group , options , ...) -- todo
298+ return EV_Handler (Events [group :lower ()], options and options .filename , options , ... )
299+ end
300+
296301local ExpandKey do -- измеренное время исполнения на ключе "CtrlAltShiftF12" = ??? (Lua); 2.3uS (LuaJIT);
297302 local t = {}
298303
479484local AddEvent_fields = {" group" ," action" ," description" ," priority" ," condition" ," filemask" }
480485local function AddEvent (srctable , FileName )
481486 local group = type (srctable )== " table" and type (srctable .group )== " string" and srctable .group :lower ()
482- if not (group and Events [group ]) then return end
487+ if not group then return end
488+ Events [group ] = Events [group ] or {}
483489
484490 if type (srctable .action )~= " function" then return end
485491
@@ -710,7 +716,6 @@ local function LoadMacros (unload, paths)
710716
711717 local AreaNames = allAreas and AllAreaNames or SomeAreaNames
712718 for _ ,name in pairs (AreaNames ) do newAreas [name ]= {} end
713- for _ ,name in ipairs (EventGroups ) do Events [name ]= {} end
714719 for k in pairs (package.loaded ) do
715720 if initial_modules [k ]== nil and not package .nounload [k ] then
716721 package.loaded [k ]= nil
@@ -851,11 +856,11 @@ local function LoadMacros (unload, paths)
851856
852857 far .RecursiveSearch (DirMacros .. " internal" , " *.lua" , LoadRecordedFile , 0 )
853858
854- export .ExitFAR = Events .exitfar [ 1 ] and export_ExitFAR
855- export .ProcessDialogEvent = Events .dialogevent [ 1 ] and export_ProcessDialogEvent
856- export .ProcessEditorInput = Events .editorinput [ 1 ] and export_ProcessEditorInput
857- export .ProcessViewerEvent = Events .viewerevent [ 1 ] and export_ProcessViewerEvent
858- export .ProcessConsoleInput = Events .consoleinput [ 1 ] and export_ProcessConsoleInput
859+ export .ExitFAR = Events .exitfar and export_ExitFAR
860+ export .ProcessDialogEvent = Events .dialogevent and export_ProcessDialogEvent
861+ export .ProcessEditorInput = Events .editorinput and export_ProcessEditorInput
862+ export .ProcessViewerEvent = Events .viewerevent and export_ProcessViewerEvent
863+ export .ProcessConsoleInput = Events .consoleinput and export_ProcessConsoleInput
859864 if ContentColumns [1 ] then
860865 export .GetContentFields = export_GetContentFields
861866 export .GetContentData = export_GetContentData
@@ -1245,6 +1250,7 @@ return {
12451250 InitMacroSystem = InitMacroSystem ,
12461251 LoadingInProgress = function () return LoadingInProgress end ,
12471252 LoadMacros = LoadMacros ,
1253+ ProcessEvent = ProcessEvent ,
12481254 ProcessRecordedMacro = ProcessRecordedMacro ,
12491255 RunStartMacro = RunStartMacro ,
12501256 UnloadMacros = InitMacroSystem ,
0 commit comments