сделать стартовой  |  добавить в избранное

   SciTE - редактор кода для программистов

Список функций


Автор: Тугаринов Сергей / Дата: 23.04.2006 / Комментариев: 0
Категория: Скрипты, LUA


Скрипт ищет в коде все строки где встречается слово function и после генерации списка, позволяет быстро перейти на нужную строчку. Так же скрипт производит косметическую обработку найденных строк.
Снимок экрана результатов работы скрипта:

Список функций


Собственно сам код скрипта:

Код 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


Ресурсы:

  • Скрипт "Список функций" в zip архиве ~ 1,17 Kb

  • Снимок экрана
  • Версия для печати / Прочитано: 13312 раз(а)

    Комментариев: 0 (rss)



    Добавить комментарий:
    Имя:
    E-mail:
            BBCodes




    Интересные статьи / Тематические материалы © 2004 - 2017 - Хранение данных