- Сообщения
- 5,379
- Репутация
- 2,724
SciTE 3.2.5.99 - мой вариант сборки (модификации) редактора SciTE, основанный на ядре 3.2.5-99Ru. Начну с того, для чего я вообще все это затеял. Меня порядком достал убогий интерфейс SciTE и нежелание разработчиков AutoIt работать в этом направлении. Тем не менее, на мой взгляд по функциональности полноценной альтернаьивы SciTE для AutoIt нет. Поэтому изначально я работал преимущественно над интерфейсом редактора, после чего уже перешел на расширение функционала. Модификация производилась в сторону SciTE4AutoIt, т.е. ядро было взято из SciTERu, а все настройки и плагины из SciTE4AutoIt. Затем уже велась работа по их изменению и адаптации к совместной работе. В результате получилось именно то, что я и хотел видеть в этом редакторе изначально. На этом я пожалуй закончу вступительную часть и переду к более детальному описанию. Для тех, кто будет использовать эту сборку, я рекомендую прочитать все до конца.
Также хочется сказать огромное человеческое спасибо всему коллективу Ru-Board за блестяще проделанную работу по модификации редактора и написанию замечательных плагинов (.lua).
Ниже приведен список основных изменений (относительно SciTE4AutoIt). Стоит отметить, что это далеко не полный список, т.к. множество на мой взгляд незначительных изменений просто не поместятся в один пост.
Так как плагины SciTE4AutoIt конфликтуют с плагинами SciTERu (используют разные обработчики событий), то пришлось чем-то жертвовать, но как оказалось жертвы были минимальные. Ниже приведен список того, что пришлось отключить в процессе модификации. Для большинства пользователей это не представляет практического интереса.
Кроме всего прочего я избавился от полного хаоса в файле au3.properties. Теперь все настройки рассортированы по группам как в SciTEGlobal.properties, а команды меню Tools перемещены в файл menu\menu.properties. Также я создал две глобальные группы с командами компиляции (Compile), создания (Build), запуска (Run) и проверки синтаксиса (Syntax Check). Первая группа использует нативные утилиты AutoIt (AutoIt3.exe, Aut2Exe.exe и т.д.), а вторая использует AutoItWrapper как это изначально прописано при установке SciTE4AutoIt. По умолчанию используется режим AutoItWrapper, но если вы хотите переключиться режим AutoIt, то просто поменяйте комментарии. Лично я предпочитаю нативные утилиты AutoIt, т.к. и работают быстрее, и глюков меньше. При желании можно комбинировать команды запуска.
Как отвязать SciTE от директории AutoIt? Все дело в том, что разработчик SciTE4AutoIt и AutoItWrapper жестко привязал папку SciTE к местоположению AutoIt. Другими словами, SciTE должен находиться строго в корневой папке AutoIt и никак иначе. Для того, чтобы избавиться от последствий этого дурного поступка, мне, помимо правки .properties, пришлось вносить изменения в AutoItWrapper и перекомпилировать его (о том, что я увидел в коде этой утилиты, я лучше промолчу). В результате все сводится к следующему. Если вы поместите папку SciTE в корневую папку AutoIt, как это было раньше, то делать вообще ничего не нужно. Если вы хотите переместить SciTE в другое место, то делаем так, как написано ниже.
Открываем файл properties\au3.properties (в самом верху) и прописываем в нем полный путь к папке AutoIt, например:
После этого можете переместить SciTE в любое место, все будет работать также как и раньше.
Ниже представлена важная информация по основным файлам и переменным, обеспечивающим работу SciTE со скриптами AutoIt. Важно, некоторые файлы были перименованы, поэтому, если будете заменять их файлами из других версий, то обязательно проверьте соответствие имен файлов и переменных (если имеются).
Подсветка для AutoItWrapper:
Подсветка для пользовательских функций (UDF):
Подсветка аббревиатур для скриптов AutoIt:
Подсветка аббревиатур, назначаемых пользователем (переименован из au3.keywords.user.abbreviations.properties):
Файлы для скачивания:
SciTE 3.5.5.101 build 1.3.8
Другие источники
В архиве находится папка Extras, в которой можно найти дополнительные иконки для скриптов AutoIt и необходимые .reg файлы для регистрации соответствующих типов файлов в системном реестре.
Также хочется сказать огромное человеческое спасибо всему коллективу Ru-Board за блестяще проделанную работу по модификации редактора и написанию замечательных плагинов (.lua).
Ниже приведен список основных изменений (относительно SciTE4AutoIt). Стоит отметить, что это далеко не полный список, т.к. множество на мой взгляд незначительных изменений просто не поместятся в один пост.
- Убраны все упоминания о бета версиях AutoIt.
- Убрана привязка SciTE и AutoItWrapper к директории AutoIt, т.е. теперь можно установить SciTE в любую директорию (см. ниже).
- Убраны следующие утилиты.
- Code Wizard
- FindStr
- SciTE Config
- SciTE Jump
- Цветовая схема редактора приведена к единому стилю, раскраска кода соответствует AutoIt 3.3.8.1 c небольшими изменениями.
- Все дополнительные утилиты перемещены в отдельную папку Tools.
- Все пользовательские файлы .properties теперь находятся в соответствующих папках в корне SciTE (раньше находились в пользовательской папке).
- Все настройки в файле SciTEGlobal.properties рассортированы по группам аналогично .ini файлам.
- Добавлена утилита SciTE Session Loader (Yashied), позволяющая открывать в SciTE файлы .session через Windows Explorer (необходимо зарегистрировать тип файла, см. SESSION.reg).
- Файл справки для каждого языка теперь открывается всегда по F1, если это AutoIt, то будет показана справка по AutoIt, если другой язык, то, соответственно, его справка, если присутствует, или справка по SciTE (по умолчанию).
- Немного изменена информация, выводимая в StatusBar.
- Добавлена боковая панель (SciTERu, SideBar.lua).
- Добавлен шаблон для создания списка функций в AutoIt скриптах.
- Добавлены настройки для изменения цвета фона и текста боковой панели.
- Убрано обновление списка функций (вкладка "Func/Bmk") во время редактирования текста (сильно раздражало, если объявлено много функций).
- Вкладка "Abbrev" теперь не обновляется при переключении вкладок с одинаковым лексером.
- Аббревиатуры в поле редактора теперь показываются в виде всплывающей подсказки в соответствующем стиле.
- Теперь аббревиатуры выводятся как из основного файла для текущего языка, так и из пользовательского.
- Добавлена расширенная панель инструментов ToolBar (SciTERu).
- Панель инструментов была полностью переделана под нужды AutoIt.
- Все иконки приведены к единому стилю Silk v13 (полная коллекция находится в архиве), отсутствующие иконки были дорисованы.
- Все настройки ToolBar помещены в отдельный файл, который лежит в папке Toolbar (не все инструменты присутствуют по умолчанию).
- Наборы инструментов на панели теперь меняются динамически в зависимости от того, какой лексер активен в данный момент, например при редактировании .txt файла вы не увидите кнопки для компиляции кода.
- Теперь при создании нового документа открываются вкладки с именем Untitled 1.au3, Untitled 2.au3 и т.д. (SciTERu, NewFile.lua).
- Плагин был практически полностью переписан.
- Теперь при сохранении новой вкладки всегда выводится диалоговое окно для выбора пути.
- Если новая вкладка создается из пустой вкладки или при открытии SciTE, то путь будет к папке пользователя, в противном случае путь берется из текущей вкладки.
- Новая вкладка создается с текущим лексером, т.е., если вы, редактируя .au3 файл, создаете новый документ, то он будет называться Untitled 1.au3. При открытии SciTE всегда открывается вкладка Untitled 1.au3.
- Добавлен плагин для сохранения настроек редактора (SciTERu, SaveSettings.lua).
- Плагин был практически полностью переписан.
- Теперь все настройки сохраняются в отдельном файле SciTE.settings, который находится в папке пользователя (раньше настройки хранились в SciTE.session, что приводило к конфликтам при использовании разных редакторов).
- SciTE.settings теперь создается автоматически и не представляет практического интереса для пользователя.
- Добавлены дополнительные и исключены неиспользуемые настройки, подлежащие сохранению.
- Добавлен плагин для создания резервных копий (.bak) при сохранения файла (SciTERu, AutoBackup.lua), по умолчанию выключен. Аналогичный плагин из SciTE4AutoIt был отключен из-за несовместимости.
- Добавлен плагин, который автоматически включает режим "Read only" при открытии файлов с атрибутами RHS (SciTERu, ROCheck.lua).
- Изменен плагин для автозавершения (Autocomplete) и всплывающих подсказок (Calltips) при наборе текста (SciTE4AutoIt, AutoItAutoComplete.lua).
- Переписан алгоритм автоматического появления и скрытия Autocomplete и Calltips.
- Добавлены настройки для отключения по отдельности оба функционала (меню Tools\Typing\*), но при этом оставив возможность их вызова через меню или с помощью горячих клавиш (Yashied, Switcher.lua).
- Добавлен плагин для сортировки выделенных строк (SciTERu, SortText.lua).
- Добавлен плагин для для замены в начале выделенных строк TAB на пробелы и обратно (SciTERu, TabToSpace.lua).
- Добавлена возможность смены регистра для выделенных строк (SciTERu).
- Добавлена возможность открытия системного реестра и переход на выделенную в редакторе ветку (Yashied).
- Добавлена утилита Control Viewer (Yashied).
- Добавлена утилита Icon Viewer (Yashied).
- Добавлена утилита Color Picker (Yashied).
- Расширены контекстные меню для окна редактора, вкладок и консоли, и добавлены дополнительные возможности.
- Файлы .properties для поддерживаемых языков убраны в отдельное меню (SciTERu).
- Увеличина ширина окна для ввода параметров запуска (меню View\Parameters).
Так как плагины SciTE4AutoIt конфликтуют с плагинами SciTERu (используют разные обработчики событий), то пришлось чем-то жертвовать, но как оказалось жертвы были минимальные. Ниже приведен список того, что пришлось отключить в процессе модификации. Для большинства пользователей это не представляет практического интереса.
- Class.lua: отключены следующие обработчики.
- OnOpen
- OnClose
- OnSwitchFile
- OnSave
- OnBeforeSave
- OnDoubleClick
- OnUpdateUI
- AutoItPixmap.lua: полностью отключен. Этот плагин просто добавляет разноцветные некрасивые иконке в окно Autocomplete.
- AutoHScroll.lua: полностью отключен, т.к. конфликтует почти со всеми плагинами SciTERu, требуя постоянную перезагрузку LUA (опции "ext.lua.auto.reload" и "ext.lua.reset"). Этот плагин используется для автоматической подгонки горизонтальной полосы прокрутки под длину строки. На деле абсолютно бесполезен, т.к. не работает должным образом.
- LoadSession.lua: отключен за ненадобностью.
- EdgeMode.lua: отключен за ненадобностью.
- SmartAutoCompleteHide.lua: отключен за ненадобностью.
- AutoItTools.lua: отключена функция OnBeforeSave().
- SciTE_Extras.lua: отключен из-за несовместимости. Плагин позволяет менять цвет текущего параметра функции во всплывающих подсказках. По умолчанию используется синий.
- SciTE Config (утилита): убрана из-за несовместимости. Не пытайтесь ее запускать, т.к. все равно не будет работать. Забавно то, что она вылетит из-за внутренней ошибки, оставлю это на совести разработчика.
Кроме всего прочего я избавился от полного хаоса в файле au3.properties. Теперь все настройки рассортированы по группам как в SciTEGlobal.properties, а команды меню Tools перемещены в файл menu\menu.properties. Также я создал две глобальные группы с командами компиляции (Compile), создания (Build), запуска (Run) и проверки синтаксиса (Syntax Check). Первая группа использует нативные утилиты AutoIt (AutoIt3.exe, Aut2Exe.exe и т.д.), а вторая использует AutoItWrapper как это изначально прописано при установке SciTE4AutoIt. По умолчанию используется режим AutoItWrapper, но если вы хотите переключиться режим AutoIt, то просто поменяйте комментарии. Лично я предпочитаю нативные утилиты AutoIt, т.к. и работают быстрее, и глюков меньше. При желании можно комбинировать команды запуска.
properties\au3.properties
Код:#~General command lines (x86 and x64) to "Compile", "Build", "Run", and "Syntax Check" for AutoIt native mode ;autoit.cmd.compile="$(AutoIt3Dir)\Aut2Exe\Aut2Exe.exe" ;autoit.cmd.compile64="$(AutoIt3Dir)\Aut2Exe\Aut2Exe_x64.exe" ;autoit.cmd.build="$(AutoIt3Dir)\Aut2Exe\Aut2Exe.exe" /in "$(FilePath)" /nopack ;autoit.cmd.build64="$(AutoIt3Dir)\Aut2Exe\Aut2Exe_x64.exe" /in "$(FilePath)" /nopack /x64 ;autoit.cmd.go="$(AutoIt3Dir)\AutoIt3.exe" /ErrorStdOut "$(FilePath)" $(1) $(2) $(3) $(4) ;autoit.cmd.go64="$(AutoIt3Dir)\AutoIt3_x64.exe" /ErrorStdOut "$(FilePath)" $(1) $(2) $(3) $(4) ;autoit.cmd.syntaxcheck="$(AutoIt3Dir)\Au3Check.exe" "$(FilePath)" #~General command lines (x86 and x64) to "Compile", "Build", "Run", and "Syntax Check" for AutoItWrapper mode autoit.cmd.compile="$(SciteDefaultHome)\Tools\AutoIt3Wrapper\AutoIt3Wrapper.exe" /ShowGui /in "$(FilePath)" autoit.cmd.compile64=$(autoit.cmd.compile) autoit.cmd.build="$(SciteDefaultHome)\Tools\AutoIt3Wrapper\AutoIt3Wrapper.exe" /prod /in "$(FilePath)" autoit.cmd.build64=$(autoit.cmd.build) autoit.cmd.go="$(SciteDefaultHome)\Tools\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "$(FilePath)" /UserParams $(1) $(2) $(3) $(4) autoit.cmd.go64=$(autoit.cmd.go) autoit.cmd.syntaxcheck="$(SciteDefaultHome)\Tools\AutoIt3Wrapper\AutoIt3Wrapper.exe" /prod /Au3Check /in "$(FilePath)"
Как отвязать SciTE от директории AutoIt? Все дело в том, что разработчик SciTE4AutoIt и AutoItWrapper жестко привязал папку SciTE к местоположению AutoIt. Другими словами, SciTE должен находиться строго в корневой папке AutoIt и никак иначе. Для того, чтобы избавиться от последствий этого дурного поступка, мне, помимо правки .properties, пришлось вносить изменения в AutoItWrapper и перекомпилировать его (о том, что я увидел в коде этой утилиты, я лучше промолчу). В результате все сводится к следующему. Если вы поместите папку SciTE в корневую папку AutoIt, как это было раньше, то делать вообще ничего не нужно. Если вы хотите переместить SciTE в другое место, то делаем так, как написано ниже.
Открываем файл properties\au3.properties (в самом верху) и прописываем в нем полный путь к папке AutoIt, например:
properties\au3.properties
AutoIt3Dir=C:\Program Files (x86)\AutoIt3
После этого можете переместить SciTE в любое место, все будет работать также как и раньше.
Ниже представлена важная информация по основным файлам и переменным, обеспечивающим работу SciTE со скриптами AutoIt. Важно, некоторые файлы были перименованы, поэтому, если будете заменять их файлами из других версий, то обязательно проверьте соответствие имен файлов и переменных (если имеются).
Autocomplete & Calltips
Автозавершение и всплывающие подсказки для скриптов AutoIt:
Автозавершение и всплывающие подсказки для AutoItWrapper (переименован из au3.autoit3wrapper.api):
Автозавершение и всплывающие подсказки, подключаемые пользователем (обычно используется для UDF, например WinAPIEx UDF, переименован из au3.user.calltips.api):
Abbreviations
Аббревиатуры для скриптов AutoIt (переименован из au3abbrev.properties):
Аббревиатуры, подключаемые пользователем (переименован из au3userabbrev.properties):
Keywords
Подсветка для скриптов AutoIt:
Автозавершение и всплывающие подсказки для скриптов AutoIt:
api\au3.api
Автозавершение и всплывающие подсказки для AutoItWrapper (переименован из au3.autoit3wrapper.api):
api\autoit3wrapper.api
Автозавершение и всплывающие подсказки, подключаемые пользователем (обычно используется для UDF, например WinAPIEx UDF, переименован из au3.user.calltips.api):
api\au3.user.api
Abbreviations
Аббревиатуры для скриптов AutoIt (переименован из au3abbrev.properties):
abbrev\au3.abbrev
Аббревиатуры, подключаемые пользователем (переименован из au3userabbrev.properties):
abbrev\au3.user.abbrev
Keywords
Подсветка для скриптов AutoIt:
properties\au3.keywords.properties
au3.keywords.functions=...
au3.keywords.udfs=...
au3.keywords.keywords=...
au3.keywords.macros=...
au3.keywords.preprocessor=...
au3.keywords.special=...
au3.keywords.sendkeys=...
Подсветка для AutoItWrapper:
properties\autoit3wrapper.keywords.properties
autoit3wrapper.keywords.special=...
Подсветка для пользовательских функций (UDF):
properties\au3.userudfs.properties
au3.keywords.user.udfs=...
Подсветка аббревиатур для скриптов AutoIt:
properties\au3.keywords.abbreviations.properties
au3.keywords.abbrev=...
Подсветка аббревиатур, назначаемых пользователем (переименован из au3.keywords.user.abbreviations.properties):
properties\au3.user.keywords.abbreviations.properties
au3.keywords.userabbrev=...
Файлы для скачивания:
SciTE 3.5.5.101 build 1.3.8
Другие источники
В архиве находится папка Extras, в которой можно найти дополнительные иконки для скриптов AutoIt и необходимые .reg файлы для регистрации соответствующих типов файлов в системном реестре.
Последнее редактирование модератором: