[Autoit] Редактор комментариев descript.ion

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

[Autoit] Редактор комментариев descript.ion

Сообщение Loopback »

Скрипт для визуальной мультиправки комментариев. Практически полностью повторяет внешний вид стандартного диалога правки комментариев.

Предыдущие версии скрипта выкладывались в этой теме, но там решалась частная задача, и сейчас из результатов поиска понять что эта тема релевантна - не так просто.

По сравнению с предыдущей версией:

+Чтение/запись комментариев в юникоде, поддержка юникодных имен файлов
+Возможность преобразования между кодировками
+При открытии нескольких файлов можно переключаться между режимом мультиправки и отдельно выбранными файлами

Скрипт пока наверняка сыроват, пользуйтесь с осторожностью. Обратите внимание, что входные параметры теперь принимают юникодный список файлов: %WF "%P"

Скачать
Последний раз редактировалось Loopback Ср мар 20, 2019 19:16, всего редактировалось 1 раз.
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

Спасибо за обновление.
У меня с флагом MCE_MULTI_ONLY при попытке добавлении комментария к одиночному файлу никакой диалог не вызывается.
Если можно - просьба выкладывать и в виде простого au3-файла (когда скриптов много, удобней не компилировать каждый, а запускать в качестве скриптов).
Windows 11 | TC DreamLair eternal pre-α
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

LonerD
Тогда уж лучше выкладывать пару AU3 и EXE.

Loopback
Спасибо!
Даже самая богатая фантазия
Не представит себе наши безобразия.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

LonerD
Хорошо, флаг гляну. Я просто его в последнее время не использовал.

Сам скрипт выложу, просто он всё ещё не совсем готов, много завязок на другие UDF, надо почистить немного.

Второй момент - он будет работать только под бета-версией Autoit. Сейчас, учитывая что будущее бета-версии Autoit с функционалом хэш-таблиц туманно, я уже не так уверен, что стоило сильно на него завязываться. Но было трудно удержаться, уж больно удобная штука.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Loopback писал(а):Хорошо, флаг гляну.
Гляньте, пожалуйста. Не работает.

Ещё момент. Если выделено несколько файлов и ни у одного из них нет комментария, то кнопка Neighbour неактивна. Но при этом окошко Neighbour всё равно вызывается по Ctrl+W! Вот бы поправить это, чтобы не вызывалось при неактивной кнопке. А то непоследовательно получается.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Обновил утилиту, скачать последние версии можно будет с этой страницы.
  • исправлено некорректное добавление и сохранение соседних комментариев
  • исправлено поведение комбинации Ctrl+W при отсутствии соседних комментариев
  • исправлен баг с позицией курсора, который оказывался в начале строки вместо конца
  • добавлена комбинация клавиш Alt+Стрелка Вверх/Alt+Стрелка Вниз для переключения между файлами
  • добавлена комбинация клавиш Alt+Home для быстрого возврата в режим мультиправки
По поводу флага MCE_MULTI_ONLY - проблем не нашел. Если что, параметры команды должны быть такие:

Код: Выделить всё

%WF "%P" MCE_MULTI_ONLY
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Loopback
Спасибо! У меня всё замечательно работает, в том числе и флаг.

На русской странице утилиты ссылка на последнюю версию, а на английской старая ссылка на предыдущую версию.

Пару дней назад искал эту тему поиском, но так и не нашёл, пока носом меня не ткнули. А дело то было в ключевых словах! Оказывается на этой странице ни в одном посте утилита не названа своим старым именем. Оставлю их здесь в посте, чтоб другим легче было искать.
Ключевые слова: tc_multi_comment_edit; multi_comment_edit; TCMultiCommentEditor; MultiCommentEdit; Multi Comment Edit.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
1. Системный масштаб не учтён — возникают лишние поля по краям.
2. В UTF-8 descript.ion сохраняется с лишней пустой строкой сверху.
3. Скорость появления окон оставляет желать лучшего. Для системной Ctrl+Z вместо MCE_MULTI_ONLY пришлось делать 2 команды:
em_MultiComment:

