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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Moon_aka_Sun



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

    Цитата:
    Ты не против?
    Да чего ж возражать?
     
    Я ещё придумал, как можно запрашивать ввод от пользователя - через виндовс скрипт. Таким примерно макаром

    Всего записей: 60 | Зарегистр. 20-04-2005 | Отправлено: 00:48 15-09-2006 | Исправлено: Moon_aka_Sun, 00:53 15-09-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Moon_aka_Sun
    Думал я о таком способе... Если HTA пользовать, то не только InputBox, а вообще любую форму ввода можно выводить. Только способ передачи данных из формы в скрипт с помощью временного файла мне не нравится. С помощью COM-сервера все делается более элегануто

    Цитата:
    os.execute вываливает консольное окно и легко это не побороть
    Ага, противная вещь. Достало не только тебя. Тут группа товарищей придумала метод io.popen (cmd) который выполняет команду без этого окна. Я пытался использовать этот код да что то не получилось Глянь - может у тебя получится? (Посмотри личный ящик)

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сборка Мишеля Форала
    mirk уже как то восхищался этим чудом...
    Так вот я взял Offline Explorer и тупо выкачал все файло с его SVN Репозитария.
    Потом разделил на 2 части и запаковал RAR-ом.
    Получились исходники и откомпилированный пакет.
    Над кодом Мишель поиздевался немало. Есть весьма интересные решения.
    Думаю что некоторые из его ходов будут использованы нашими специалистами

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 17:24 15-09-2006
    Moon_aka_Sun



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

    Цитата:
    io.popen (cmd)
    Да, через попен лучше должно быть. Или длл прикрутить (в Луа 5.1 у меня это работает, в 5.0.2, который в SciTE - нет). Или Луу саму модифицировать

    Всего записей: 60 | Зарегистр. 20-04-2005 | Отправлено: 00:17 16-09-2006
    vladvro



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

    Цитата:
    Очень бы хотелось задать несколько вопросов...
    (В форуме это было бы удобнее

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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vladvro
    Во-первых - поздравляю с регистрацией!
    Не Скайтом единым жив человек и когда понадобится тебе найти свежую версию какой то софтины (со всеми делами, конечно) или получить толковую консультацию по какой то важной теме то ты поймешь что Ru-Board - самый толковый форум в рунете. Такого обилия совершенно уникальной информации нет нигде.  
     
    Теперь что касается единственного топика по SciTE.
    Попытки сделать большой и ветвистый форум предпринимались не раз. Mirk и сейчас подумывает об этом.
    Лично я - против. Во-первых, нас (не тех, кто качает, а кто делает и обсуждает) - слишком мало.
    Во-вторых здесь все обсуждаемые темы на виду, а не разбросаны по тредам и "держать руку на пульсе" гораздо проще. Ну а почтовое оповещение с полным текстом всех сообщений - это вообще - песня
     
    Теперь - о тебе
    Очень хотелось увидеть здесь, в нашем сборочном цеху, еще одного умного человека. Просто порой бывает очень сложно найти ответ на тот или иной вопрос... Если мы будем держаться вместе, то мы сможем решать такие задачи.
    Народ! Это - тот гений, что запустил таки макросы в SciTE! Сколько разговоров было, только вот сделал - только он
    Может быть тебя заинтересуют какие то из еще нерешенных вопросов? (в шапке)
     
    А насчет макросов я, честно говоря, до конца не въехал...
    Где же они хранятся? С именами - ясно, а сами команды? Можно ли их выудить из памяти и записать в файл?

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



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

    Цитата:
    Есть в SciTE переменная, содержащая имя активного в данный момент лексера?  
    Хочу добавить отображение активного лексера в строку состояния.

    Ты дал код какой-то функции GetLexerName() .
    И что мне с ней делать? Как сделать, чтобы в строке состояния показывался текущий лексер (тот код вставил в SciTEStartup.lua)?

    ----------
    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 | Отправлено: 21:41 19-09-2006
    Jus

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сборка Moon_aka_Sun порадовала тем что нормально работает calltips (проверял при работе со скриптами Python) в отличии от SciTE 1.70 Ru-Board Edition где список подсказок почему-то не появляется после ввода точки и его приходится специально вызывать по Ctrl+Space. А также большое спасибо Moon_aka_Sun за достаточно полный python.api
    Пробовал просто скопировать python.api из сборки Moon_aka_Sun в Ru-Board Edition - результат не важный - не все подсказки из файла python.api попадают в список (например sys.api_version).
     
    Подскажите как подлечить эти проблемки в Ru-Board Edition?

    Всего записей: 18 | Зарегистр. 30-04-2003 | Отправлено: 12:06 20-09-2006 | Исправлено: Jus, 12:07 20-09-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    unreal666
    Цитата:
    И что мне с ней делать?
    Вставить ее вызов в стандартный эвент, например так:
    Код:
    function OnUpdateUI()
      props["lexer.name"] = GetLexerName()
    end
    Т.е. теперь, при наступлении события OnUpdateUI значение переменной lexer.name будет изменятся в соответствии с текущим лексером.
    Ну а чтобы увидеть это значение в строке состояния надо добавить эту переменную в него:
    Код:
    statusbar.text.1=\
    Строка: $(LineNumber) Колонка: $(ColumnNumber)\
      |  Выделено: $(SelHeight) строк, $(SelLength) байт\
      |  [$(OverType)]\
      |  [$(font.current.size)px]\
      |  [$(code.page.name)]\
      |  [$(lexer.name)]
     
    Я вообще думал что сам догадаешся...
     
    Jus
    Есть calltips - всплывающие подсказки по синтаксису (Ctrl+Shift+Space).
    Они могут показыватся и автоматом после того как вставили один из символов, заданных тут:
    Код:
    calltip.pyton.parameters.start= (

    Есть раскрывающиеся списки для автодополнения. (Ctrl+I и Ctrl+Enter).
    Они тоже могут показыватся и автоматом после того как вставили один из символов, заданных тут:
    Код:
    autocomplete.pyton.start.characters=.

    В сборке Ru-Board подключен скрипт, который использует свой алгоритм для автодополнения. Для pyton я его не затачивал. Возможно он тебе мешает. Отключи его. А еще лучше - напиши на личный mozers(собака)mail.ru - попробуем вместе заточить его под Питона (со скриптом то - гораздо удобнее)...

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 12:47 20-09-2006 | Исправлено: mozers, 13:14 20-09-2006
    unreal666



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

    Цитата:
    Я вообще думал что сам догадаешся...

    Я вообще предполагал, что нужно создавать какую-то переменную, связанную с событиями. Но я не знаю, какие события вообще есть в Скайте.
    Где взять список этих стандартных событий?
     
    Еще вопрос
    Где устанавливается максимальная длина строки состояния? А то у меня уже не влазит в строку состояния всё нужное мне.
     
    И надо как-то поправить исходники Скайта, что при поиска русских слов он искал без учета регистра.
     
    mozers
    Сделал все как ты написал. Нифига не показывает текущий лексер. Просто пустые [] выводятся.  
     
    ЗЫ. Функцию OnUpdateUI() тоже добавил в SciTEStartup.lua.


    ----------
    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 | Отправлено: 12:55 20-09-2006 | Исправлено: unreal666, 13:11 20-09-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Билин! Какой Moon_aka_Sun хитрый! Он сделал оказывается, то, чего я так добивался от Нейла и его отказ вынудил меня написать скрипт для автодополнения!
    Его SciTE позволяет использовать точку в качестве символа запускающего автодополнение! Таааак... Интересно... Копаем дальше... Как ты это сделал?....

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

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

    Цитата:
    А со мной поделился кодом Мишель Форал. Теперь из встроенного LUA можно выполнять команды вида  scite.MenuCommand(IDM_WHATEVER)  

    Вот это действительно мощная вещь ))))
    Тока где применять её практически хз , можно пару примеров.
     

    Всего записей: 51 | Зарегистр. 07-12-2004 | Отправлено: 13:21 20-09-2006
    mozers



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

    Цитата:
    Где взять список этих стандартных событий?
    \SciTE\help\SciTEExtension.html

    Цитата:
    Еще вопрос  
    Где устанавливается максимальная длина строки состояния?
    Это не вопрос, а пожелание (я так же присоединяюсь) для наших программистов
    Можно, конечно, писать не в statusbar.text.1 а в statusbar.text.2 или в другие, но как то кликать по статусбару мне обломно

    Цитата:
    Нифига не показывает текущий лексер
    Все должно работать. Что то ты не так сделал. Вставь в OnUpdateUI че нить типа print("test") и погляди. Потом замени на props["lexer.name"]=test . Ну и т.д.... У меня - работает - значит и у тебя будет.
     
     
    Добавлено:
    gansA
    Даже не знаю... (С новыми идеями - вообще туго). Мне это понадобилось для того чтобы автоматизировать переключение раскраски С++ со стандартной на ту классическую, что сделал mimir. Как выяснилось, добавление строчки import languages\cpp_style_classic_ ничего не дает - надо обязательно сохранить измененный файл. Как??? Сейчас - запросто:
    Код:
    scite.MenuCommand(106)


    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 13:46 20-09-2006
    unreal666



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers
    Нашел, где была проблема. Просто оказывается у меня уже была такая функция, а я создал такую же в начале файла.
    Перенес props["lexer.name"] = GetLexerName() в существующую функцию и все стало ОК.
    Сенкс.

    ----------
    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 | Отправлено: 14:12 20-09-2006
    Jus

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mozers
    calltip.pyton.parameters.start= (  
    autocomplete.pyton.start.characters=.
    Установленны уже изначально - вот как раз то когда вставляешь точку в код Питона список автодополнения не появляется, а если его принудетельно вызвать то этот список явно не полный...
    Прошу прощения, а как отключить скрипт с алгоритмом автозаполнения?

    Всего записей: 18 | Зарегистр. 30-04-2003 | Отправлено: 15:44 20-09-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jus
    Я же выше написал, что дело - не в этом! Просто Moon_aka_Sun правил код чтобы точка срабатывала! В оригинале она не работает или работает только со скриптом (который надо маленько настроить).
    Тот список, что появляется по Ctrl+Enter не зависит ни от скрипта ни от кода (только от api-файла)  
    Вообще то я подключил python.api от Moon_aka_Sun (он действительно значительно полнее). И теперь у меня по Crll+Enter возникает классический список автодополнения, а при записи вида operator. после нажатия на точку - срабатывает скрипт и возникает список свойств/методов operator.
     
    Добавлено:
    Добил список Нерешенные задачи и вопросы.
    Вообще то если бы в меню Language (Lexer) ставились галочки при выборе пункта, то вопроса unreal666 могло бы и не быть...

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 15:58 20-09-2006 | Исправлено: mozers, 17:30 20-09-2006
    Moon_aka_Sun



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

    Цитата:
    (про вызов ехе без создания окна) Или Луу саму модифицировать
    Оказалось проще всего. Сделал os.execute через CreateProcess и теперь у него три параметра - cmd_line, start_path, flags. Естественно, для совместимости можно не указыать второй и третий параметры. В flags можно, напрмер, написать 134217728, что есть 0x08000000 (Луа 5.0.2 не понимает хекс) или, по-человечески, CREATE_NO_WINDOW (см. документацию по CreateProcess). Будет в следующем билде
     
    mozers написал:

    Цитата:
    Как
    Хм. Скорее всего, не знаю. Я в этом не копался. Может М.Форал что-то менял, я у него брал некоторые изменения. Или ещё кто. А разве точка раньше не работала?
     
    Я помню, что раньше беда с числами была. Набираешь 1. и можно уходить за кофе - SciTE собирал дополнение со всего python.api, который был у меня под 1.5 мегабайта. Сейчас - лучше: 1) на числа автодополнение не реагирует, 2) разумно всё-таки разбить питоновский api на части, которыми действительно пользуешься и части, которые представляют чисто академический интерес.
     

    Цитата:
    Как бы увеличить допустимую длину строки в параметре
    Очень похоже, что это ограничения (или скорее, умолчания) Виндовс.
     
    В месте создания статусбара он "делится" на одну часть о четырёх тысячах пикселей:
        ::SendMessage(reinterpret_cast<HWND>(wStatusBar.GetID()),
                      SB_SETPARTS, 1,
                      reinterpret_cast<LPARAM>(widths)); // тут { 4000 }
     
    SciTE просто берёт, что ему дают (s) и передаёт дальше:
        ::SendMessage(reinterpret_cast<HWND>(wStatusBar.GetID()),
                      SB_SETTEXT, 0, reinterpret_cast<LPARAM>(s));
     
    3/4 ширины окна, если не больше, отданы под сообщение.
     
    Другое дело, что можно было бы переключение статусбара на клавишу навесить - надо обработку NM_CLICK в SciTEWinBar.cxx превратить в функцию, добавить IDM_команду и т.д. и т.п.

    Всего записей: 60 | Зарегистр. 20-04-2005 | Отправлено: 19:51 20-09-2006
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Moon_aka_Sun
    Цитата:
    Сделал os.execute через CreateProcess  
    Вах, молодец! Интересно, а на nix-ах это будет работать?

    Цитата:
    А разве точка раньше не работала?
    А ты попробуй (только чтобы всплывающая подсказка при этом не пропала) У меня - так и не получилось. Вот написал скрипт - теперь радуюсь - родное автодополнение как и раньше по ctrl+Enter работает, а мое врубается автоматом как поставишь точку или двоеточие, причем выводит не всю конструкцию как родное, а как путные редакторы - только символы после точки. Попробуй - понравится
    Кстати, подключив твой python.api сразу маленькую ошибочку в скрипте выявил.
    Ща все путем - автодополнение и вплывающая подсказка работают как часы

    Цитата:
    Очень похоже, что это ограничения (или скорее, умолчания) Виндовс
    Может и так Предельное число символов - где то как раз 256.

    Цитата:
    можно было бы переключение статусбара на клавишу навесить  
    Нахрена? Если мышой лень тыкать? Имхо - не стоит. Лучше подумать о том так ли уж необходима вся представленная инфа именно на 1й статусной строке. Может проще перенести ее на следующую?
    А в случае с unreal666 идеальным решением было бы проставление галок в меню напротив выбранного лексера.
     
     
    Добавлено:
    Вопрос к знатокам LUA
    Есть таблица со значениями, я ее отсортировал
    Код:
    table.sort(my_table)
    как теперь мне из нее удалить все повторяющиеся строки, чтобы остались только уникальные? Можно как нить 1 оператором это сделать? (а то чето у меня очень громоздко получается)

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



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

    Цитата:
    Интересно, а на nix-ах это будет работать?
    Нет, конечно. Там что-то другое должно быть. Я оттуда только fork знаю А, вспомнил, там spawn* и exec* есть. Но cmd.exe они не запускают. В общем, там всё по-другому. Может им и старого os.execute хватало.
     

    Цитата:
    Лучше подумать о том так ли уж необходима вся представленная инфа именно на 1й статусной строке. Может проще перенести ее на следующую?
    У меня две строки. Вполне счастлив. Это я так, для поддержания беседы написал
     

    Цитата:
    автодополнение
    Автодополнения я сейчас как следует не проверял. Помню, что в старом (1.68) почему-то не делались многострочные подсказки (но Форал теперь как-то лихо там всё обошёл). Что-то я ещё делал для посказок для констант и модулей, но всё пропало вместе со старым диском.
     

    Всего записей: 60 | Зарегистр. 20-04-2005 | Отправлено: 23:12 20-09-2006
    mozers



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

    Цитата:
    Нет, конечно. Там что-то другое должно быть

    тогда может лучше вместо новой os.execute сделать новый метод типа os.run ? (а то нас люниксоиды побъют).

    Цитата:
    Автодополнения я сейчас как следует не проверял. Помню, что в старом (1.68) почему-то не делались многострочные подсказки (но Форал теперь как-то лихо там всё обошёл).  
    Я - про раскрывающийся список с автодополнением, а ты - про вплывающие подсказки!
    А Форал действительно поступил элементарно просто - включил в список символов разрешенных в тексте подсказки \n и все
     
    Ща все таки собрался и доделал SciTE.Helper (COM-сервер для управления SciTE).
    Добавил всего один метод - Send. Смысл его в том что он с помощью SciTE Director Interface посылает Скайту команду (их достаточно много) и читает полученный результат. (Подробности - в файле SciTEDirector.html в дистрибутиве Скайта). С отсылкой проблем нет - все отправляется и послушно выполняется подопытным Скайтом. С получаемыми от Скайта - данными - такая комедия...
    Ща пробую... Смеюсь и плачу...
    Если кто хочет посмеятся (а еще лучше истолковать результат) - выложу

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 00:21 21-09-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