Ответ 1
Xcode определяет, как представлять файл в своем пользовательском интерфейсе на основе файла Uniform Type Identifier. Насколько я знаю, невозможно добавить дополнительные теги расширения файлов к существующему UTI, но вы можете объявить новый UTI, который соответствует типу, на который вы хотите сопоставить. Затем система свяжет указанные расширения файлов с вашим новым UTI и с помощью Xcode соответствия, и каждое другое приложение, поддерживающее UTI, распознает файлы как исходный код отображаемого типа.
Вы можете подумать, где объявить новый UTI. Например, если файлы этого типа создаются с помощью инструмента, то наиболее подходящим местом будет набор для этого инструмента. В отсутствие лучшей альтернативы вы можете создать пакет приложений для заглушек и объявить новый UTI:
- Создайте новый проект приложения Cocoa в Xcode.
- В настройках проекта выберите цель приложения, а затем вкладку "Информация".
- Создайте новый экспортированный UTI.
- Задайте поле Идентификатор уникальному имени, используя обратную DNS-нотацию для домена, который вы контролируете. Например,
com.yourdomain.objective-c-source
. - Установите для поля Conforms To значение UTI, на которое вы хотите установить карту, например
public.objective-c-source
. Вы можете найти это, просмотрев список объявленных системой UTI или экспортированных в Xcode Info.plist. - Установите поле "Расширения" в список расширений, разделенных запятыми, которые вы хотите связать с новым UTI.
- Завершите изменение в последнем поле, нажав кнопку возврата или перемещая фокус в другое поле.
- Создайте и запустите приложение, чтобы зарегистрировать его с помощью служб запуска.
- Перезапустить Xcode.
Xcode теперь должен использовать соответствующую подсветку синтаксиса для файлов с указанными расширениями.
Если это не работает, проверьте Info.plist встроенного приложения, чтобы убедиться, что вся ожидаемая информация отсутствует без каких-либо конечных пробелов. Вы также можете проверить, что UTI зарегистрирована с помощью lsregister
:
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump
Найдите результат для вашего идентификатора UTI и убедитесь, что он присутствует и активен.