如何使Xcode将自定义文件扩展名识别为Objective-C以突出显示语法?
我想让Xcode 4将自定义文件扩展名(例如.*.lx)识别为Objective-C,以便进行语法高亮显示和缩进。如何让工具自动执行此操作?在Xcode中,当您的文件在编辑器中处于活动状态时,您可以进入编辑器菜单->语法着色->Objective-C 这将对文件应用objective-c语法着色。为我工作的纯文本文件,不考虑其扩展名如何使Xcode将自定义文件扩展名识别为Objective-C以突出显示语法?,objective-c,xcode,syntax-highlighting,Objective C,Xcode,Syntax Highlighting,我想让Xcode 4将自定义文件扩展名(例如.*.lx)识别为Objective-C,以便进行语法高亮显示和缩进。如何让工具自动执行此操作?在Xcode中,当您的文件在编辑器中处于活动状态时,您可以进入编辑器菜单->语法着色->Objective-C 这将对文件应用objective-c语法着色。为我工作的纯文本文件,不考虑其扩展名 这似乎也适用于自动缩进。Xcode根据文件的大小确定如何在用户界面中表示文件。据我所知,不可能向现有的UTI添加额外的文件扩展名标记,但是可以声明一个符合您要映射到
这似乎也适用于自动缩进。Xcode根据文件的大小确定如何在用户界面中表示文件。据我所知,不可能向现有的UTI添加额外的文件扩展名标记,但是可以声明一个符合您要映射到的类型的新UTI。然后,系统将指定的文件扩展名与您的新UTI关联,并通过一致性Xcode,所有其他支持UTI的应用程序将文件识别为映射类型的源代码 您可能需要考虑向新UTI声明的位置。例如,如果此类型的文件是由工具创建的,则该工具的捆绑包将是最合适的位置。在没有更好的替代方案的情况下,您可以创建存根应用程序包并在其中声明新的UTI:
com.yourdomain.objective-c-source
public.objective-c-source
。您可以通过浏览Xcode的Info.plist中的或导出的列表来找到这一点lsregister
检查UTI是否已注册:
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister-dump
在输出中搜索UTI的标识符,并验证它是否存在且处于活动状态。Xcode在项目中文件的“属性检查器”(最左侧的“实用程序”右侧栏中的选项卡)中有一个“类型”字段:
如上所示,我将项目的Fastfile
设置为Ruby脚本,尽管缺少预期的.rb
扩展名。产生预期的语法高亮显示(使用我的自定义配色方案):
注意:只有将文件添加到组内(而不是文件夹引用内)的项目中时,此选项才有效:
这可能并不理想,但Xcode无法持久化项目文件中未显式跟踪的文件的属性。根据设计,文件夹在Xcode项目中没有其内容的条目,因为它是动态的。我还不知道如何自动执行此操作,但您可以在“文件检查器”面板中告诉Xcode以这种方式识别文件。我要找的是一种自动突出显示语法的方法。不是手动的。这会在我更改的文件中自动突出显示语法。或者您的意思是更改“默认文件类型”语法高亮显示,以便该类型的任何文件都具有这种高亮显示?如果是这样的话,我确实发现了这个解决方法…但还没有测试:这个方法有效!对于C++ .IPP文件,我使用了