Если бы в Тотале было специфическое понятие "поисковый FS-плагин" - был бы полностью согласен. Но такого понятия там нет,
Как это нет, когда вот он, есть.

Формально да, термин "поисковый FS-плагин" автором ТС не вводился. Но был введен более широкий термин - "виртуальные панели". А что это такое по сути? Их функционал (в смысле интерфейса с ТС) Гислером определен вполне четко и достаточно узко - "Temporary file panels just hold links to files on the local file system." (только, чтобы содержать линки на локальные файлы). Больше от виртуальной панели ничего не требуется.
А вот откуда в этой панели берутся объекты и как они организованы - это функционал плагина по отношению к юзеру. Если элементы в панели появляются в результате поиска - то это поисковый плагин, если в результате помахивания волшебной палочкой, то это волшебнопалочковый плагин.
Между прочим, когда-то давно я попытался в обычном FS-плагине реализовать кое-какую работу с локальными файлами, напоролся на одну проблему и обратился к Гислеру. Он отреагировал на удивление быстро - "I have already described that the file system plugin must use the temp panel API to redirect TC to already existing files. The temp panel API has been created exactly for this purpose." Типа, "Я уже объяснял тебе, тупому - если надо что-то делать с локальными файлами используй API "виртуальных панелей" и отдавай ссылки на файлы ТС. Именно для этого API и был создан".
Позже, когда обсуждалась возможность сделать быстрый поиск в ТС я вспомнил, про этот ответ и , как радостный дурак, поскакал делать FSE. А тут и выяснилось, что ТС почему-то согласен в виртуальных панелях обслуживать только запросы по F3 и F4.
Просите Гислера превратить семунтику в реальные компоненты интерфейса
Вот это хороший совет, согласен. Я лично просил его дважды. И для поисковых плагинов, и для консоли. Так что, пока будут просить единицы - глухой номер, а если будет много народу просить - может и сделает.
С точки зрения Тотала - только и исключительно второе.
Извини, я спрашивал не про точку зрения Тотала. Я спрашивал про то, что мы(юзера) говорим.
Юзер жмёт F3 - это значит, юзер хочет просмотреть содержимое того файла или псевдо-файла, который он выделил курсором.
О! Золотые слова! Вот это и есть семантика.
Он, к сожалению, не может угадывать мысли юзера,
Он и не должен гадать. Они уже совершенно точно знает чего именно хочет юзер - "юзер хочет просмотреть содержимое того файла...".
Какова в данном конкретном случае семантика этого действия - Тотал не знает и знать не может в принципе.
Мы уже договорились о семантике - прекрасно знает - "юзер хочет просмотреть содержимое того файла..." Осталось только решить кто должен выполнить это действие. Сегодня Тотал решает, что именно он и показывает файл. А вот когда юзер хочет переименовать файл, то тут ТС почему-то не желает этого делать, хотя, опять-таки совершенно точно знает, чего именно хочет юзер - переименовать файл.
ведь именно в этом и заключается суть FS-плагинов: предоставить список элементов, которые ведут себя как файлы и каталоги, но представляют собой совершенно произвольные с точки зрения семантики объекты.
Это было бы верно для обычных FS-плагинов, но мы же говорим о виртуальных панелях. А в них все обстоит с точностью до наоборот - они содержат элементы, с жестко закрепленной семантикой - ссылки на локальные файлы. И это предопределяет все, что ты можешь с ними сделать. В том то и состоит отличие, скажем, Registry FS-плагина от виртуальной панели, что ТС
заранее знает семантику объектов и умеет выполнять все нужные операции.
плагины, семантика которых как раз в том, чтобы предоставлять ссылки на реальные объекты, сильно упростились: часть работы за них теперь выполняет Тотал.
Абсолютно верно. Проблемка только в том, что эта часть должна быть чуть-чуть побольше. Причем, это "чуть-чуть" хорошо известно.
ТС в разных местах обращается к функции FsGetFile(RemoteFile,LocalFile). Все, что нужно это (для плагинов виртуальных панелей!) заменить эти вызовы на FsGetLocalName(RemoteFile,LocalFile), чтобы плагин сообщил ТС на какой именно LocalFile ссылается объект RemoteFile. Аналогичная замена нужна для функций удаления и переименования. Все. После этого во
всех без исключения виртуальных панелях будет доступна
вся мощь ТС.
Кстати, Гислер не отрицает, что это действительно так, но тратить на эти доработки несколько недель (по его же оценкам) не желает. Вот и вся история.