mozers
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Театр одного актера продолжает свою работу. Файл HELP.JS Код: // ----------------------------------------------------------------------- // SciTE Help Context // mozers™ icq#256106175 // ----------------------------------------------------------------------- // Вызывает справку по SciTE // Подсвечивает все вхождения выделенного текста и позиционирует справку на первое найденное вхождение // Для подключеня добавьте в свой файл .properties следующие строки: // command.name.31.*=SciTE Help // command.31.*=wscript "$(SciteDefaultHome)\tools\help.js" "$(SciteDefaultHome)\doc\SciTEDoc.html" "$(CurrentSelection)" // command.subsystem.31.*=2 // command.shortcut.31.*=F1 // command.mode.31.*=savebefore:no // ----------------------------------------------------------------------- var Args = WScript.Arguments; var objIE = new ActiveXObject('InternetExplorer.Application'); objIE.MenuBar = 0; objIE.ToolBar = 0; objIE.StatusBar = 0; objIE.Navigate (Args(0)); objIE.Visible = 1; if (Args(1)) { var r=objIE.document.body.createTextRange(); for(var i=0;r.findText(Args(1));i++){ r.execCommand('BackColor','','yellow'); r.execCommand('CreateBookmark','','bmk'+i); r.collapse(false); } if (i==0){ WScript.Echo ('Текст не найден !'); } else { objIE.document.location.href=objIE.document.location.href+'#bmk0'; } } | Добавлено: Вот еще кусок из моего SciTEStartup.lua: Код: -- ====================================================== -- Перевести в ВЕРХНИЙ (Ctrl+Shift+U) и нижний регистр (Ctrl+U) -- (т.к. встроенная функция не понимает кириллицу) -- За основу был взят скрипт, взятый на http://scite.ruteam.ru function InvertCase(case) local str = editor:GetSelText() local res = '' if str ~= nil then for i = 1, string.len(str) do local strS = string.sub(str,i,i) local strB = string.byte(strS,1) if case == 'L' and (strB > 191 and strB < 224) then --// [А-Я] res = res..string.char(strB + 32) elseif case == 'U' and (strB > 223 and strB <= 255) then --// [а-я] res = res..string.char(strB - 32) elseif case == 'L' and (strB > 64 and strB < 91) then --// [A-Z] res = res..string.lower(strS) elseif case == 'U' and (strB > 96 and strB < 123) then --// [a-z] res = res..string.upper(strS) else res = res..strS end end end editor:ReplaceSel(res) end -- ====================================================== -- Функция для быстрого добавления команд в меню Tools -- (Для тех, кому лень вручную прописывать 5 строк для каждой команды в .properties) function ToolsCommand(idx,name,cmd,shortcut) local which = '.'..idx..'.*' props['command.name'..which] = name props['command'..which] = cmd props['command.subsystem'..which] = '3' props['command.mode'..which] = 'savebefore:no' props['command.shortcut'..which] = shortcut end -- а теперь добавляем нужные нам команды в меню Tools ToolsCommand (11,'Перевести в ВЕРХНИЙ регистр','InvertCase U','Ctrl+Shift+U') ToolsCommand (12,'Перевести в нижний регистр','InvertCase L','Ctrl+U') ToolsCommand (38,'Увеличить шрифт','Zoom_In','Ctrl+KeypadPlus') ToolsCommand (39,'Уменьшить шрифт','Zoom_Out','Ctrl+KeypadMinus') -- ====================================================== -- Увы, но я не нашел другого способа, чтобы вызвать встроенные команды SciTE -- поэтому приходится вызывать встроенные команды из LUA скрипта -- Зачем это надо? Ну хотя бы затем, что этих команд просто нет в меню и поместить их туда можно, чтобы напомнить пользователю шорткаты для их вызова. -- Кроме того, так можно задать другой шорткат для вызова команды или изменить ее поведение. function Zoom_In() editor:ZoomIn() end function Zoom_Out() editor:ZoomOut() end | |