Что нового

Модифицированная версия SciTE-Ru

Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
Сейчас больше склоняюсь к нечеткому поиску. Алгоритм следующий - при вводе можно пропускать любое количество символов, результаты поиска ранжируются по числу пропущенных символов. Соответственно, если нет пропущенных символов, то первые в выдаче результаты соответствуют стандартным спискам автозавершения. Но, все равно, остается много непоняток - что, где и когда показывать.
Сделал демку, можно посмотреть здесь. (Кроме демонстрации автозавершения пока ничего не работает, да и это в текущей реализации работает тормознуто и местами глючно. Демка должна запуститься, даже если в системе есть запущенный скайт.)
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
asdf8
Возникала мысль написать алгоритм на AutoIt3, только вызов вручную, по Ctrl + пробел. Скрипт висит в процессах и имеет горячую клавишу. При вызове в координатах мыши формируется меню (_GUICtrlMenu_TrackPopupMenu) на основе последнего слова в строке. Дальше уже полёт фантазии.
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
AZJIO [?]
Возникала мысль написать алгоритм на AutoIt3

Оно, пока и так на AutoIt


только вызов вручную, по Ctrl + пробел

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


При вызове в координатах мыши формируется меню (_GUICtrlMenu_TrackPopupMenu)

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

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
asdf8
Демка это AutoItTools.exe? Пишет "SciTE не обнаружен", хотя он запущен, любой попробовал.
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
AZJIO [?]
Демка это AutoItTools.exe?

Нет, это SciTE.exe


Пишет "SciTE не обнаружен", хотя он запущен, любой попробовал.

Это я забыл отладочную заглушку убрать. :smile:
Чтобы заработало, нужно, чтобы Скайт лежал по пути "C:\SciTE-Ru\SciTE.exe"

ps: на сейчас сделал раскраску вхождений найденных букв и переписываю алгоритм поиска на Purebasic, что, почти наверняка приведет к тому, что 64-битные системы поддерживаться не будут.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
asdf8 [?]
64-битные системы поддерживаться не будут.
А разве Purebasic не может создавать и x64 версии программ? Просто у меня на компьютере стоит 64 битная версия системы, лишаться не хочется возможности :smile:
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
Medic84 [?]
А разве Purebasic не может создавать и x64 версии программ?

Может, только у меня нет доступа к 64-битной системе, соответственно и скомпилировать я не смогу, но это самая мелкая проблема, в конце концов, можно было бы кого-то из форумчан попросить скомпилировать.
Основная проблема в том, что в Purebasic встроенные библиотеки по большей части убогие (просто жуткие недоделки) да к тому-же некоторые из них кривые, т.е. работают не правильно. Т.е. все это требует отладки, а заниматься этим удаленно у меня нет желания.
Максимум, что можно сделать это, для 64-битных систем, всю обработку вести на AutoIt, будет несколько медленнее (основной тормоз - поиск по текущему документу, если он большой).
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
Наконец довел автодополнение до полноценной бетта-версии.
Сейчас все реализовано на AutoIt, при автодополнении из текущего файла достаточно комфортно можно работать с кодом размером порядка 300 Кб (граница условная и зависит от производительности ПК), дальше задержка постепенно увеличивается.
Скачать можно здесь.
Остальной функционал Скайта пока не настроен.
ps: перед использованием рекомендуется ознакомиться с содержанием файла настроек Options.ini, он будет открыт при первом запуске.
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
Интересует такой вопрос - что и куда прописывается в реестр при установке AutoIt на 64-битную систему. Может кто нибудь с этим помочь?
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
Сделал новую сборку на основе SciTE 3.2.5 .99Ru : Скачать
Основные отличия от предыдущей сборки, которая, на сегодня, доступна в виде патча:

  • Запуск редактора обусловлен его местоположением - т.е. если редактор уже запущен, запуская редактор из другого места получим две (или более) копии запущенного редактора.
    Если папка редактора расположена в папке с AutoIt, то SciTE при запуске и компилировании скриптов будет использовать только его, даже если этот AutoIt не установлен в систему, иначе будет использоваться AutoIt установленный в систему. Это позволяет одновременно работать с различными версиями AutoIt, которые могут быть даже не прописаны в системе.
    В связи с этим установщик AutoIt вынесен в отдельный модуль (только для 32-битных систем) - папка Install должна находится в папке AutoIt.

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

    Т.к. в SciTE занято большинство хоткеев (комбинаций клавиш быстрого доступа) - для управления автоподсказкой применена новая система горячих клавиш позволяющая использовать последовательное нажатие кнопок и разделять левые и правые клавиши-модификаторы (Ctrl, Alt, Shift).
    Дополнительно добавлены три хоткея: свертка, разворачивание блоков кода и обрамление текущих строк кодом свертки текста.
    Для более подробной информации см. комментарии в файле Options.ini (он будет открыт при первом запуске редактора).

  • Встроенные внешние инструменты модифицированы для работы только со своим экземпляром SciTE и нужной версией AutoIt.
    В некоторых инструментах были дополнительно произведены изменения :
    • Win Info lite - добавлена возможность определения окон со стилем WS_EX_LAYERED и WS_EX_TRANSPARENT
    • Дополнительная справка - добавлена поддержка объединенных файлов справки (т.е. файлов справки в которых имеются ссылки на другие файлы справки).
      Сейчас на основе этой утилиты организован доступ к русской справке по Ctrl+F1 - файлы русской справки должны находиться в папке HelpRu, там же должна располагаться папка Examples с примерами для этой справки. В объединяющие файлы справки AutoIt CommonHelp.chm и AutoIt.chm добавлены ссылки на справку WinAPIEx.chm, которая должна находиться в корне папки AutoIt.
    • Менеджер шаблонов - в виду кривой реализации предыдущей версии код переписан с нуля, в качестве редактора теперь используется элемент Scintilla.

