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()) ) |