| KaptainN 
 Newbie
 | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Скрипт для выделения htm-тега
 
 -----------------------------------------------
 -- html_seltag.html
 -----------------------------------------------
 -- Ввделяет тэг в html-файле
 -- Leonid, ICQ - 418-078-835
 -- version 1.0
 
 
 function SelectTag(tagOpen, tagClose, init)
 
 -- рекурсивная функция
 function ffen(start)
 local a,b = string.find(html, tagClose, start)
 -- если нет закрывающего тега
 if b == nil then
 _, b = string.find(html, '>', start)
 return a, b
 end
 
 local s = string.sub(html, start, b-1)
 local _s,_e = string.find(s,tagOpen)
 while _s ~= nil do
 a,b = ffen(b) -- рекурсия
 _s,_e = string.find(s, tagOpen, _e)
 end
 return a,b
 end
 
 -- ищу начало
 local st, a = string.find(html, tagOpen, init)
 -- ищу конец
 local _, en = ffen(a+1)
 return st-1, en
 end
 
 -- возвращает:
 --    открывающий тэг, закрывающий тэг, позицию начала поиска
 function GetTags()
 -- ищу начало тега
 local i = editor.CurrentPos
 while (1) do
 local ch = string.sub(html, i, i)
 if ch == '<' or i == 1 then break end
 i = i-1
 end
 
 -- ищу конец тега
 local j = i+1 --sel_start
 while (1) do
 local ch = string.sub(html, j, j)
 if ch == '>' or ch == ' ' or ch == 0 then break end
 j = j+1
 end
 
 local tag  = string.lower(string.sub(html, i+1, j-1))
 
 return '<'..tag, '</'..tag..'>', i
 end
 
 --==========================================
 
 html = string.lower(editor:GetText())
 
 if string.len(html)==0 then
 return 0,0
 end
 
 editor:SetSel( SelectTag(GetTags()) )
 
 |