[Req] Плагин для search/replace в файлах
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Написание плагинов для Total Commander

#1: [Req] Плагин для search/replace в файлах Author: D1PLocation: Тбилиси PostPosted: Sun Feb 05, 2006 21:22
    —
Родилась идея wdx-плагина для find-replace в файлах.
Значением поиска для поля плагина задаём какую-то строку, содержащую в себе параметры какой текст на что менять, например так:
{текст_который_надо_заменить_в_найденных_файлах}{текст_которым_надо_заменить}

Плагин ищет в файлах текст по первому условию и заменяет на текст по второму. Не обязательно текст, любые байтовые последовательности... принцип, думаю, ясен.
Плагиновое API это позволит 100%
Как идея? Кто возьмётся?

#2:  Author: CaptainFlintLocation: Москва PostPosted: Sun Feb 05, 2006 22:14
    —
D1P
Ага. А потом кто-нибудь создасть набор колонок с полем этого плагина и, случайно открыв каталог Windows, будет долго материть всех на свете. Smile Плагин же не может определить нормальным способом, откуда его вызывают - из поиска или откуда-то из другого места.

#3:  Author: CaptainFlintLocation: Москва PostPosted: Sun Feb 05, 2006 22:17
    —
Хотя стоп. Ты тупишь, а я вслед за тобой! Откуда плагин вообще узнает, что пользователь ввёл в поле поиска? Это же всё Тотал сам обрабатывает, к плагину же лишь выполняются обращения вида: скажи-ка мне, друг любезный, а каково значение такого-то поля для такого-то файла? А вот для этого? А вон для того?..

#4:  Author: D1PLocation: Тбилиси PostPosted: Mon Feb 06, 2006 02:30
    —
Quote:
Откуда плагин вообще узнает, что пользователь ввёл в поле поиска?

На вкладке "плагины" в инструменте поиска в поле "значение" вводим строку с условиями. Из этих условий плагин и будет узнавать, что искать. Естественно, это будет не совсем контентый плагин по функционалу... Скорее это будет просто способ прикручивания нужной фичи к TC обходными путями.

Защиту от дурака тоже можно сделать - плагину достаточно проверять, существует ли дочернее окно TC класса TFindFile.

Вот сейчас подумал: если поиск в TC сначала ищет файлы по общим условиям, а потом "отдаёт" на проверку wdx-плагину, тогда всё просто. А если сначала идёт поиск по полям плагина (что, имхо, маловероятно) - тогда да, овчинка выделки не стоит, слишком сложной будет реализация (одному плагу придётся дублировать все функции поиска TC).

Если непонятно - попытаюсь утром написать простенький примерчик, заодно и проверю, что и как в поиске TC работает.

Сразу предвещу вопрос "а почему бы просто не сделать внешнюю утилиту?" - да как раз потому, что хочется пользоваться поиском TC.
---
И ещё, в качестве оффтопика. Попробовал прогу Yandex Desktop Search (http://desktop.yandex.ru/)... может у кого есть какие идеи, как прикрутить её к поиску в TC? Мне пока приходит только мысль сделать плагин-парсер выходного html...

#5:  Author: CaptainFlintLocation: Москва PostPosted: Mon Feb 06, 2006 02:40
    —
Quote:
На вкладке "плагины" в инструменте поиска в поле "значение" вводим строку с условиями. Из этих условий плагин и будет узнавать, что искать.

Так ведь эта строка всё равно не передаётся плагину, Тотал сам выполняет сравнение этой строки с тем, что возвращает плагин по запросу. Или я чего-то не так понял?

#6:  Author: D1PLocation: Тбилиси PostPosted: Mon Feb 06, 2006 03:35
    —
Да, ты прав, это я ошибся Sad Стал писать пример и только тогда понял, что условия не передаются плагину.
Конечно, это можно обойти (находить контрол с условием на закладке "Плагины" и читать текст условия оттуда), но это уже чревато проблемами.
Ладно, идея отклоняется, тему можно считать исчерпанной.

#7:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Thu Aug 03, 2006 10:45
    —
Поиск и замену лучше реализовать через архиваторный плагин – все удобства налицо.
Создать список файлов легко – просто выделить нужные файлы/папки. За программиста это делает Total.

Перед упаковкой вызвать диалог настроек, в котором задать условия для поиска/замены.
Остально делается в цикле упаковки – запрограммировать нужно только функцию замены.
+ Прикрутить RegExp и вперёд! Не нужны больше никакие платные или глюкавые серчеры/реплейсеры!



Total Commander -> Написание плагинов для Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group