-- TIME_STAMP 2021-11-24 17:18:17 v 0.1 local tAU3Help = {} do tAU3Help.pattFunc = '([Ff][Uu][Nn][Cc]%s+[%w_]+%s-%b())' tAU3Help.pattFuncName = '([Ff][Uu][Nn][Cc]%s+)([%w_]+)(%s-%b())' tAU3Help.t_names = {} tAU3Help.GetItemHelp = function(self, _item) local prefix = _item:match('^(_%w+_)') if prefix ~= nil then if self:Extract(prefix) then if self.t_names[_item:upper()] then self:CallHelp(prefix, _item) return end end end self:CallHelp('AU3', _item) end tAU3Help.Extract = function(self, _prefix) self.t_names = {} local e, func, fname, s, a = 1, '', '' local fh = io.open(props['udf.path.'.._prefix:upper()]) if fh == nil then return false end s = fh:read('*a') fh:close() while e do a, e, func = s:find(self.pattFunc , e) if a then _, _, _, fname = func:find(self.pattFuncName) if fname:sub(1, _prefix:len()):upper() == _prefix:upper() then self.t_names[fname:upper()] = true end end end return true end tAU3Help.CallHelp = function(self, _prefix, _item) local path, cmd = props['chm.path.'.._prefix:upper()] if _prefix == 'AU3' then cmd = '\""'..props['autoit3dir']..'\\Autoit3Help.exe" "'.._item..'"\"' else cmd = 'start /B hh.exe mk:@MSITStore:'..path..'::/funcs/'.._item..'.htm' end os.execute(cmd) end end tAU3Help:GetItemHelp(props['CurrentWord'])