Подтвердить что ты не робот

Как заставить XCode распознавать пользовательское расширение файла как Objective-C для подсветки синтаксиса?

Я хотел бы, чтобы XCode 4 распознал пользовательское расширение файла (например, *.lx) как Objective-C для выделения синтаксиса и отступов. Как получить инструмент для автоматического выполнения этого?

4b9b3361

Ответ 1

Xcode определяет, как представлять файл в своем пользовательском интерфейсе на основе файла Uniform Type Identifier. Насколько я знаю, невозможно добавить дополнительные теги расширения файлов к существующему UTI, но вы можете объявить новый UTI, который соответствует типу, на который вы хотите сопоставить. Затем система свяжет указанные расширения файлов с вашим новым UTI и с помощью Xcode соответствия, и каждое другое приложение, поддерживающее UTI, распознает файлы как исходный код отображаемого типа.

Вы можете подумать, где объявить новый UTI. Например, если файлы этого типа создаются с помощью инструмента, то наиболее подходящим местом будет набор для этого инструмента. В отсутствие лучшей альтернативы вы можете создать пакет приложений для заглушек и объявить новый UTI:

  • Создайте новый проект приложения Cocoa в Xcode.
  • В настройках проекта выберите цель приложения, а затем вкладку "Информация".
  • Создайте новый экспортированный UTI. UTI definition example
  • Задайте поле Идентификатор уникальному имени, используя обратную 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 и убедитесь, что он присутствует и активен.

Ответ 2

Xcode имеет поле "Тип" в "Attributes Inspector" (крайняя левая вкладка в правой панели "Утилиты" ) для файлов в вашем проекте:

параметры идентификации и типа

Как вы можете видеть выше, я установил наш проект Fastfile для распознавания как Ruby Script, который он, несмотря на отсутствие ожидаемого расширения .rb. Выдача ожидаемой подсветки синтаксиса (с моей собственной цветовой схемой):

введите описание изображения здесь

Примечание. это работает только в том случае, если файл добавлен в ваш проект внутри группы (не внутри ссылки на папку):

группа fastlane

Это может быть не идеально, но Xcode не может сохранять атрибуты файлов, которые явно не отслеживаются в файле проекта. Папки, по дизайну, не имеют записей для их содержимого в проекте Xcode, так как это должно быть динамическим.

Ответ 3

В Xcode, когда ваш файл активен в редакторе, перейдите в меню редактора → Раскраска синтаксиса → Objective-C

Это применит синтаксическую раскраску objective-c к файлу. Работал для меня с помощью обычного текстового файла независимо от его расширения.

Казалось, что это работает и для автоматического отпечатка