Русское сообщество AutoIt

  • Май 20, 2012, 11:43:49 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

На форуме было сделано несколько небольших изменений...

1) Расширено поле поиска, теперь можно выбрать, искать в текущей теме, текущем разделе, по всему форуму, или с помощью Google.

2) Новым участникам форума (до 20-ти сообщении) над формой создания новой темы отображается информационный блок с некоторыми правилами и рекомендациями по созданию новой темы.

17.07.2010

Реклама

Автор Тема: AutoItSyntaxHighlight - Библиотека для подсветки синтаксиса AutoIt-кода  (Прочитано 2118 раз)

0 Пользователей и 2 Гостей смотрят эту тему.

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1399
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5058
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
AutoIt: 3.3+
Версия: 0.3

Категория: Разное

Описание: Данная библиотека предназначена для подсветки синтаксиса AutoIt-кода.
Поддерживается преобразование в Html-формат (по умолчанию), а также в BBCode-формат, для отправки на разные форумы.

На заметку: Как бы удивительно это не звучало, библиотека написана полностью на чистом AutoIt'е (даже не использует не одной подключаемой библиотеки), и поскольку библиотека довольно интенсивно использует регулярные выражения, в неё добавлена система отладки обработки регулярных выражений (которая естественно замедляет работу обработки).
Для включения данной системы достаточно выставить «1» у следующих параметров в файле библиотеки (AutoItSyntaxHighlight.au3) под #Region Global Variables:
Код: AutoIt [Выделить]
Global $iDebug_RegExp_Patterns      = 1 ; Включает отладчик регулярных выражений
Global $iDebug_RegExp_WriteLog      = 1 ; Включает запись отладки в log-файл (по завершению обработки)

Код/Пример:

Файл: AutoItSyntaxHighlight.zip

Снимок:


История версий:

Источник: www.autoit-script.ru
Автор(ы): G.Sandler (a.k.a CreatoR)




  Записан
Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.



«Не оказываю техподдержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

gregaz [?]

  • AutoIt Гуру
  • *****
  • Репутация: 230
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 938
  • Версия AutoIt: 3.3.6.1
    • Награды
CreatoR  [?]
Цитата
в неё добавлена система отладки обработки регулярных выражений.
А подробнее про нее можно ?




  Записан
Самая большая проблема – её сформулировать. 

CreatoR [?]

  • Администратор
  • *
  • *****

  • Автор темы
  • Репутация: 1399
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5058
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
gregaz  [?]
Цитата
А подробнее про нее можно ?
А что конкретно интересует, а то я подробнее могу расказать на 5 страниц :laugh:

В кратце - выводит в консоль (и/или в файл) нужную информацию о выполнении регулярных выражений (полный шаблон, время выполнения, заметки), записи где указываются номера строк скрипта (это там где выполняется рег. выражение) имеют свойство “прыгать” на нужную строку, достаточно два раза кликнуть на выделенной записи.




  Записан

gregaz [?]

  • AutoIt Гуру
  • *****
  • Репутация: 230
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 938
  • Версия AutoIt: 3.3.6.1
    • Награды
CreatoR  [?]
Цитата
А что конкретно интересует, а то я подробнее могу расказать на 5 страниц
Да вобщем пока достаточно , посмотрел на работе примера.Спасибо.Классная б-ка получилась. :IL_AutoIt_1:




  Записан

AZJIO [?]

Попробовал параметр 3 для _Au3_SyntaxHighlight_Proc
 3 - Return the result as BBCode formatted string (html tags replaced with bbcode tags).

результат без переходов на новую строку.




  Записан
Вытащи сначала бревно из своего глаза, тогда поймёшь как вытащить сучёк из глаза брата своего.

CreatoR [?]

  • Администратор
  • *
  • *****

  • Автор темы
  • Репутация: 1399
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5058
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
AZJIO  [?]
Цитата
результат без переходов на новую строку.
Полный пример использования можно увидеть?




  Записан

AZJIO [?]

В 23 строке Example.au3 поменял 0 на 3
$sAu3Syntax_HighlightedCode = _Au3_SyntaxHighlight_Proc($sAu3Code, 3)
Чтоб получить BBCode и всё появилось, но без переходов на новую строку.




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****

  • Автор темы
  • Репутация: 1399
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5058
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
AZJIO  [?]
Цитата
В 23 строке Example.au3 поменял 0 на 3
В примере из шапки? ;D Это пример для Html, конечно он не распознаёт @CRLF, в html нужно заменять на <br>.

Код: AutoIt [Выделить]
#include <Au3SyntaxHighlight.au3>

$iAu3SH_AddURLs = 1

If $CmdLine[0] = 0 Then
    $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
ElseIf FileExists($CmdLine[1]) Then
    $sFile = $CmdLine[1]