ps: файл на хосте пролежит не долго, потом его перезалью на форум, видимо по частям.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
asdf8
У меня почему то всегда не получается из того что написано.
Options.ini
# При 1 - автоподсказка не появляется в комментариях и строках
AutomaticShowOnlyInCode=1
А в комментариях у меня подсказка вылетает

Не использую вставку UDF, потому что при вводе переноса строки " _" + Enter вставляется функция.

Какими клавишами подсказку вызвать с аббревиатурами? При вводе используются текущие, по Ctrl+пробел вызывается список имён всех функций.

Прыжок к функции UDF интересная идея, и выбор иконок.
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
AZJIO [?]
А в комментариях у меня подсказка вылетает
Мне надо было уточнить, что речь идет о строчных комментариях, определение блочных комментариев тяжеловато для AutoIt, в смысле быстродействия.


Какими клавишами подсказку вызвать с аббревиатурами? При вводе используются текущие, по Ctrl+пробел вызывается список имён всех функций.
Из Options.ini :
Код:
# Показать варианты из файла Abbrev (двойное нажатие левого Shift, см. прим.)
ShowAbbr=#LShift+LShift


Прыжок к функции UDF интересная идея
Это было уже в SciTE3AutoIt3, только сделано на Lua, прыгает также к функциям в текущем документе, я переделал это на AutoIt и добавил прыжок к глобальным константам.

Не использую вставку UDF, потому что при вводе переноса строки " _" + Enter вставляется функция.
По правде говоря, не понял о чем речь.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
По правде говоря, не понял о чем речь.
ввожу " _" при этом всплывает автоподстановка и выделяет первый элемент. Теоретически дальше мне нужно вставить перенос клавишой Enter, но вместо него вставляется функция, которую приходится убирать клавишой Ctrl+z и повторным нажатием Enter.
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
AZJIO [?]
ввожу " _" при этом всплывает автоподстановка и выделяет первый элемент.
У меня выставлено показывать подсказку после второго символа, поэтому не понял.

вставляется функция, которую приходится убирать клавишой Ctrl+z и повторным нажатием Enter.
Как вариант - горячая клавиша :
Код:
# Скрыть подсказку (только если подсказка отображается, работает так-же для оригинальных подсказок SciTe)
Hide=Delete
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
asdf8
А Debugger чей? Я тоже писал Debugger и в справке ещё есть.
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
AZJIO [?]
Этот дебагер я писал еще для первой сборки, куда он и вошел, естественно, тогда уже были реализации с подобным принципом.
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
Перезалил файл на форум, ссылка на закачку в этом посте.
Внес некоторые исправления, чтобы не перезакачивать весь дистрибутив можно отдельно скачать обновление (нужно заменить имеющиеся файлы, файлами из архива, при выключенном скайте).
 

Loveц

Новичок
Сообщения
16
Репутация
1
asdf8
Спасибо за сборку, очень радует! :smile:
Я поставил ее недавно, так что извините, если спрошу глупость. Пролистал все страницы, но не нашел ответа...
У меня Windows 7 x64. Ваш инсталлер не запускается - не та разрядность. Тогда мне для установки необходимо и достаточно скопировать содержимое каталога \SciTE-Ru из вашей сборки в папку "C:\Program Files (x86)\AutoIt3\SciTE" заменив существующие там файлы?
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
Loveц [?]
Пролистал все страницы, но не нашел ответа...

Тогда мне для установки необходимо и достаточно скопировать содержимое каталога \SciTE-Ru из вашей сборки в папку "C:\Program Files (x86)\AutoIt3\SciTE" заменив существующие там файлы?

В описании сборки написано :
asdf8 [?]
Если папка редактора расположена в папке с AutoIt, то SciTE при запуске и компилировании скриптов будет использовать только его, даже если этот AutoIt не установлен в систему, иначе будет использоваться AutoIt установленный в систему.

Т.е. если AutoIt установлен в систему и со скриптами ассоциирован Скайт, который находится по пути "C:\Program Files (x86)\AutoIt3\SciTE\SciTE.exe", то для того, чтобы AU3-файлы из проводника по умолчанию открывались в SciTE-Ru, нужно удалить в папке "C:\Program Files (x86)\AutoIt3" папку SciTE, а папку SciTE-Ru переименовать в SciTE. Очень не рекомендуется заменять файлы SciTE файлами SciTE-Ru - у них настройки находятся в разных файлах.
 

Loveц

Новичок
Сообщения
16
Репутация
1
asdf8
Спасибо.

Если позволите еще вопрос по работе модифиц. версии скайта.
Вот я начинаю писать новую строчку кода, хочу написать $a = 1.
Пишу "$a", появляется подсказка вставки кода, я нажимаю пробел, который у меня должен быть перед знаком "=", а вместо пробела вставляется весь этот большой кусок кода из подсказки.

Фича удобная, не спорю. Но если набираешь код некоторое время не глядя на экран, можешь из за нее получить полную кашу в коде.
Вопрос 1. Где это отключается?
Вопрос 2. Если эта фича все же включена, то неудобно то, что не могу никак из нее выйти... Когда появляется окно подсказки, я не могу закрыть его клавишей "Esc", если я например не хочу использовать команду из подсказки. Как бы еще избавиться от этого неудобства, не выключая всего этого удобства?
 
Верх