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

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

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

Widok (23-11-2010 11:23): Лимит страниц. Продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

A free source code editor for Win32 and X
Русскоязычный форум поддержки
Внимание! Это - продолжение темы, начатой [здесь]

  • Один из самых настраиваемых текстовых редакторов из ныне существующих. Настраивается практически все.
  • Индивидуальная подсветка для разных языков програмирования, фолдинг для классов, функций и структур, авто-дополнение, и т.д. и т.п. ...
     
  • Официальный сайт: Scintilla and Scite
  • Официальный форум: Scite-interest -- Discussion of the SciTE editor
  • Русская документация по SciTE (Ждем ваших замечаний и дополнений...)
  • Проект SciTE-Ru (полезные файлы, предложения, SVN, ....)
  • SciTE - Википедия (корректируйте, дополняйте!)
  • Русский сайт 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 - 2.22
     
    Последняя версия редактора из проекта SciTE-Ru - 2.22 .87 [Сборка 01.11.2010]
    (Oписание: сборки, ядра)        [Важно! О "вирусах" в сборке SciTE-Ru!]
     
    Русскоязычный онлайновый чат, посвященный SciTE: online@conference.scite-ru.org
    Дружественная тема: Доработка исходного кода и компилирование сборки Ru-Board Edition
    Нерешенные задачи и вопросы ( Для умных и талантливых форумчан )

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 14:48 09-10-2007 | Исправлено: mozers, 19:36 01-11-2010
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TymurGubayev
    Цитата:
    меня удивило, что props['CurrentSelection'] может вернуть выделенный текст, а может и какую-нибудь фигню
    Имхо это - фича (правда, не слишком документированная).

    Цитата:
    А исправление следующее
    Того же эффекта можно было добиться просто сняв комментарий со строки
    Код:
    #~ comment.block.at.line.start.lua=1
    в файле lua.properties
     
    Добавлено:
    VoidVolker
    Цитата:
    Чего здесь невозможного? Создать при запуске окошко, по срабатыванию подсказки установить ему текст с форматированием, припарковать и показать?
    Невозможно встроенными средствами SciTE. Привлекать для вывода калтипа тяжелую артиллерию я считаю излишеством.

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 21:23 26-11-2008
    TymurGubayev

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кому интересно: слегка переписанный AutocompleteObject.lua
    тык

    Всего записей: 35 | Зарегистр. 24-11-2008 | Отправлено: 00:55 27-11-2008
    vladvro



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

    Цитата:
    Например, если выделить в файле .properties текст "$(chars.numeric)" и нажать [Alt+V], то в консоль пойдёт "0123456789 = ", вместо "$(chars.numeric) = 0123456789". (Перед знаком '=' находится как раз props['CurrentSelection'])
    Вопрос: это баг или фича?????

    Все верно и это фича! В параметр "CurrentSelection" заносится выделенный текст с раскрытыми значения параметров в нем, где синтаксис параметра - $(имя_параметра).

    Цитата:
    Такое впечатление, что props["some_property"] = "some_new_value" стало работать с запозданием -- если в скрипте убрать откат на старое значение, то на следующий заход editor:WordStartPosition воспринимает уже новое значение.

    видимо ты пытаешься присваивать в props['word.characters.'..ext], но надо учитывать, что значение этого параметра и то для чего он служит в настройках - это не одно и тоже. Извлечение значения из этого параметра для изменения настроек лексера происходит во время загрузки параметров. Если надо форсировать изменение этих настроек, то надо действовать так:
    Код:
    scite.SendEditor(SCI_SETWORDCHARS, новое_значение)

     
    Добавлено:
    TymurGubayev, mozers

    Цитата:
    необходимо в lua.properties исправить word.characters.$(file.patterns.lua)=$(word.chars.lua).:

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

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 13:15 27-11-2008
    VoidVolker

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TymurGubayev
    В исправленном варианте AutocompleteObject.lua обнаружена такая же ошибка как и в оригинальном скрипте: для символов-разделителей отличных от точки, после выбора из списка вставляется еще один символ разделитель.  
    Пример.
    В *.properties указано:

    Код:
    autocomplete.*.start.characters={

    в апи:

    Код:
    aa{bb
    aa{cc

    А вот что получается в результате работы скрипта:

    Код:
    aa{{bb
    aa{{cc

     
    А вот подсказки реализованы в ядре скайте? Или внешним скриптом? Просто очень хочется сделать их динамическими - чтобы в реальном времени добавлялись из текущего исходника.

    Всего записей: 186 | Зарегистр. 10-11-2008 | Отправлено: 15:11 27-11-2008
    TymurGubayev

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ALL
    Кому надо, слегка неполное api для LuaSocket
    Подробнее...
     
    в AutocompleteObject есть досадная ошибка (см. пост от VoidVolker выше)
    Вот патч:
    тут
    теперь должно работать корректно.
     
    Спасибо vladvro, исправил "новый алгоритм":
    патч2
    теперь можно смело ставить

    Код:
     
     local new_delim_behavior = true
     local new_delim_behavior_better_buggy = true
     

     
    vladvro

    Цитата:
    видимо ты пытаешься присваивать в props['word.characters.'..ext], но надо учитывать, что значение этого параметра и то для чего он служит в настройках - это не одно и тоже.

     Это почти одно и то же -- если изменить props[....], то через некоторое время настройки SciTE обновятся.

    Цитата:
    scite.SendEditor(SCI_SETWORDCHARS, новое_значение)

    ВОООООТ!
    То, чего мне не хватало!
     

    Цитата:
    необходимо в lua.properties исправить word.characters.$(file.patterns.lua)=$(word.chars.lua).:
     

    я уже писал, что погорячился Теперь скрипт работает правильно и так.
    VoidVolker
    ща буду думать.
    upd
    с двоеточием работает нормально, с { у меня получается "aa{{bb}". У тебя получается именно "aa{{bb" ?
    upd2
    см патч выше
     

    Цитата:
    А вот подсказки реализованы в ядре скайте? Или внешним скриптом? Просто очень хочется сделать их динамическими - чтобы в реальном времени добавлялись из текущего исходника.

    ага, у меня тоже такое желание было, но фиг там, за calltip точно не луа-скрипт отвечает, так что это не ко мне.
     
    Добавлено:
    И один вопрос:
    У меня настроено так:
     
    command.go.$(file.patterns.lua)=Lua.exe "$(FileNameExt)"
     
    и это прекрасно работает, но есть одна проблема: консоль SciTE получает результат работы lua.exe только после завершения.
    Например,

    Код:
     
    io.write ('Plz enter smthing: ')
    print(io.stdin:read())

     
    если в консоли ввести text, то получится следующее:

    Код:
    >Lua.exe "Unnamed0.lua"
    text
    Plz enter smthing: text
    >Exit code: 0    Time: 4.054

     
    а должно быть:

    Код:
    Plz enter smthing: text
    text

     
    как бы это исправить?

    Всего записей: 35 | Зарегистр. 24-11-2008 | Отправлено: 17:53 27-11-2008 | Исправлено: TymurGubayev, 18:44 27-11-2008
    mozers



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VoidVolker
    Скриптик для "железного" вывода подсказок выложил в дружественной ветке.
    Ты же хочешь выводить подсказки не описанные в api-файле? (Например, параметры заданных тобой в редактируемом тексте функций).
    Это - давнишняя идея... В SiTE можно все, вот только написать такой скрипт не просто... Чтобы он был универсальным (для разных языков) - еще сложнее...
     
    TymurGubayev

    Цитата:
    слегка неполное api для LuaSocket  
    Выложим на Downloads?

    Цитата:
    upd upd2
    Лучше вноси изменения в свой первоначальный пост, и сообщай что изменил - так и тебе и нам удобнее будет.
     
    Добавлено:
    Если надо работать с консольным скриптом, ждущим ввода с клавиатуры, то лучше его запускать не в консоли SciTE, которая, как ты правильно заметил
    Цитата:
    получает результат работы lua.exe только после завершения.  
    а в системной консоли.
    Код:
        command.go.$(file.patterns.lua)=$(ComSpec) /k Lua.exe "$(FilePath)" $(1) $(2) $(3) $(4)
        command.go.subsystem.$(file.patterns.lua)=2
     

    Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 21:53 27-11-2008
    VoidVolker

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

    Цитата:
     У тебя получается именно "aa{{bb" ?

    Да именно так, и также после патча.

    Всего записей: 186 | Зарегистр. 10-11-2008 | Отправлено: 23:00 27-11-2008
    TymurGubayev

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VoidVolker
     
    чтоб наверняка, возьми скрипт отсюда: http://www.mediafire.com/?mqwttjz2y1l
     
    И что у тебя во всплывающем списке: "bb" или "{bb" ?
     
    Добавлено:
    mozers

    Цитата:
    Выложим на Downloads?  

    да я не против, выкладывай

    Всего записей: 35 | Зарегистр. 24-11-2008 | Отправлено: 23:10 27-11-2008
    VoidVolker

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

    Цитата:
    чтоб наверняка, возьми скрипт отсюда: http://www.mediafire.com/?mqwttjz2y1l

    Показывает страницу регистрации. Используй более простые файловые хостинги - например zalil.ru

    Цитата:
    И что у тебя во всплывающем списке: "bb" или "{bb" ?

    {bb
     
    mozers

    Цитата:
    В SiTE можно все, вот только написать такой скрипт не просто... Чтобы он был универсальным (для разных языков) - еще сложнее...

    Сложно? Ну раз ты так говоришь... Хмм... Видимо просто у нас разные понятия сложности. Я вот никогда и ни при каких обстоятельствах не говорю себе "это сложно"(оно ломает; так же как и слово "если" берет под свой контроль - стот его сказать, и жизнь начинает управляться этим словом), а говорю "это просто, это очень просто", даже если это и не так.
    Мне алгоритм видится таким:
    1.0 Выделить отдельный файл для подсказок, формат стандартный:
      [лексема][разделитель][подсказка]
    2.0 В язык.properties указываем переменную-разделитель - она будет разделять лексему(последовательность символов ассоциированная с токеном) и саму подсказку.
    2.1 Там же указываем символ(ы), после которого дожна появиться подсказка. Хоткей же для вывода глобальный.
    2.2 Там же указываем регексп(ы)(строку, правило, или что-то еще) для получения новых лексем и подсказок из текущего файла(в т.ч. и из подгружаемых в этом файле других файлов).
    3.0 Скрипт создает из строк апи-файла какую-то структру, удобную для работы скайте - эта структура глобальная для всех файлов этого типа. А новые подсказки - локальны для каждого файла этого типа.
    3.1 По наступлению события "добавление новой лексемы" в текущем файле скрипт добавляет в локальную струкртуру подсказок новую лексему(в целях экономии памяти можно просто сохранять указатель на начало лексемы из буфера, а для вывода подсказки выводить текст вплоть до наступления события "окончание комментария"(опять же - указываем в язык.properties))
    3.2 Для загрузки подсказок из подгружаемых в этом файле других файлов достаточно отслеживать изменения в этих файлах и лексемы для загрузки файлов - работает аналогично как и при загрузке из апи-файла.
    4.0 Ну а далее по наступлению события "вывод подсказки по лексеме" скрипт выводит подсказку для текущей лексемы - либо из глобального списка из апи-файла, либо динамически полученную ранее из текущего файла.
     
    TymurGubayev

    Цитата:
    ага, у меня тоже такое желание было, но фиг там, за calltip точно не луа-скрипт отвечает, так что это не ко мне.

    Наши желания совпадают - что мешает их реализовать вместе? Вот скажи, четыре довольно простых пункта - разве это сложно?

    Всего записей: 186 | Зарегистр. 10-11-2008 | Отправлено: 17:15 28-11-2008
    TymurGubayev

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VoidVolker
    держи http://slil.ru/26380640
    ещё глянь "личный ящик"
     
    По поводу динамической подсказки:
    есть editor:CallTipActive() bool
    т.е. можно сделать проще: скрипт просто смотрит, а не нашлась ли уже подсказка, если нет - пытается взять её из текущего файла.
    Единственно, желателен общий стандарт для этих самых подсказок (это пункт 2.2 по сути)
     искать до первого совпадения сверху вниз, искать до первого совпадения от курсора вверх, или строить подсказку из всех попаданий? Например,

    Код:
     
    local current_pos = 0    -- текущая позиция курсора, важно для InsertMethod
    --много кода
    current_pos = very_strange_function() -- ещё одна подсказка?
     

    Всего записей: 35 | Зарегистр. 24-11-2008 | Отправлено: 21:46 28-11-2008
    VoidVolker

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

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

    Это что, при каждом появлении подсказки заново сканировать весь файл? Накладно слишком - лучше один раз просканировать сам файл и инклюды, и добавлять в структуру по мере появления.

    Всего записей: 186 | Зарегистр. 10-11-2008 | Отправлено: 16:21 01-12-2008
    TymurGubayev

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

    Цитата:
    Это что, при каждом появлении подсказки заново сканировать весь файл?

    .api файлы сканируются при изменении заново, чтобы показать calltip, а AutocompletObject-скрипт сканирует ещё и актуальный файл практически каждый раз - см. FindDeclaration()
    и ничего, живём
     
    естественно инклюды хорошо бы перерабатывать лишь при их сохранении, как и главный файл. Ибо подсказки могут добавляться в текст файла по мере набора...
     
    моя же идея состоит в том, чтобы не делать двойную работу - сначала пытаемся показать стандартную подсказку, потом проверяем, получилось ли, если нет - ищем подсказку в текущем файле (+инклудах).

    Всего записей: 35 | Зарегистр. 24-11-2008 | Отправлено: 15:01 02-12-2008
    Victor_Dobrov



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Посоветуйте, как добавить свёртку секции #if ... #endif препроцессора для Паскаля? (файл синтаксиса Pascal.properties)
     
    #if Time
    function TimeLimit: Boolean;
    +  Begin
    |    result:= CompareFileTime(LimitTime, LocalTime) = -1
    +  End;
    #endif
     
    Пример кода взят из файла Inno Setup, в котором используется и Паскаль и команды препроцессора C++.

    Всего записей: 742 | Зарегистр. 27-09-2005 | Отправлено: 01:33 04-12-2008
    ALeXkRU



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

    Цитата:
    команды препроцессора C++

    свёртка блоков препроцессора для С++ зашита в его лексер... может оказаться, что придётся лексер паскаля править  

    Всего записей: 11907 | Зарегистр. 03-12-2003 | Отправлено: 16:21 04-12-2008
    Bolenic



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SciTE-Ru - 1.77 .61 [Сборка 29.10.2008]  
    Все значки в панели управления видны только при первом запуске.
    При последующих запусках часть из них не видна.
    Файл пользовательских настроек (создан вручную)  
    "подхватывается" то из корневой папки, то из папки home.  
    Опция "home" при инсталляции была отмечена.

    Всего записей: 2682 | Зарегистр. 30-03-2006 | Отправлено: 16:46 04-12-2008 | Исправлено: Bolenic, 16:48 04-12-2008
    vladvro



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

    Цитата:
    Посоветуйте, как добавить свёртку секции #if ... #endif препроцессора для Паскаля?

    Правкой конфига этого сделать нельзя, в лексера для Паскаля нет параметров для настройки фолдинга. Надо либо править лексер, либо написать скрипт по аналогии с FoldText.lua.
     
    Bolenic

    Цитата:
    Файл пользовательских настроек (создан вручную)  
    "подхватывается" то из корневой папки, то из папки home.  
    Опция "home" при инсталляции была отмечена.

    Попробуйте убрать опцию "home" (Tools->Настройки->Настройка интеграции с Windows).

    Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 19:29 04-12-2008
    Victor_Dobrov



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vladvro - Спасибо, попробую подключить к файлу inno.properties дополнительный lua скрипт.
     
    У меня пожелание на будущее - доработать подсветку синтаксиса для файлов Inno Setup (.iss), чтобы можно было сворачивать секции Паскаля Begin ... End и секции препроцессора #if, #ifdef, #ifndef.

    Всего записей: 742 | Зарегистр. 27-09-2005 | Отправлено: 01:14 05-12-2008
    tilarids

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте! Меня интересует в Scite функциональность, описанная в http://code.google.com/p/scite-ru/issues/detail?id=60 . А именно, хочется, чтобы autocomplete показывал варианты дополнения инкрементально, сразу после начала ввода, без нажатия комбинаций клавиш.
     
    Написание кода меня не пугает, но всё-таки не хотелось бы заниматься созданием велосипеда. Кто-нибудь знает что-нибудь о статусе этого feature request?
     
    С уважением,
    Сергей Кищенко.

    Всего записей: 11 | Зарегистр. 09-12-2008 | Отправлено: 15:01 09-12-2008 | Исправлено: tilarids, 15:07 09-12-2008
    vladvro



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

    Цитата:
    Написание кода меня не пугает, но всё-таки не хотелось бы заниматься созданием велосипеда. Кто-нибудь знает что-нибудь о статусе этого feature request?

    На сколько я знаю, так никто им и не занялся.
    Желание занятся этим вопросом ток приветствуется.

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



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Возможно ответ на вопрос покажется простым, но мне интересно, как добавляется поддержка конвертирования регистра букв (Ctrl + Shift + U) для не латинских символов? Я использую версию которая идёт вместе с AutoIt, там кириллица например просто игнорируется при попытке конвертировать.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:23 09-12-2008
       

    Страницы: 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

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru

    Рейтинг.ru