Else
    Exit
EndIf

$sAu3Code = FileRead($sFile)
$sAu3HighlightedCode = _Au3_SyntaxHighlight_Proc($sAu3Code, 3)

ClipPut($sAu3HighlightedCode)

MsgBox(64, 'Au3SyntaxHighlight', 'Highlighted code as BBCode format have been placed to clipboard')

хотя есть другая бага, остаётся лишний <span class="S..."> (вложенный)...




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****

  • Автор темы
  • Репутация: 1399
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5058
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Себе на заметку...

Свойства/методы у COM объектов не совсем корректно подсвечиваются:

Код: AutoIt [Выделить]
$oIE.Document.Body.Scroll

подсвечиваются только через один.




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****

  • Автор темы
  • Репутация: 1399
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5058
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Обновление:

Цитата
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) подсвечиваются более корректно (удаляются все вложенные теги).




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****

  • Автор темы
  • Репутация: 1399
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5058
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Обновил немного библиотеку (в связи с этим), но версия таже.




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****

  • Автор темы
  • Репутация: 1399
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5058
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Обновление:

Цитата
v0.3
* Исправлена проблема когда строки и «send keys» подсвечивались внутри закомментированных строк.
* Мелкая оптимизация кода.




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
Au3ToPost - Инструмент для расскраски AutoIt-кода
Инструменты и помощь по AutoIt
CreatoR 58 9138 Последний ответ Ноябрь 01, 2011, 16:20:10
от madmasles
 Закреплено  Нераспознанные элементы и ляпы при подсветке AutoIt синтаксиса
О проекте и форуме
CreatoR 64 10111 Последний ответ Апрель 17, 2012, 17:21:51
от Garrett
[RegExp] Нахождение кода функций в AutoIt скрипте.
Регулярные выражения и прочее
Heler 4 1286 Последний ответ Сентябрь 15, 2010, 14:22:36
от Heler
 Закреплено  Вредные и полезные привычки при написаний AutoIt-кода
Общение
CreatoR 20 2710 Последний ответ Июль 16, 2011, 13:45:30
от Kalisnik
Нужен DLL на purebasic/c++ с реализацией ХЕШЕЙ и библиотека на AutoIt для вызова
Стол заказов
Suppir 1 503 Последний ответ Июль 27, 2011, 14:56:14
от Kaster
Встройка php кода в autoit
AutoIt для новичков
uppdrag 10 760 Последний ответ Октябрь 31, 2011, 16:10:49
от uppdrag
Обработка HTML кода в AutoIt'e
Автоматизация IE и Web-интерфейса
Viktor1703 52 2465 Последний ответ Апрель 26, 2012, 18:40:25
от Viktor1703
[Баг] 3.3.8.0: Ошибка проверки синтаксиса при использований ContinueLoop
Баг-репорты и запросы на новые функции
CreatoR 13 1579 Последний ответ Февраль 02, 2012, 18:56:42
от winstan
Парочка вопросов о защите кода AutoIt после компиляции
AutoIt для новичков
firex 2 326 Последний ответ Январь 13, 2012, 16:23:49
от firex
Перевод кода работы с памятью с PureBasic на AutoIt
AutoIt для новичков
Viktor1703 0 312 Последний ответ Январь 20, 2012, 01:20:17
от Viktor1703


Реклама

* Последние сообщения на форуме
post Проблема с циклами While
[AutoIt для новичков] Andeangl Сегодня в 11:03:15
post Уроки программирования и автоматизации посредством AutoIt для чайников
[AutoIt для новичков] aak Сегодня в 09:41:45
post Re: Как спарсить ссылку внутри тега "td" определенного класса
[Регулярные выражения и прочее] eropov Сегодня в 05:27:00
post Re: Ограничение доступа(блокировка) к компьютеру если не вставлен носитель с ключом
[AutoIt для новичков] Pat4005 Сегодня в 01:02:55
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Сегодня в 00:02:03
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Май 19, 2012, 23:55:37
post Узнать значение возвращаемое функцией javascript
[Автоматизация IE и Web-интерфейса] Viktor1703 Май 19, 2012, 23:25:05
post Re: Проверка запущенного процесса на удаленной машине
[AutoIt для новичков] sngr Май 19, 2012, 23:06:52
post Re: Проверка запущенного процесса на удаленной машине
[AutoIt для новичков] Dm666 Май 19, 2012, 22:38:13
post Re: Иконка AutoIt3 для разных Dock-ов
[Графика и творчество в рамках AutoIt] Ganibal95 Май 19, 2012, 22:21:35

* Пользователи онлайн
  • Dot Гостей: 81
  • Dot Скрыт: 0
  • Dot Пользователей: 21
  • Dot Пользователи Online: