Страница 1 из 9

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

Добавлено: Ср мар 20, 2019 12:22
Loopback
Скрипт для визуальной мультиправки комментариев. Практически полностью повторяет внешний вид стандартного диалога правки комментариев.

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

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

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

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

Скачать

Добавлено: Чт мар 21, 2019 16:12
LonerD
Спасибо за обновление.
У меня с флагом MCE_MULTI_ONLY при попытке добавлении комментария к одиночному файлу никакой диалог не вызывается.
Если можно - просьба выкладывать и в виде простого au3-файла (когда скриптов много, удобней не компилировать каждый, а запускать в качестве скриптов).

Добавлено: Чт мар 21, 2019 16:57
Avada
LonerD
Тогда уж лучше выкладывать пару AU3 и EXE.

Loopback
Спасибо!

Добавлено: Чт мар 21, 2019 19:21
Loopback
LonerD
Хорошо, флаг гляну. Я просто его в последнее время не использовал.

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

Второй момент - он будет работать только под бета-версией Autoit. Сейчас, учитывая что будущее бета-версии Autoit с функционалом хэш-таблиц туманно, я уже не так уверен, что стоило сильно на него завязываться. Но было трудно удержаться, уж больно удобная штука.

Добавлено: Вт мар 17, 2020 02:42
yozhik
Loopback писал(а):Хорошо, флаг гляну.
Гляньте, пожалуйста. Не работает.

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

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

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

%WF "%P" MCE_MULTI_ONLY

Добавлено: Вт июн 09, 2020 20:48
yozhik
Loopback
Спасибо! У меня всё замечательно работает, в том числе и флаг.

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

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

Добавлено: Чт июн 11, 2020 13:42
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 — вызов проги.

Добавлено: Чт июн 11, 2020 16:15
imig73
Flasher
Скорость появления окна действительно заставляет подождать, но это только в первый раз в пределах сессии.

Добавлено: Чт июн 11, 2020 17:31
Flasher
imig73
При чём тут сессия? Никакой разницы в моментах запуска нет.

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

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

Много это или мало? Не знаю. Я весьма критично отношусь к скорости запуска программ, но до сих пор в обычном использовании я ни разу не сталкивался задержками, которые могли бы доставить дискомфорт. Если кто-то эти задержки ощущает и кого-то это напрягает - увы, тут я не могу ничем помочь.

Добавлено: Чт июн 11, 2020 22:58
imig73
Loopback
Задержки ощущаю в сравнении с нативным окном, но вовсе не напрягают учитывая что скрипт внешний и его функционал полностью перекрывает эти вынужденные подтормаживания при вызове окна.

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

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

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

К слову, самый быстрый вариант, при котором вообще нет дополнительных преобразований - если сохранять в UTF-16 LE.

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