• Программинг

Нужны источники бесперебойного питания?

Источники бесперебойного питания от дизельстор

Новая версия Unipaste 2.3

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

    добавлен макрос %code()end%, который реализует обработкку кода интерпритатором Python (требуется установленный python)
    новые макросы для работы со строками %trim()%, %ftrimupper()%, %ftrimlower()%, %lower()% и %upper()%
    макросы (кроме тех, что эмулируют клавиши) могут быть вложены друг в друга
    в окне вставки шаблона при поиске, Unipaste блокирует текст. Это позволяет реализовать одновременно правильную работу поиска и макроса %sel()%
    новый, более удобный редактор шаблонов

Ну, а теперь обо все по порядку.

Появился новый макрос %code()end%, который говорит, что текст внутри скобок должен обработать интерпритатор Python и результат работы будет вставлен в шаблон. Для реализации этой возможности требуется установить сам интепритатор и описать в настройках программы путь к нему. Внедрение этой фишки значительно расширяет возможности Unipaste. Почему был выбран Python? Изначально было несколько вариантов, но в итоге Python, как оказалось, обладает всеми возможностями, которые требовались для работы – передача скрипта напрямую интепритатору, считывание его консольного вывода, удобные функции для работы с текстом, относительно высокая популярность, небольшой размер, достаточно высокая скорость обработки скриптов.

Т.к. я не работаю с Python, я протестировал только основные функции, но по идее любые скрипты должны работать.

Сайт Python

Теперь о новых макросах для обработки текста. Теоретически все макросы, кроме эмуляции нажатия клавишь, можно реализовать с помощью скриптов Python, но не все хотят возиться с ними, да и скорость работы встроенных макросов на порядок выше скприптов. Итак:

    %ftrimupper()% – делает первую букву заглавной, но перед этим удаляет пробелы в начале и конце текста
    %ftrimlower()% – также как и предыдущий макрос, но делает первую букву строчной
    %upper()% – все буквы в тексте становятся заглавными
    %lower()% – все буквы в тексте становятся строчными
    %trim()% – удаляет пробелы в начале и конце текста

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

%lower(%trim( ПриВет )%)%

Вернет привет без пробелов.

Также хочу напомнить порядок выполнения макросов:
Первыми выполняются макросы, которые вставляют и обрабатываю текст.
Далее макрос code для обработки скриптов Python.
И последним макрос key() для эмуляции нажатия клавишь.

Исходя из этой последовательности можно сделать вывод, что если в макросе code будут использованы макросы обработки текста, то они будут выполнены до передачи скрипта интерпритатору и, соответсвенно, будут формировать скрипт.

Еще одно значительное новшество касается редактора шаблонов. Обычное текстовое поле заменено компонетом Scintilla. Позже я настрою подсветку для Python и реализую некоторые его возможности.