Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » SciTE - Open Source Text Editor for Windows & Linux

Модерирует : gyra, Maz

Widok (09-10-2007 14:48): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

   

Spab



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

A free source code editor for Win32 and X
Русскоязычный форум поддержки

  • Один из самых настраиваемых текстовых редакторов из ныне существующих. Настраивается практически все.
  • Индивидуальная подсветка для разных языков програмирования, фолдинг для классов, функций и структур, авто-дополнение, и т.д. и т.п. ...
     
  • Scite-interest -- Discussion of the SciTE editor
  • Русский сайт SciTE (документация, FAQ, снимки экрана, утилиты, скрипты и т.д. и т.п....)
  • Мечта кодера. статья
  • Burgaud.com - US.SciTE
  • SciTE: Scintilla Text Editor with Extensions
  • Filerx, SideWinder
  • ......
     
       
  • Project file releases
  • Project summary (including basic statistics)
  • Новости со SciTE.ru
     
    Последняя версия редактора - SciTE 1.74
     
    SciTE 1.74 .52Ru-Board Edition [Сборка 20.09.2007]
    Oписание: сборки ядра  
     
    Дружественная тема: Доработка исходного кода и компилирование сборки Ru-Board Edition
     
    Нерешенные задачи и вопросы ( Для умных и талантливых форумчан )
     
    P.S. Если вы используете SciTE для своих нужд, таких как: написание HTML, CSS, Java Script, PHP и др. кода для сайта, или просто вам нравится этот редактор, поставьте пожалуйста ссылку или баннер на сайт - http://scite.ruteam.ru, благодаря этому у сайта повышается индекс цитирования, соответственно увеличивается количество пользователей редактора.

  • Всего записей: 64 | Зарегистр. 02-09-2001 | Отправлено: 03:05 04-06-2002 | Исправлено: mozers, 13:45 04-10-2007
    codewarlock1101



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers

    Цитата:
    Неа. Не работает. Ты бы хоть проверил перед публикацией...

    Я в шоке! Он - работает. И объясню почему.При перехвате IDM_MONOFONT вызывается функция смены шрифта, после которой посылается эта же IDM_MONOFONT (только в таком режиме чтобы не вызывался еще раз FontChange() и не было бесконечной рекурсии). При этом мы не возвращаем из перегруженной функции true, чтобы выполнилась реальная IDM_MONOFONT из ядра.
    Короче:
    1. Меняем шриф
    2. IDM_MONOFONT
    3. IDM_MONOFONT
    Вызовы 2 и 3 взаимо поглощаемые - (то есть запуск этой функции 2 раза возвращает фонт в первоначальное состояние (которое было в момент (1) ), и так как при IDM_MONOFONT скайт запускает перерисовку мы видим изменения фонта!)

    Цитата:
    Единственное, что действительно принимается - это идея с nxt_font. Вот - действительно рабочий и проверенный вариант: Подробнее...  

    Твой рабочий и проверенный вариант - не работает, если открыт один файл! Ну не может скрипт переключить буфер, если файл один!
     
     
    Добавлено:
    Mozers! Багу может ты и прибил, только теперь фон назад не меняется когда из ReadOnly возвращаешься!

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 10:26 09-11-2006
    vladvro



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    codewarlock1101 и всем

    Цитата:
    Если можешь - дай пожалуйста объяснения на примере.
    1) Что значит на "выходе ожидают"???  

    согласен, неточная формулировка попробую переформулировать:
     
    "SciTE на выходе от всех обработчиков кроме OnSendEditor ожидает булевское значение handled, и если оно равно true, то если в SciTE заложена дальнейшая обработка события - она не делается,
    причем nil, которое возвращается по умолчанию, приравнивается к false,
    в случае с OnSendEditor - SciTE на выходе ожидает текстовое значение, и если оно не NULL, то тогда событие не отправляется далее на обработку к ядру Scitilla, а возвращается полученый от обработчика результат,
    причем нюанс нынешней реализации состоит в том, что в NULL превращается не только nil, но и булевские значения (false и true)"

     
    пример стандартного обработчика:

    Код:
    local old_OnMenuCommand = OnMenuCommand
    function OnMenuCommand (msg, source)
        local result
        -- вызов исходного обработчика если он был  
        if old_OnMenuCommand then result = old_OnMenuCommand(msg, source) end
        if MyFunction() then return true end
        return result
    end

    важно: мы возвращием true только, если нам требуется отменить стандартную реакцию SciTE на команду меню, иначе мы возвращаем то, что вернул исходный обработчик, либо nil, если его не было.
     
    пример для OnSendEditor:

    Код:
    local old_OnSendEditor = OnSendEditor
    function OnSendEditor (msg, wp, lp)
        local result
        -- вызов исходного обработчика если он был  
        if old_OnSendEditor then result = old_OnSendEditor (msg, wp, lp) end
        if msg == SCI_UPPERCASE then
            ChangeCase("U")
            return ""
        elseif msg == SCI_LOWERCASE then
            ChangeCase("L")
            return ""
        end
        return result
    end

    важно: для отмены стандартной функции замены, надо вернуть что-либо отличное от nil, true или false, например пустую строку.

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 11:47 09-11-2006 | Исправлено: vladvro, 11:58 09-11-2006
    codewarlock1101



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vladvro
    Спасибо! Очень познавательно!
    Еще несколько вопросов:  
    Допусти у нас два (или больше) своих обработчика на одну команду + стандартный обработчик SciTE.
    1) Какая будет последовательность выполнения "наших"?
    2) Схема, описанная тобой говорит о том, что ВСЕ "наши" обработчки отработают, и при этом, если хотя бы один из них вернет true то стандартный обработчик глушится, я правильно понял?

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 12:07 09-11-2006
    vladvro



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    codewarlock1101

    Цитата:
    Вызовы 2 и 3 взаимо поглощаемые - (то есть запуск этой функции 2 раза возвращает фонт в первоначальное состояние (которое было в момент (1) ), и так как при IDM_MONOFONT скайт запускает перерисовку мы видим изменения фонта!)  

    проблема состоит в том, что помимо перерисовки, SciTE при этом еще и перезачитывает фонты из конфига (вызов функции ReadFontProperties)
     

    Цитата:
    Допусти у нас два (или больше) своих обработчика на одну команду + стандартный обработчик SciTE.
    1) Какая будет последовательность выполнения "наших"?
    2) Схема, описанная тобой говорит о том, что ВСЕ "наши" обработчки отработают, и при этом, если хотя бы один из них вернет true то стандартный обработчик глушится, я правильно понял?

    1) "наши" будут выполнятся по типу: первым был загружен в редактор (первый в файле SciTEStartup.lua), первым и выполнится (хотя вызван будет последним, но в силу построения обратчика, первым отрабатывает исходный).
    2) абсолютно правильно. только в каждом случае важно знать, что именно в SciTE заложенно в качестве стандартного обработчика.

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 12:14 09-11-2006 | Исправлено: vladvro, 12:29 09-11-2006
    codewarlock1101



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vladvro

    Цитата:
    проблема состоит в том, что помимо перерисовки, SciTE при этом еще и перезачитывает фонты из конфига (вызов функции ReadFontProperties)

    Разве это пробелма? - это наоборот нам на руку, так как и надо перечитать фонты которые мы подменили.... Или я не прав?
     
    Спасибо за ответы.

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 12:38 09-11-2006
    vladvro



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    codewarlock1101

    Цитата:
    Разве это пробелма? - это наоборот нам на руку, так как и надо перечитать фонты которые мы подменили.... Или я не прав?

    прав
    точно, именно это нам и надо, согласен с твоим вариантом.

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 13:23 09-11-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    codewarlock1101 vladvro
    Если я вас правильно понял, то оба решения по подмене встроенных обработчиков своими скриптами вполне рабочие.
    Более универсален вариант vladvro, но в рассматриваемом случае удобнее использовать вариант codewarlock1101.
    Все правильно изложил?

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 16:31 09-11-2006
    vladvro



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers

    Цитата:
    Если я вас правильно понял, то оба решения по подмене встроенных обработчиков своими скриптами вполне рабочие.
    Более универсален вариант vladvro, но в рассматриваемом случае удобнее использовать вариант codewarlock1101.
    Все правильно изложил?

    м... думаю что нет ты немного напутал. я писал правило как надо делать обработчики и что при этом надо учитывать, а не решение конкретной задачи. а вот ты и codewarlock1101
    предлагали конкретное решение для смены шрифтов. так вот из этих решений более правильное предложил codewarlock1101, в чем я с ним и согласился

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 17:08 09-11-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vladvro Говоря, про твое решение я имел в виду это:
    Код:
    local old_OnEvent = OnEvent
    function OnEvent (param1, param2)
        local result
        if old_OnEvent then result = old_OnEvent(param1, param2) end
            if My_Function() then return true end
        return result
    end

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 19:00 09-11-2006
    vladvro



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    всем
    никогда не пользовал функционал сокращений (аббревиатур) в SciTE, а тут решил попробовать,
    и первое что обнаружил - это то, что при вставке сокращения остается поле %SEL%, это так и задумывалось или это баг?
    и второе - так и не понял, а как же можно задействовать это поле %SEL%?
     
    mozers

    Цитата:
    Говоря, про твое решение я имел в виду это:
    Код:
    local old_OnEvent = OnEvent
    function OnEvent (param1, param2)
        local result
        if old_OnEvent then result = old_OnEvent(param1, param2) end
            if My_Function() then return true end
        return result
    end

    я бы назвал это схемой, и мне кажется, что решение от codewarlock1101 вполне укладывается в эту схему,
    либо я так и не понял, что же ты хотел сказать

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 13:12 10-11-2006
    codewarlock1101



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vladvro
    задействовать можно так:
    это в файле abbrev
    ++=%SEL%:=%SEL%+1
     
    потом в скайте:
    ++privet
     
    privet выделяешь (главная тонкость - чтобы после выделения курсор находился в начале (то есть надо выделять справа налево), жмешь раскрыть аббреаивтуру - и у тебя получается
    privet:=privet+1.
     
    А ты наверное аббревиатуру вставляешь через окошко - там этой функции нету... не помню кто делал.... В общем, мульки доступны только в режиме Ctrl+B (то бишь IDM_ABBREV) и не доступны в режиме Ctrl+Shift+R (IDM_INS_ABBREV)

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 14:14 10-11-2006
    vladvro



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    codewarlock1101

    Цитата:
    privet выделяешь (главная тонкость - чтобы после выделения курсор находился в начале (то есть надо выделять справа налево), жмешь раскрыть аббреаивтуру - и у тебя получается
    privet:=privet+1.
     
    А ты наверное аббревиатуру вставляешь через окошко - там этой функции нету... не помню кто делал.... В общем, мульки доступны только в режиме Ctrl+B (то бишь IDM_ABBREV) и не доступны в режиме Ctrl+Shift+R (IDM_INS_ABBREV)  

    вот до этой "тонкости" я сам и не додумался, теперь понятно, спасибо
    и конечно я сперва попробовал режим вставки (IDM_INS_ABBREV), и мне он показался даже удобнее...
    а делал это mimir, а сейчас куда-то пропал, вобщем получается, что кто бы довел начатое до ума...

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 15:23 10-11-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновил сборку.
    Исправлены все ошибки на которые тыкнули носом и которые нашел сам.
    СПАСИБО codewarlock1101 и LEX1 за усовершенствованные варианты скриптов и всем примавшим участие за советы и подсказки
     
    Обновил список Нерешенные задачи и вопросы
    Благодаря усилиям наших программистов он стал значительно меньше
    Может добавим пожеланий ?
     
    vladvro codewarlock1101
    Цитата:
    доступны только в режиме Ctrl+B (то бишь IDM_ABBREV) и не доступны в режиме Ctrl+Shift+R (IDM_INS_ABBREV)
    Да. Об этом в SciTE.Ru_kernel_changes написано. Дико раздражает, поскольку я Ctrl+B почти не пользуюсь (чаще - Ctrl+Shift+R)

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 15:39 10-11-2006
    codewarlock1101



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Если кто вдруг пользуется для работы TotalCommander'ом, то существует чудесный wlx-плагин, который в Lister'е раскрашивает фалы в соответствии с настройками скайта.
    Плагин можно забрать тут:
    http://wincmd.ru/plugring/SciLister.html
     
    Он старенький, и у него маленькая бяка - он не знает параметр caret.line.back.alpha, поэтому отображает "как есть" caret.line.back. А это напрягает.
    Например мои настройки:
     
      caret.line.back=#0000FF
      caret.line.back.alpha=15
     
    кои в Скайте отображаются прияным, еле заметным фиолетовым в листере становятся ядовито-синим, что портит всю малину.  
    Поэтому на всякий случай даю лекарство:
    Пропатчить файл SciLister.wlx (по указанному смещению заменить PLAT_WINNT):
    [0x32238]=SCI_LISTER
    После этого можно в SciteGlobal.properties написать (после оригинального caret.line.back):
     
    caret.line.back=#0000FF
    if SCI_LISTER
      caret.line.back=#DCE6FF
    endif
    Это будет переопределять цвет для плагина

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 16:51 10-11-2006
    vladvro



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers

    Цитата:
    Об этом в SciTE.Ru_kernel_changes написано.

    точно, написанно... надо будет внимательнее читать...
     
    а "тонкость" с позицией курсора можно подправить, заменив на позицию начала выделения:
    в файле SciTEBase.cxx меняем
        int currentPos = GetCaretInLine();
        int position = SendEditor(SCI_GETCURRENTPOS); // from the beginning
    на
        int position = SendEditor(SCI_GETSELECTIONSTART); // from the beginning
        int line = SendEditor(SCI_LINEFROMPOSITION, position);
        int lineStart = SendEditor(SCI_POSITIONFROMLINE, line);
        int currentPos = position - lineStart;

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 17:08 10-11-2006
    codewarlock1101



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vladvro
    а если ничего не выделено, совпадают ли эти величины (дожны совпадать, но лучше перестраховаться вопросом )?
     
    SendEditor(SCI_GETCURRENTPOS)==SendEditor(SCI_GETSELECTIONSTART)
     
    Если да - то это хорошо. В противном случае - нехорошо.

    Всего записей: 92 | Зарегистр. 12-03-2005 | Отправлено: 17:36 10-11-2006 | Исправлено: codewarlock1101, 17:36 10-11-2006
    vladvro



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    codewarlock1101

    Цитата:
    а если ничего не выделено, совпадают ли эти величины (дожны совпадать, но лучше перестраховаться вопросом )?  

    да они совпадают (проверено по коду)

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 19:42 10-11-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    codewarlock1101
    Цитата:
    Если кто вдруг пользуется для работы TotalCommander'ом, то существует чудесный wlx-плагин

    Честно говоря, автору руки бы отбить за этот плагин, да только он сгинул куда то насовсем... Не только курсор, а и шрифты плагин уродует. Почему - непонятно. А дело то - элементарное - вызвать SciTE из Тотала с указанием любых нужных параметров.
    Я вот сляпал на скорую руку JS скрипт и вызываю его из Тотала по Alt+F3:
    Код:
    var filename = WScript.Arguments(0).replace(/\\/g,"\\\\");
    var WshShell = WScript.CreateObject("WScript.Shell");
    WshShell.Run('"G:\\Program Files\\SciTE\\SciTE.exe" -open:'+filename+' -property:user.shortcuts=Escape|IDM_QUIT| -property:save.recent=0 -property:save.session=0 -menucommand:416 -menucommand:408',1);
    Вот только выделенная строчка значение user.shortcuts меняет (проверено), но шорткат почему то не работает

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 01:51 11-11-2006
    Linch



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нашел шрифт для себя удобный называется Triskweline и пытаюсь заменить шрифт тот что в сборке на него. Меняю тут:

    Код:
     
      # Вторая подборка шрифтов - proportional (заменяет 1й набор после нажатия на Ctrl+F11)
      font.1.base=font:Triskweline,size:10
      font.1.small=font:Triskweline,size:10
      font.1.comment=font:Triskweline,size:9
     

    Но почему то он отображается не так как должен, может я что то не так делаю?
    http://www.netalive.org/tinkering/triskweline/shot.gif - примерно вот так вот он должен отображаться.

    Всего записей: 470 | Зарегистр. 24-07-2001 | Отправлено: 03:00 11-11-2006
    unreal666



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Linch

    Цитата:
    Но почему то он отображается не так как должен,
    ...
    примерно вот так вот он должен отображаться.

    А как отображается ?
     
     
    Добавлено:
    Не поделишься этим шрифтом ?

    ----------
    MSI PRO B650-P WIFI / Ryzen 5 7600X / RAM 32Gib / 4 HDD = 10Tib + 1 NVME 2Tib / Radeon RX 560 2Gib / Win 10 x64 // POB, PVD

    Всего записей: 6637 | Зарегистр. 14-02-2005 | Отправлено: 06:26 11-11-2006 | Исправлено: unreal666, 06:27 11-11-2006
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

    Компьютерный форум Ru.Board » Компьютеры » Программы » SciTE - Open Source Text Editor for Windows & Linux
    Widok (09-10-2007 14:48): лимит страниц. продолжаем здесь


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru