- Сообщения
- 8,673
- Репутация
- 2,486
- Версия AutoIt
- 3.3.14.5
- Версия
- 1.2
Данная библиотека предназначена для подсветки синтаксиса AutoIt-кода.
Поддерживается преобразование в Html формат (по умолчанию), а также в BBCode формат, для отправки на разные форумы.
Примечания:
Код/Пример:
Файл: AutoItSyntaxHighlight.zip
Снимок:
История версий:
Поддерживается преобразование в Html формат (по умолчанию), а также в BBCode формат, для отправки на разные форумы.
Примечания:
- Как бы удивительно это не звучало, библиотека написана полностью на чистом AutoIt'е (даже не использует не одной подключаемой библиотеки)
, и поскольку библиотека довольно интенсивно использует регулярные выражения, в неё добавлена система отладки обработки регулярных выражений (которая естественно замедляет работу обработки).
Для включения данной системы достаточно выставить «True» у следующих параметров в файле библиотеки (AutoItSyntaxHighlight.au3) под #Region User Variables:
Код:Global $fAu3SH_Debug_RE_Patterns = True ; Включает отладчик регулярных выражений Global $fAu3SH_Debug_RE_WriteLog = True ; Включает запись отладки в log-файл (по завершению обработки)
Уже неактуально. - Пользовательская переменная $AU3SH_ADD_URLS используется для включения/отключения ссылок для ключ. слов.
- Используйте скрипт Add missing keywords.au3 (прилагается в архиве) для добавления недостающих ключ. слов из новых версии AutoIt.
Код/Пример:
Код:
#include <Au3SyntaxHighlight.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
$sSciTE_Dir = @AutoItExe & '\..\SciTE'
$AU3SH_ADD_URLS = True
$AU3SH_KEYWORDS_FILE = $sSciTE_Dir & '\properties\au3.keywords.properties'
$AU3SH_API_FILE = $sSciTE_Dir & '\api\au3.api'
$sInitDir = ''
$sFilter = '*.au3'
$sMRUList = RegRead('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\au3', 'MRUList')
$sLastFileOpenPath = RegRead('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\au3', StringLeft($sMRUList, 1))
If Not FileExists($sLastFileOpenPath) Then
$sInitDir = @ScriptDir
$sFilter = 'Test Script.au3'
EndIf
$sFile = FileOpenDialog('Open Au3 Script File', $sInitDir, 'AutoIt Script (' & $sFilter & ')')
If @error Then Exit
$sAu3Code = FileRead($sFile)
$sAu3Syntax_HighlightedCode = _Au3_SyntaxHighlight($sAu3Code, 0)
$sTmp_File = @TempDir & '\Au3_HighlightSyntax.htm'
$hFile = FileOpen($sTmp_File, 2)
FileWrite($hFile, $sAu3Syntax_HighlightedCode)
FileClose($hFile)
_IEErrorHandlerRegister()
$oIE = _IECreateEmbedded()
$iGUI_Width = @DesktopWidth - 40
$iGUI_Height = @DesktopHeight - 150
$hGUI = GUICreate('AutoIt Syntax Highlighter [' & $sFile & ']', $iGUI_Width, $iGUI_Height, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
GUICtrlCreateObj($oIE, 10, 20, $iGUI_Width - 20, $iGUI_Height - 70)
$iBack_Bttn = GUICtrlCreateButton('Back', 10, $iGUI_Height - 40, 100, 30)
$iForward_Bttn = GUICtrlCreateButton('Forward', 120, $iGUI_Height - 40, 100, 30)
$iHome_Bttn = GUICtrlCreateButton('Home', 230, $iGUI_Height - 40, 100, 30)
$iStop_Bttn = GUICtrlCreateButton('Stop', 340, $iGUI_Height - 40, 100, 30)
GUISetState(@SW_SHOW, $hGUI)
_IENavigate($oIE, $sTmp_File)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
GUIDelete($hGUI)
Exit
Case $iHome_Bttn
_IENavigate($oIE, $sTmp_File)
Case $iBack_Bttn
_IEAction($oIE, 'back')
Case $iForward_Bttn
_IEAction($oIE, 'forward')
Case $iStop_Bttn
_IEAction($oIE, 'stop')
EndSwitch
WEnd
Файл: AutoItSyntaxHighlight.zip
Снимок:
История версий:
[1.2]
+ Добавлена поддержка списка файлов для Keywords и API
(в $AU3SH_KEYWORDS_FILE и $AU3SH_API_FILE теперь можно указать более одного пути к файлу Keywords и API разделив их символом ;)
+ Добавлены пользовательские переменные $AU3SH_KEYWORDS_FUNCS/UDFS/KWRDS/MACROS/PREPROC/SPECIAL/SNDKEYS для того чтобы указывать ключи для чтения с файла(ов) в $AU3SH_KEYWORDS_FILE.
(можно разделить строку с помощью ; для указания списка ключей (будет использован первый найденный))
* Исправлена подсветка Send Keys.
* Исправлена обработка строк содержащих часть уникальной строки используемой для замены строк (такой как '%@~@%').
[1.1] @ДАННАЯ ВЕРСИЯ "ЛОМАЕТ" ОБРАТНУЮ СОВМЕСТИМОСТЬ@
* Пользовательская переменная $iAu3SH_AddURLs переименована в $AU3SH_ADD_URLS.
* Пользовательская переменная $iAu3SH_AbortHighlight переименована в $AU3SH_HIGHLIGHT_ABORT.
ВНИМАНИЕ: В случае если True (отмена обработки), то после обработки _Au3_SyntaxHighlight нужно установить эту переменную в значение False.
+ Добавлены новые пользовательские переменные для указания ссылок при использовании $AU3SH_ADD_URLS: $AU3SH_FUNCS_URL, $AU3SH_UDFS_URL, $AU3SH_KEYWORDS_URL, $AU3SH_MACROS_URL, $AU3SH_PREPROC_URL.
+ Добавлена пользовательская переменная $AU3SH_KEYWORDS_FILE для указания пути к файлу au3.keywords.properties, если не найдено, то используется тот что в папке Resources (может быть устаревшим).
+ Добавлена пользовательская переменная $AU3SH_API_FILE для указания пути к файлу au3.api, если не найдено, то используется тот что в папке Resources (может быть устаревшим).
* _Au3_SyntaxHighlight_Proc переименована в _Au3_SyntaxHighlight.
* Имена функции были немного укорочены.
* Оптимизация скорости.
- Убрана система отладки ($fAu3SH_Debug_RE_Patterns и $fAu3SH_Debug_RE_WriteLog также были убраны).
[1.0]
* Значительная оптимизация скорости
[0.9]
+ Совместимость с AutoIt 3.3.12.0.
+ Добавлен скрипт Add missing keywords.au3 для добавления недостающих ключ. слов из новых версии AutoIt.
* Пользовательская переменная $iDebug_RegExp_Patterns переименована в $fAu3SH_Debug_RE_Patterns.
* Пользовательская переменная $iDebug_RegExp_WriteLog переименована в $fAu3SH_Debug_RE_WriteLog.
* Изменены примеры.
[0.8]
* Исправлена проблема с подсветкой кода внутри специальных ключевых слов (#region, #forceref и т.д.).
[0.7]
* Исправлена проблема с обработкой кода при включённой опции добавления ссылок ($iAu3SH_AddURLs = 1).
[0.6]
* Исправлена проблема с неверным восстановлением строк.
[0.5]
* Исправлен баг с подсветкой строк внутри блока комментариев.
* Исправлены некоторые проблемы с подсветкой спец. ключевых слов.
[0.4]
* Исправлен баг с (пере)подсветкой ключевых слов и функции внутри методах и свойствах COM объекта.
* Обновление документации.
v0.3
* Исправлена проблема когда строки и «send keys» подсвечивались внутри закомментированных строк.
* Мелкая оптимизация кода.
v0.2
+ Добавлен глобальный параметр ($iAu3SH_AbortHighlight) для отмены обработки кода (остановка выполнения функции подсветки).
-Если этой переменной присвоено значение 1, то функция вернёт исходный код AutoIt и установит @error на -1.
+ Добавлена поддержка стиля "#White space" (теперь вы можете указать этот стиль в файле au3.styles.properties).
+ Добавлена поддержка стиля "#Background", используется только для подсветки в режиме Html тегов (этот стиль также указывается в au3.styles.properties).
* Классы стилей для заголовка переименованы, к ним добавлен префикс "au3_".
* Исправлена проблема с подсветкой COM объектов.
* Исправлена проблема с подсветкой ключевых слов (keywords) внутри переменных.
* Исправлена проблема с подсветкой более одного Препроцессора (Preprocessor) когда вместо <Include.au3> используются двойные/одиночные кавычки ("Include.au3").
* Исправлена проблема с подсветкой закомментированных строк/блоков кода внутри литеральных (сплошных) строк.
* Исправлена проблема с не (корректной) подсветкой закомментированных строк.
* Исправлена проблема с преобразованием в формат BBCode.
* Теперь Препроцессор (Preprocessor) и специальные ключ. слова (keywords) подсвечиваются более корректно (удаляются все вложенные теги).
v0.1
Первая публичная версия
+ Добавлена поддержка списка файлов для Keywords и API
(в $AU3SH_KEYWORDS_FILE и $AU3SH_API_FILE теперь можно указать более одного пути к файлу Keywords и API разделив их символом ;)
+ Добавлены пользовательские переменные $AU3SH_KEYWORDS_FUNCS/UDFS/KWRDS/MACROS/PREPROC/SPECIAL/SNDKEYS для того чтобы указывать ключи для чтения с файла(ов) в $AU3SH_KEYWORDS_FILE.
(можно разделить строку с помощью ; для указания списка ключей (будет использован первый найденный))
* Исправлена подсветка Send Keys.
* Исправлена обработка строк содержащих часть уникальной строки используемой для замены строк (такой как '%@~@%').
[1.1] @ДАННАЯ ВЕРСИЯ "ЛОМАЕТ" ОБРАТНУЮ СОВМЕСТИМОСТЬ@
* Пользовательская переменная $iAu3SH_AddURLs переименована в $AU3SH_ADD_URLS.
* Пользовательская переменная $iAu3SH_AbortHighlight переименована в $AU3SH_HIGHLIGHT_ABORT.
ВНИМАНИЕ: В случае если True (отмена обработки), то после обработки _Au3_SyntaxHighlight нужно установить эту переменную в значение False.
+ Добавлены новые пользовательские переменные для указания ссылок при использовании $AU3SH_ADD_URLS: $AU3SH_FUNCS_URL, $AU3SH_UDFS_URL, $AU3SH_KEYWORDS_URL, $AU3SH_MACROS_URL, $AU3SH_PREPROC_URL.
+ Добавлена пользовательская переменная $AU3SH_KEYWORDS_FILE для указания пути к файлу au3.keywords.properties, если не найдено, то используется тот что в папке Resources (может быть устаревшим).
+ Добавлена пользовательская переменная $AU3SH_API_FILE для указания пути к файлу au3.api, если не найдено, то используется тот что в папке Resources (может быть устаревшим).
* _Au3_SyntaxHighlight_Proc переименована в _Au3_SyntaxHighlight.
* Имена функции были немного укорочены.
* Оптимизация скорости.
- Убрана система отладки ($fAu3SH_Debug_RE_Patterns и $fAu3SH_Debug_RE_WriteLog также были убраны).
[1.0]
* Значительная оптимизация скорости
[0.9]
+ Совместимость с AutoIt 3.3.12.0.
+ Добавлен скрипт Add missing keywords.au3 для добавления недостающих ключ. слов из новых версии AutoIt.
* Пользовательская переменная $iDebug_RegExp_Patterns переименована в $fAu3SH_Debug_RE_Patterns.
* Пользовательская переменная $iDebug_RegExp_WriteLog переименована в $fAu3SH_Debug_RE_WriteLog.
* Изменены примеры.
[0.8]
* Исправлена проблема с подсветкой кода внутри специальных ключевых слов (#region, #forceref и т.д.).
[0.7]
* Исправлена проблема с обработкой кода при включённой опции добавления ссылок ($iAu3SH_AddURLs = 1).
[0.6]
* Исправлена проблема с неверным восстановлением строк.
[0.5]
* Исправлен баг с подсветкой строк внутри блока комментариев.
* Исправлены некоторые проблемы с подсветкой спец. ключевых слов.
[0.4]
* Исправлен баг с (пере)подсветкой ключевых слов и функции внутри методах и свойствах COM объекта.
* Обновление документации.
v0.3
* Исправлена проблема когда строки и «send keys» подсвечивались внутри закомментированных строк.
* Мелкая оптимизация кода.
v0.2
+ Добавлен глобальный параметр ($iAu3SH_AbortHighlight) для отмены обработки кода (остановка выполнения функции подсветки).
-Если этой переменной присвоено значение 1, то функция вернёт исходный код AutoIt и установит @error на -1.
+ Добавлена поддержка стиля "#White space" (теперь вы можете указать этот стиль в файле au3.styles.properties).
+ Добавлена поддержка стиля "#Background", используется только для подсветки в режиме Html тегов (этот стиль также указывается в au3.styles.properties).
* Классы стилей для заголовка переименованы, к ним добавлен префикс "au3_".
* Исправлена проблема с подсветкой COM объектов.
* Исправлена проблема с подсветкой ключевых слов (keywords) внутри переменных.
* Исправлена проблема с подсветкой более одного Препроцессора (Preprocessor) когда вместо <Include.au3> используются двойные/одиночные кавычки ("Include.au3").
* Исправлена проблема с подсветкой закомментированных строк/блоков кода внутри литеральных (сплошных) строк.
* Исправлена проблема с не (корректной) подсветкой закомментированных строк.
* Исправлена проблема с преобразованием в формат BBCode.
* Теперь Препроцессор (Preprocessor) и специальные ключ. слова (keywords) подсвечиваются более корректно (удаляются все вложенные теги).
v0.1
Первая публичная версия
- Автор
- G.Sandler (CreatoR)
- Источник
- Ссылка на источник
Вложения
Последнее редактирование: