function fill_list_func() list_func:clear() local findRegExp = { ['cxx']="([^.,<>=\n]-[ :][^.,<>=\n%s]+[(][^.<>=)]-[)])[%s\/}]-%b{}", ['c']="([^.,<>=\n]-[ :][^.,<>=\n%s]+[(][^.<>=)]-[)])[%s\/}]-%b{}", ['h']="([^.,<>=\n]-[ :][^.,<>=\n%s]+[(][^.<>=)]-[)])[%s\/}]-%b{}", ['js']="(\n[^,<>\n]-function[^(]-%b())[^{]-%b{}", ['vbs']="(\n[SsFf][Uu][BbNn][^\r]-)\r", ['css']="([%w.#-_]+)[%s}]-%b{}", ['pas']="\n[pPfF][rRuU][oOnN][cC][eEtT][dDiI][uUoO][rRnN].(.-%b().-)\n", ['py']="\n%s-([dc][el][fa]%s-.-):" } local findRegExp1 = { cpp="([^.,<>=\n]-[ :][^.,<>=\n%s]+[(][^.<>=)]-[)])[%s\/}]-%b{}", js="(\n[^,<>\n]-function[^(]-%b())[^{]-%b{}", vb="(\n[Public ]*[Private ]*[SsFfP][Uur][BbNno][^\r]-)\r", vbscript="(\n[SsFf][Uu][BbNn][^\r]-)\r", css="([%w.#-_]+)[%s}]-%b{}", pascal="\n[pPfF][rRuU][oOnN][cC][eEtT][dDiI][uUoO][rRnN].(.-%b().-)\n", python="\n%s-([dc][el][fa]%s-.-):" } local findPattern = findRegExp [props["FileExt"]] if findPattern == nil then local findPattern = findRegExp1 [editor.LexerLanguage] if findPattern == nil then findPattern = "\n[local ]*[SsFf][Uu][BbNn][^ .]* ([^(]*%b())" end end local textAll = editor:GetText() local startPos, endPos, findString startPos = 1 while true do startPos, endPos, findString = string.find(textAll, findPattern, startPos) if startPos == nil then break end findString = findString:gsub("[\r\n]", ""):gsub("%s+", " ") local line_number = editor:LineFromPosition(startPos) list_func:add_item(findString, line_number) startPos = endPos + 1 end end |