この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは。きんくまです。
Xcodeで新規ファイルを作成すると、デフォルトでヘッダーコメントが挿入されます。
こんなやつです。
//
// Hello.swift
// SampleTarget
//
// Created by YourName on 2019/03/08
// Copyright © 2019 YourCompany. All rights reserved.
//
これのテンプレートを差し替えたい! 検索したところ、こちらの記事が見つかりました。
Customizing the file header comment and other text macros in Xcode 9
どうやらXcodeの機能として用意されているみたいです。
IDETemplateMacros.plistを作る
まずは IDETemplateMacros.plist
という名前のxmlファイルを作ります。
Xcodeのメニューから plistファイルが作れます。
といいつつ、中身はxmlファイルなので、ファイル名とプロパティなどの項目さえ合っていればよく、初回のみXcodeで作って、あとは普通にテキストエディタで作れば良いと思います。
中身をこんな感じにすると、デフォルトで設定される項目が記述できると思います。
keyを FILEHEADER にして、あとは string のところにテンプレートを書きます。
たぶんデフォルトのやつ
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>FILEHEADER</key>
<string>
// ___FILENAME___
// ___TARGETNAME___
//
// Created by ___USERNAME___ on ___DATE___
// ___COPYRIGHT___
//</string>
</dict>
</plist>
各変数については、後でご説明するとして、ファイルの置き場所は以下のドキュメントに書いてありました。
参照順 | 場所 | パス |
---|---|---|
1 | Project user data | [ProjectName].xcodeproj/xcuserdata/[username].xcuserdatad/IDETemplateMacros.plist |
2 | Project shared data | [ProjectName].xcodeproj/xcshareddata/IDETemplateMacros.plist |
3 | Workspace user data | [WorkspaceName].xcworkspace/xcuserdata/[username].xcuserdatad/IDETemplateMacros.plist |
4 | Workspace shared data | [WorkspaceName].xcworkspace/xcshareddata/IDETemplateMacros.plist |
5 | User Xcode data | ~/Library/Developer/Xcode/UserData/IDETemplateMacros.plist |
Xcodeは上の表で参照順の数値の少ない方から探していって、最初に見つかったものを使用します。
なので、5の~/Library ディレクトリにはデフォルトのものを置いておいて、必要があれば、1のところに追加で置くという運用もよいかなーと思います。
ちなみに1はxcodeprojの中なので、Finderのshow package contentsメニューから入れます。
マクロの変数について
マクロの変数は以下に一覧があります。
例えばファイル名だったら FILENAME
です。
ただし、埋め込む際は、左右に3つの連続したアンダースコアをつけたす必要があります。
___FILENAME___
という感じです。
変数を調整したい
変数を調整するときは、以下のドキュメントに書いてあります。
例えばファイル名から拡張子を取り除きたければこんな感じに :
の後に Modifier を書き足します。Modifier は ,
で複数追加できるみたいです。
___FILENAME:deletingPathExtension___
変数を追加したい
plistを適当にいじっていて気が付いたのですが、変数が定義できました。
plist内に以下のプロパティを追加すれば
<key>COMPANYNAME</key>
<string>会社名ですよー</string>
フォーマット内に、こんな感じにかけます。
___COMPANYNAME___
フォーマットの注意
上のブログの記事にも書いてあったのですが、フォーマットを記述する際に注意点がありまして、
- 最初の行の // はXcodeが自動で追加するので不要
- 最後の行に自動で1行空の行(改行)が追加される
という挙動があります。
実際に作ってみよう
というわけで、サンプルで作ってみました。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>FILEHEADER</key>
<string>
// ___FILENAME:deletingPathExtension___
//
// 作った人: わたしのなまえなのです
// Copyright (c) ___YEAR___ ___COMPANYNAME___
//</string>
<key>COMPANYNAME</key>
<string>会社名ですよー</string>
</dict>
</plist>
上のやつは実際には、こんな感じに出力されました。
//
// SampleFile
//
// 作った人: わたしのなまえなのです
// Copyright (c) 2019 会社名ですよー
//
まとめ
マクロの USERNAME
は macのログイン名だったりするので、USERNAME
を使わないで、plistファイルに直接書いてしまえば、いろいろとカスタマイズができますね!
xcuserdata
ディレクトリ は .gitignore
に指定されていたりすると思うので、ここに個人用設定を書いたり、xcshareddata
にプロジェクト共通の設定を置いたりする。といった運用もできるかなーと思います。
ではでは。