Модуль для вывода отладочной информации
Posted: Sat 08 Feb, 2014 16:02
Модуль использует функцию OutputDebugStringW, посылающюю стpоку отладчику, если он пpисутствует.
Вывод OutputDebugStringW может перехватываться утилитой DebugView, в результате получаем хорошее средство для вывода отладочных данных не устанавливая никаких отладчиков.
Модуль содержит четыре функции:
print(...) - аналог стандартной функции print, если параметров несколько, между ними выводится текст-разделитель. Текст-разделитель можно поменять непосредственно в скрипте, по умолчанию это один символ табуляции.
printf(fmt,...) - аналог С-шной функции, обёртка над print и string.format
clear() - очистка окна DebugView
filter(filt,delim) - при вызове функции будут созданы функции аналогичные предыдущим, но при вызове которых в начало каждой выводимой строки будет добавляться текст, заданный параметром filt:
- пустая строка - ничего не будет добавляться,
- не пустая строка - будет добавлена в начало каждой строки,
- числовое значение 0 - в начало каждой строки будет добавлено имя исходного файла lua,
- числовое значение, отличное от 0 - в начало каждой строки будет добавлено имя исходного файла и номер строки.
Не пустое значение filt будет отделено от основного текста пробелом. После имени исходного файла и после номера строки будут добавлены двоеточия.
Параметр delim, если присутствует, задаёт новую строку-разделитель параметров для print.
Использование фильтра сделано для удобства использования фильтра в DebugView. Так для приведённого выше примера 2 задаём в DebugView фильтр "FAR:" (без кавычек) который с большой вероятностью отсеет весь левый "мусор", который выводят другие программы (например, этим грешит Far2->Far3 plugin wrapper) и при этом не надо указывать фильтр каждый раз. В случае, если параметр filt задан числовым значением, для фильтра DebugView можно использовать имя исходного файла.
Установка: поместить модуль в папку %farprofile%\macros\modules
Для вывода русского и пр. текста модули должны быть в кодировке CP 65001 (UTF-8).
Вывод OutputDebugStringW может перехватываться утилитой DebugView, в результате получаем хорошее средство для вывода отладочных данных не устанавливая никаких отладчиков.
Модуль содержит четыре функции:
print(...) - аналог стандартной функции print, если параметров несколько, между ними выводится текст-разделитель. Текст-разделитель можно поменять непосредственно в скрипте, по умолчанию это один символ табуляции.
printf(fmt,...) - аналог С-шной функции, обёртка над print и string.format
clear() - очистка окна DebugView
filter(filt,delim) - при вызове функции будут созданы функции аналогичные предыдущим, но при вызове которых в начало каждой выводимой строки будет добавляться текст, заданный параметром filt:
- пустая строка - ничего не будет добавляться,
- не пустая строка - будет добавлена в начало каждой строки,
- числовое значение 0 - в начало каждой строки будет добавлено имя исходного файла lua,
- числовое значение, отличное от 0 - в начало каждой строки будет добавлено имя исходного файла и номер строки.
Не пустое значение filt будет отделено от основного текста пробелом. После имени исходного файла и после номера строки будут добавлены двоеточия.
Параметр delim, если присутствует, задаёт новую строку-разделитель параметров для print.
Использование фильтра сделано для удобства использования фильтра в DebugView. Так для приведённого выше примера 2 задаём в DebugView фильтр "FAR:" (без кавычек) который с большой вероятностью отсеет весь левый "мусор", который выводят другие программы (например, этим грешит Far2->Far3 plugin wrapper) и при этом не надо указывать фильтр каждый раз. В случае, если параметр filt задан числовым значением, для фильтра DebugView можно использовать имя исходного файла.
Установка: поместить модуль в папку %farprofile%\macros\modules
Для вывода русского и пр. текста модули должны быть в кодировке CP 65001 (UTF-8).