Как я могу связать расширение файла с типом контента?

У меня есть несколько файлов с расширением "module" и "inc", которые являются файлами PHP. Когда я пытаюсь открыть их, в списке приложений, которые могут их открыть, отображается только приложение, которое я установил в качестве приложения по умолчанию, хотя есть другой текстовый редактор, который может открывать файлы PHP и для которого я установил файлы с этими расширениями. быть выделены, как файлы PHP.

Скриншот

Если я открою диалоговое окно «Получить информацию», выберу другое приложение в «Открыть с помощью», а затем нажму «Изменить все ...», я получу следующее.

Скриншот

Скриншот

Я хочу получить то, что показано на следующем снимке экрана, на котором показано меню «Открыть с помощью» для другого типа файла:

Скриншот

Есть ли способ связать эти расширения с типом контента, используемым для файлов PHP?
В качестве альтернативы, как я могу показать в списке приложений, отображаемых в меню «Открыть с помощью», все приложения, которые могут открывать файлы PHP, если Finder этого еще не делает?

Я объясню, что я хочу получить, используя скриншот RCDefaultApp.

Скриншот

Файл, использующий «модуль» в качестве расширения, в моем случае является файлом PHP (это модуль Drupal); я хочу добавить это расширение к тем, о которых сообщается для UTI «public.php-script».

Мне тоже не терпится узнать об этом - самое близкое, что я получил, спрашивая об UTI и Launch Services на SuperUser...
Я думаю, что использование RCDefaultApp, как ответил Кунги, - это путь. Но если вы считаете, что это конкретное расширение (я) должно быть сопоставлено с этими типами контента, вы можете написать разработчикам приложений, чтобы они предложили включить это.

Ответы (3)

Не существует безопасного и целесообразного способа добиться того, что вам нужно, потому что эта функция ОС контролируется базой данных Launch Services. Разработчики регистрируют типы файлов, поддерживаемые их приложениями, в ОС при первом запуске.

Лучший способ исправить это — обратиться к разработчику с просьбой добавить поддержку расширения файла в будущую версию своего приложения.

При этом вы уже нашли единственный задокументированный способ, который Apple предлагает для отмены указов базы данных Launch Services. Если вы хотите копнуть глубже и меньше ходить по дорогепутешествовалподдерживается вот несколько указателей.

Существует файл .plist, который управляет частью того, что делают Launch Services, расположенный по адресу: ~/Library/Preferences/com.apple.LaunchServices.plist.

Apple отмечает , что удаление этого plist может очистить ненужные параметры контекстного меню «Открыть с помощью». Но это противоположно тому, что вам нужно.

Это двоичный файл .plist, но вы можете преобразовать его в версию xml и немного поэкспериментировать, чтобы увидеть, сможете ли вы придумать рецепт для достижения того, что вам нужно. Это не рекомендуется, это может причинить вред, и, скорее всего, в какой-то момент ОС перезапишет его.

Существует также инструмент, спрятанный немного глубже в ОС, называемый lsregister , который может быть полезен при изучении сантехники Launch Services. Вот полезное объяснение lsregister и его опций .

Альтернативой решению, упомянутому Джерри, является панель настроек RCDefaultApp . Это бесплатно и позволяет вам установить все подключения Application-> Content Type, Application-> URL в вашей системе.

На панели «Приложения» RCDefaultApp вы можете указать, какие типы файлов поддерживает конкретное приложение, когда вы отметите «php» в своем редакторе, он также будет отображаться в меню «Открыть с помощью».

Это не позволяет добавлять расширения к тем, которые связаны с UTI или типом контента. Это позволяет изменить приложение по умолчанию, которое открывает файлы, что, по сути, уже разрешено Finder; разница в том, что с RCDefaultApp вы меняете его из того же места (панель настроек).
@ kiamlaluno — но вы можете создать новое moduleрасширение, а затем связать его со своим приложением. Или в чем проблема с этим??
Проблема заключается не в том, чтобы связать расширение с приложением, которое стало бы приложением по умолчанию для этого расширения; проблема заключается в том, чтобы автоматически заполнить список приложений в «Открыть с помощью». Если вы видите третий снимок экрана, который я использовал в вопросе, Xcode, Dashcode и Console показаны для расширения «.inc», но я не связал эти приложения с расширением.

В контекстном меню выберите «Информация», выберите программу для использования на панели «Открыть с помощью:» и нажмите «Изменить все...».

Я пробовал это, но единственным эффектом является изменение приложения по умолчанию для этих файлов, в то время как я хочу сохранить приложение по умолчанию, но показать другое приложение в списке приложений, показанных в подменю «Открыть с помощью».