mozers
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору В общем так: Взял оригинальный скрипт, поудалял там какие то циклы непонятно зачем нужные, добавил запрос на ввод, если ничего не выделено, ну и оформил по человечески. Файл FindText.lua: Код: -- FindText v2 -- Автор: неизвесен -- Источник: <http://forum.ruteam.ru/index.php?action=vthread&forum=22&topic=175> -- Небольшие корректировки: mozers™ icq#256106175 -- Поиск выделенного на странице текста с выводом содержащих его строк в консоль -- Для подключения добавьте в свой файл .properties следующие строки: -- command.name.22.*=Поиск текста -- command.22.*=dofile $(SciteDefaultHome)\tools\FindText.lua -- command.mode.22.*=subsystem:lua,savebefore:no ----------------------------------------------------------------------- local sText = editor:GetSelText() local flag = 0 ------------- начало блока ------------- -- Этот блок срабатывает, если Вы ничего не выделили -- и позволяет задать текст для поиска в диалоговом окне. -- Для работы необходимо установить библиотеку <http://total.altruistic.ru/temp/scite/luaext.zip> [222kB] -- В противном случае просто закомментируйте этот блок. if string.len(sText) == 0 then local Init = loadlib(props['SciteDefaultHome']..'\\tools\\luaext\\LuaWin.dll', 'Init') Init() local bFlag, repText = win.InputBox('Текст для поиска:','Найти') if bFlag then sText = repText end end ------------- конец блока ------------- output:ClearAll() if string.len(sText) > 0 then trace('> Поиск текста: "'..sText..'"\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'..str..'\n') m = l end s,e = editor:findtext(sText,flag,e+1) end trace('> Найдено: '..count..' вхождений\nДвойной щелчок на строке с результатом установит курсор на оригинальную строку') else trace('> Вхождений не найдено!') end else trace('> Сначала выделите в редакторе текст, который необходимо найти!') end | | Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 22:13 28-01-2006 | Исправлено: mozers, 13:52 31-01-2006 |
|