CompareSources
инструмент для сравнения исходников внешней программой сравнения, например WinMerge
Скачать yandex.ru
Тема на англ. форуме
Установка: всё стандартно, кладём в папку инструментов добавляем как инструмент с параметрами "%FILE" "%TEMPFILE". У не сохранённых переменная %FILE пуста, поэтому будет использоваться "%TEMPFILE". А у сохранённых не логично использовать "%TEMPFILE", так как в проге сравнения будут темповые имена сравниваемых файлов.
Применение: для простоты лучше добавить хоткей на вызов инструемента, у меня не занята Alt+Y. Жмём хоткей на одной вкладке, переключаемся на другую вкладку и жмём опять хоткей, при этом эти два исходника откроются в WinMerge или в другой заданной в ini-файле проге.
Я вынашивал планы добавить эту фичу с неделю, так как в AkelPad есть скрипт winMergeTabs.js делающий аналогичное, с чуть лучшим алгоритмом, там второй раз хоткей вызывать не надо, клик на новую вкладку активирует сравнение. Но для такого функционала нужно встраивать его в IDE, чтобы он реагировал на смену вкладки.
ini-файл:
firstsrc = здесь путь для первого захваченного исходника, на втором выборе исходника он сбрасывается в пустую строку.
prog = C:\Program Files\WinMerge\WinMergeU.exe - прога сравнения
arg = "%f1" "%f2" - тут аргументы, которые могут отличатся в разных программах, поэтому они выведены отдельно. Для WinMerge можно добавить \e (Esc - для закрытия) и \x (не открывает окно при одинаковых файлах, а только сообщает в мессаге)
time = 1734100314 - метка времени захвата первого исходника
timediff = 300 - интервал между захватом первого и второго исходника (в секундах), если он превысил 5 минут (60*5=300), то сбрасывается сравнение. Например выбрал первый, а сравнение не стал выполнять, если забыть и потом начать новую попытку сравнения, то она могла бы вызов принять за второй, поэтому если произошла задержка в сравнении, то это воспринимается как отказ и сброс.
Хотелки:
1. Как то определить смену вкладки, один из вариантов прога должна висеть в процессах и проверять смену текущего дескриптора Scintilla на другой.
2. Добавить возможность указать 2 и более прог сравнения, и если это случилось, то инструмент выдаёт окошко с кнопками какой из двух и более прог использовать для сравнения исходников.
3. %TEMPFILE имеет разные имена при сравнении одной и той же вкладки самой с собой. Вот это бы как исключить и выдать что используете ту же вкладку. Возможно получить дескриптор Scintilla и при вызове того же исходника с тем же дескриптором будет критерием для предупреждения что пользователь ошибся.
Отредактировано AZJIO (14.12.2024 00:15:58)