自定义 Xcode 文件模板
分类:技术
几年前初次接触 Xcode,就觉得它的默认的代码模板很不好:
- 文件开头都有个注释,包含创建人及创建时间。但实际上这些信息都应该是版本控制系统管理的范畴,不应该写在代码中。
- 中文系统下,根据区域设置的不同,开头的注释里,文件创建时间可能包含汉字「年」。一个汉字夹杂在周围的英文注释里非常不伦不类。
当时毕竟还是 Too Young,刚接触 OS X,照着奇怪的教程跑去 /Applications/Xcode.app
里乱改一气,虽然达到了目的,但总觉得有些怪味道,就不了了之了。
最近终于有机会重新折腾一下 Xcode,就又查了一下相关的内容。不得不说,Xcode 这方面文档真是太不友好了 =,=
自定义文件模板
/Applications/Xcode.app
里是应用自己的原生内容,不应该擅自修改。要修改文件模板,应该把对应的位于 /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates
的 .xctemplate
模板文件夹复制到 ~/Library/Developer/Xcode/Templates
改个名字后,再加以修改。
# 创建文件夹结构(默认没有 Templates 及往后的文件夹)
mkdir -p ~/Library/Developer/Xcode/Templates/File\ Templates/Source
# 复制需要修改的 .xctemplate 文件夹
# 这里是在 Source 分类下,将 Swift File 模板复制为 Empty Swift File 模板
cp -R /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File\ Templates/Source/Swift\ File.xctemplate/ ~/Library/Developer/Xcode/Templates/Source/Empty\ Swift\ File.xctemplate/
这样,修改 Empty Swift File.xctemplate/___FILEBASENAME___.swift
就可以把讨厌的注释去掉了。
这里没法修改原有模板,也没法覆盖。即便使用与 Xcode 自带模板相同的名称,也只会在新建文件的模板选择对话框里出现两个同名的模板,非常蛋疼。
细枝末节
由于相关文档不足,我又有点强迫症,于是尝试了一些东西,比如上面说的「使用与 Xcode 默认模板相同的名字没法覆盖默认模板」。
上面路径中的 ~/Library/Developer/Xcode/Templates
为用户自定义模板的根目录,这个目录下的 .xctemplate
文件夹会被 Xcode 加载。Xcode 模板中的「分类」与此处 .xctemplate
的父目录有关。
Templates/Foo.xctemplate
:Templates 分类Templates/Source/Foo.xctemplate
:Source 分类Templates/File Templates/Source/Foo.xctemplate
:Source 分类
虽然最后两种在效果上没什么区别,但还是推荐使用最后一种,与 Xcode.app
中的目录结构对应起来,会比较方便管理。
另外,使用向导填写模板参数的高级用法需要查找官方 Reference,不过粗略找了一下也没有找到官方说明,很是沮丧 :( 不过反正目前用不到 :)