mozers
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые! Вопрос на засыпку: Код: command.name.3.*=CurrentSelection - CurrentWord command.3.*=dostring print('CurrentSelection: /'..props['CurrentSelection']..'/\n CurrentWord: /'..props['CurrentWord']..'/') command.mode.3.*=subsystem:lua,savebefore:no | Непонятное что то творится с этим CurrentWord. Во-первых он, если текст выделен то всегда приравнивается к CurrentSelection Во-вторых, если текст не выделен, то CurrentWord не видит русские слова во всех файлах кроме *.lua. Искал, искал,.. да так и не нашел как сделать так чтобы CurrentWord русские слова не только в файлах *.lua видел. Еще вопрос - предложение к творчеству: В хорошо известном вам скрипте FindText.lua (лично я им пользуюсь гораздо чаще чем стандартным поиском) для отметки найденных вхождений и снятия отметок используется такая процедура: Код: local function UnderlineText(start, length) editor:StartStyling(start,INDICS_MASK) if length == -1 then editor:SetStyling(editor.Length, 0) else editor:SetStyling(length,INDIC2_MASK) end end | Процедура эта, как показала жизнь, не слишком корректно работает на смешанных файлах (например html с js скриптами внутри). Оригинальный поиск тут берет верх и не путает цвета, как этот скрипт. В общем, ждем, пока кто то умный не поправит это дело Добавлено: Еще раз пробежался по пропертям и нашел таки почему CurrentWord не всегда видел русские слова. Надо было просто откорректировать строчку в SciTEGlobal.properties: Код: word.characters.*=$(chars.alpha)$(chars.numeric)$(chars.accented)_-% | Теперь можно легко расширить функционал FindText.lua, добавив в начало: Код: local sText = props['CurrentSelection'] local flag = 0 if (sText == '') then sText = props['CurrentWord'] flag = SCFIND_WHOLEWORD end | Теперь если текст выделен, то ищется этот текст. Если ничего не выделено - ищется слово под курсором. Очень удобно искать переменные. Раньше то в результаты попадали и слова, содержащие буквы переменной. А вот с подсветкой дело обстоит хуже Стандартный поиск SciTE попросту не снимает выделение со слов, найденных в предыдущем поиске (лично мне это жутко не нравится). Скрипт пытается это сделать, выполняяя команду Код: editor:SetStyling(editor.Length, 0) | которая не всегда отрабатывает лучшим образом. Заменить бы ее на другую, более корректную... И еще один недостаток этого скрипта, который я никак не могу поправить: Если после окончания поиска нажать F3 то вместо ожидаемого перехода по найденным вхождениям, появляется диалог стандартного поиска Дальше то - нормально, на как бы совсем обойтись без появления этого диалога? | Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 18:45 26-11-2006 | Исправлено: mozers, 19:36 26-11-2006 |
|