我想让XCode 4将自定义文件扩展名(例如* .lx)识别为Objective-C,以便进行语法高亮和缩进。如何让工具自动执行此操作?
答案 0 :(得分:27)
Xcode根据文件Uniform Type Identifier确定如何在其用户界面中表示文件。据我所知,无法向现有UTI添加其他文件扩展名标签,但您可以声明符合要映射到的类型的新UTI。然后,系统将指定的文件扩展名与您的新UTI相关联,并通过一致性Xcode与其他所有UTI感知应用程序将这些文件识别为映射类型的源代码。
您可能想要考虑向新UTI声明的位置。例如,如果工具正在创建此类文件,则该工具的包将是最合适的位置。如果没有更好的替代方案,您可以创建存根应用程序包并在那里声明新的UTI:
com.yourdomain.objective-c-source
。public.objective-c-source
。您可以通过浏览system-declared UTIs列表或在Xcode的Info.plist中导出的列表来查找。Xcode现在应该对具有指定扩展名的文件使用适当的语法高亮显示。
如果这不起作用,请检查构建的应用程序的Info.plist,以确保所有预期信息都没有任何尾随空格。您还可以使用lsregister
检查UTI是否已注册:
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump
在输出中搜索您的UTI标识符,并验证它是否存在并处于活动状态。
答案 1 :(得分:14)
Xcode有" Type" "属性检查器中的字段" (项目中的最左边的标签"实用程序"右侧边栏)用于项目中的文件:
正如您在上面所看到的,我设置我们的项目Fastfile
被识别为Ruby脚本 - 尽管缺少预期的.rb
扩展名。产生预期的语法高亮(使用我的自定义颜色方案):
注意:这仅适用于将文件添加到组中的项目(不在文件夹参考中)的情况:
这可能不太理想,但Xcode不能保留在项目文件中未明确跟踪的文件属性。根据设计,文件夹在Xcode项目中没有内容条目,因为它意味着动态。
答案 2 :(得分:8)
在Xcode中,当您的文件在编辑器中处于活动状态时,您将转到编辑器菜单 - >语法着色 - >目标C
这会将objective-c语法着色应用于文件。无论扩展名如何,我都使用纯文本文件为我工作。
这似乎也适用于自动缩进