>>Не переписать, а дописать.
>
>Я понимаю ваш оптимизм. Когда-то много людей кричало: "Откройте Фар, и мы
>его быстренько портируем на Линукс". Фар давно открыли, и что? Где
>все те люди? Почему Фар не портируется?Я не знаю — я им никогда не пользовался, мне он не интересен.
>Есть, правда, отдельные личности, пускающие Фар в wineconsole. Но это за гранью
>здравого смысла.
Это их проблемы. Я wc когда-то под Wine запускал — работало.
>С MC ситуация не легче. Да, поддержку .d сделать не так сложно.
>Но тут есть одна тонкость. Сейчас, когда настройки хранятся в одном
>файле, мы читаем один этот файл. Когда файлов будет много, придётся
>читать много файлов до тех пор, пока не найдём нужное. Может,
>это и копейки в дополнительной нагрузке на CPU и FS...
Да нет, это не копейки. Нагрузка возрастёт в несколько раз — до 0,001 или даже 0,003 секунды. Процесор надо беречь, а вот человеческий труд как раз очёнь дёшов. ;-)
>Сделать поддержку плагинов, не изменяя существующей архитектуры, практически невозможно.
Сделайте поддержку модулей.
> Саму архитектуру надо
>менять. Это во-первых. А во-вторых, нужно спроектировать PluginAPI, которого пока нет
>даже в зачатках (речь идёт ведь не о VFS?). Это большой
>и непростой вопрос. В-третьих, это PAPI надо тщательно тестировать, при этом
> что-то меняя, чтобы стало удобнее, проще и безопаснее. Это долгий
>процесс, и кавалерийским наскоком тут действовать нельзя.
Ну так забейте. Сделайте что-то по-проще. Это ж опен-сорс — кому что-то не понравится, тот и поправит. VFS ведь прикрутили хоть как-то?
Например поддержка внешних листеров есть ("Filtered view"), а вот библиотеки внешних листеров нет. Всего-то надо сделать так, чтобы можно было или ввести команду, или выбрать её из библиотеки. Например как сделано в команде "External Panelize". Сделать так, чтобы эти команды читались не из mc.ini/[FilteredView] а из независимых файлов в каком-то каталоге. Тогда я просто сделаю RPM-ку с кучей скриптов, которую буду закидывать на машину не теребя разработчиков mc. Или хотя-бы поддердку .d закоммитьте — я тогда сделаю себе купу .ini-шек с нужными мне секциями.
Пример Filtered View:
+---------------------- Filtered view -----------------------+
| Select command: |
| ls -l |
| df -h |
| uname -a |
| mount |
| cat /proc/cpuinfo |
| |
| Filter command and arguments: |
| df -h |
| [< OK >] [ Add ] [Remove] [ Cancel ] |
+------------------------------------------------------------+
(Кнопочки Add/Remove необязательны если есть поддержка .d-каталога).
PS.
Было бы очень смешно, если бы Линус сделал поддержку внешних модулей только в 3-ей версии своего емулятора терминала, после многих лет тщательного тестирования...