Код: Выделить всё

%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef if(msg(1074,1004+msg(1074,1000))<2,tcm(2700),tem(em_MultiComment2))
em_MultiComment2 — вызов проги.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Flasher
Скорость появления окна действительно заставляет подождать, но это только в первый раз в пределах сессии.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

imig73
При чём тут сессия? Никакой разницы в моментах запуска нет.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а): Системный масштаб не учтён — возникают лишние поля по краям.
Учтён, но в прошлогодней версии был сломан. Исправлю.
Flasher писал(а): В UTF-8 descript.ion сохраняется с лишней пустой строкой сверху.
Этот вопрос к Гислеру, зачем он сделал обязательную пустую строку в UTF-8.
Flasher писал(а):Скорость появления окон оставляет желать лучшего.
Ясное дело, что интерпретируемый язык всегда будет работать медленнее нативной реализации - если сравнивать со скоростью появления родного окна тотала. Но вот по конкретной скорости всё субъективно.

Чтобы не быть голословным, измерил скорость загрузки скрипта от момента запуска до момента после появления окна. Виртуалка, в файле 18 записей, скорость загрузки в нескольких запусках 40-55мс. Та же виртуалка, для теста взят каталог 440 файлов, у всех есть комментарии по 20 символов, скорость загрузки 200-205мс.

Много это или мало? Не знаю. Я весьма критично отношусь к скорости запуска программ, но до сих пор в обычном использовании я ни разу не сталкивался задержками, которые могли бы доставить дискомфорт. Если кто-то эти задержки ощущает и кого-то это напрягает - увы, тут я не могу ничем помочь.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Loopback
Задержки ощущаю в сравнении с нативным окном, но вовсе не напрягают учитывая что скрипт внешний и его функционал полностью перекрывает эти вынужденные подтормаживания при вызове окна.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Этот вопрос к Гислеру
При чём тут Гислер, если утилита файл таким создаёт?
Loopback писал(а):Много это или мало?
У меня даже на паре файлов около 6-8 дс. Для меня это ощутимо. Окна в твоих скриптах замены появляются шустрее.
Loopback писал(а):тут я не могу ничем помочь
Я это отчасти за тебя сделал. Мне главное, чтобы системный появлялся быстрее, т. к. в десятки раз чаще требуется.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):При чём тут Гислер, если утилита файл таким создаёт?
При том, что тотал создает точно так же, и если пробел не добавлять - файл не читает.
Flasher писал(а):У меня даже на паре файлов около 6-8 дс. Для меня это ощутимо. Окна в твоих скриптах замены появляются шустрее.
6-8 дс - это сколько?

Скрипты замены не делают ничего сложного перед появлением окна. Тут же приходится прочитать файл и в зависимости от кодировки делать или не делать преобразования, которые занимают время. Да еще и реализация DllStruct в Autoit хоть и весьма удобна, но и довольно нетороплива.

К слову, самый быстрый вариант, при котором вообще нет дополнительных преобразований - если сохранять в UTF-16 LE.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):При том, что тотал создает точно так же, и если пробел не добавлять - файл не читает.
Пробел? Я не писал про пробел. А без верхнего перевода строки прекрасно читает.
Loopback писал(а):6-8 дс - это сколько?
0.6-0.8 сек. Эта дольная единица изучается с младших классов школы.
Loopback писал(а):и в зависимости от кодировки делать или не делать преобразования
ТС же только с ВОМ пишет, чтение с анализом малюсенького кусочка должно быть мгновенным.
Loopback писал(а):самый быстрый вариант - если сохранять в UTF-16 LE.
Для начала код нужен. Тут вообще раздел по скриптам, утилиты — в Плагинах. Тем более, что с учётом маркера в заголовке исходник сам напрашивается. :roll:
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить