Список функций
Автор: Тугаринов Сергей / Дата: 23.04.2006 / Комментариев: 0
Категория: Скрипты, LUA
Снимок экрана результатов работы скрипта:
Собственно сам код скрипта:
Код LUA:
--[[ Скрипт выводит в консоль список функций LUA
--[[ Автор: Roman "Stinger" Ilyin grisper@voronezh.net
function KillSymbols (str1, symb_kill, symb_replace) -- заменяем подстроки
local str11 = str1
while string.find(str11,symb_kill) do
str11 = string.gsub(str11,symb_kill,symb_replace)
end
return str11
end
function KillSymbolsLeft (str1, symb_kill) -- удаляем слева символы
local str11 = str1
while (string.sub (str11,1,1)==symb_kill) and (string.len(str11)>1) do
str11 = string.sub(str11, 2)
end
return str11
end
function TrimString (sss)
local str1 = sss
str1 = KillSymbols (str1," "," ") -- удаляем двойные пробелы
str1 = string.gsub(str1,"_G "," ") -- удаляем _G
str1 = string.gsub(str1,"_G[[]","[") -- меняем _G[ на [
str1 = KillSymbolsLeft (str1, " ") -- удаляем пробелы слева
local bool_tochka = false
-- удаляем запятую в начале строки, выставляя переменную при этом
while (string.sub (str1,1,1)==",") and (string.len(str1)>1) do
str1 = string.sub(str1, 2)
bool_tochka = true
end
str1 = KillSymbolsLeft (str1, " ") -- удаляем пробелы слева
-- Q.MyFunc(self, args) --> Q:MyFunc(args)
if string.find(str1,"self")
then
str1 = KillSymbols (str1,"self ","self") -- удаляем пробелы после self
str1 = KillSymbols (str1,"self,","self") -- удаляем запятую после self
str1 = KillSymbols (str1,"self","") -- удаляем self
str1 = KillSymbols (str1," "," ") -- удаляем двойные пробелы
str1 = KillSymbols (str1,"[(] ","(") -- удаляем пробелы после скобки
str1 = KillSymbols (str1," [)]",")") -- удаляем пробелы перед скобки
str1 = KillSymbols (str1," "," ") -- удаляем двойные пробелы
str1="self:"..str1
else
if bool_tochka then str1 = "."..str1 end
end
str1 = KillSymbolsLeft (str1, " ") -- удаляем пробелы слева
return str1
end
function SkipSubStrings (ss) -- удаляем
skip_table = {"function", "="} -- табличка строк которые удаляем
local ss1 = ss
for index,value in pairs (skip_table) do
ss1 = string.gsub(ss1,value," ")
end
ss1 = TrimString (ss1)
return ss1
end
local sText = "function"
local flag = 0
output:ClearAll()
trace("> Список функций: \n")
local s,e = editor:findtext(sText,flag,0)
local count = 0
if(s~=nil)
then
local m = editor:LineFromPosition(s) - 1
while s do
local l = editor:LineFromPosition(s)
if (l ~= m)
then
count = count + 1
local str = string.gsub(" "..editor:GetLine(l),"%s+"," ")
trace(":"..(l + 1)..":\t"..SkipSubStrings(str).."\n")
m = l
end
s,e = editor:findtext(sText,flag,e+1)
end
trace("> Найдено: "..count.." функций\n
Двойной щелчок на строке с результатом\nустановит курсор на оригинальную строку\n")
else
trace("> Функций не найдено!")
end
Для подключения скрипта необходимо его сохранить в директорию $(SciteDefaultHome)\tools\ и в конфигурационный файл добавить следующие строки:
Код .SciTEUser.properties:
command.name.23.*=Список функций
command.23.*=dofile $(SciteDefaultHome)\\tools\\FuncListTBM.lua
command.mode.23.*=subsystem:lua,savebefore:noЕсли вы хотите видеть в контекстном меню пункт "Список функций", то пропишите следующие команды:
Код SciTEGlobal.properties:
user.context.menu=\
||\
... {ваши контекстные команды}
Список функций|1123|23 - номер скрипта
Автор скрипта: Grisper
Ресурсы:
Комментариев: 0 (rss)

