post Image
【Xcode9】ファイルヘッダーコメントをカスタマイズする

Xcode9から作成するファイルのヘッダーコメントを独自定義のものに置き換えることができるようになりました。

会社でコードを書く時など、今までわざわざヘッダーファイルを調整していた方々はぜひ試してみてください :tada:

ファイルヘッダーコメントとは

Xcodeでファイルを作成する際にデフォルトでファイル上部に追加されるヘッダーコメントのことです。

スクリーンショット 2017-09-23 18.09.47.png

今までは Shunsuke Furubayashi の部分の Organization しか変更することができませんでしたが。Xcode9より全体を編集することができるようになりました。

IDETemplateMacros.plist

Xcode9より決められた場所に IDETemplateMacros.plist を定義しておくことで、Xcodeが自動で内容を読み取りファイルヘッダーを書き換えてくれます。

Apple Reference

実際の IDETemplateMacros.plist はこのような形となります。

IDETemplateMacros.plist
<?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> 
// Copyright (c) 2017年, Shunsuke Furubayashi.
// All rights reserved.
//
// GitHub:
// https://github.com/econa77
//</string>
</dict>
</plist>

上記のファイルで実際に出力されるヘッダーコメントが以下のようになります。

file.swift
// 
// Copyright (c) 2017年, Shunsuke Furubayashi.
// All rights reserved.
//
// GitHub:
// https://github.com/econa77
//

import Foundation

注意すべき点は以下の2点です。

  • 行頭の // は自動挿入される
  • 行末と import Foundation の間の改行も自動挿入

改行位置など間違ってしまうと意図しない自動改行が入りますので気をつけてください。

ファイルの置き場所

Xcodeが IDETemplateMacros.plist を自動で認識してくれるディレクトリは以下の5箇所です。
ファイルを作成した後はプロジェクトの構成に応じてこの5箇所のうちどこか1箇所にファイルを保存してください。

Project user data:
<ProjectName>.xcodeproj/xcuserdata/[username].xcuserdatad/IDETemplateMacros.plist.

Project shared data:
<ProjectName>.xcodeproj/xcshareddata/IDETemplateMacros.plist

Workspace user data:
<WorkspaceName>.xcworkspace/xcuserdata/[username].xcuserdatad/IDETemplateMacros.plist.

Workspace shared data:
<WorkspaceName>.xcworkspace/xcshareddata/IDETemplateMacros.plist.

User Xcode data:
~/Library/Developer/Xcode/UserData/IDETemplateMacros.plist.

使用できるマクロ

デフォルトで使用できるマクロは以下の種類があります。

Apple Reference

細かい出力される内容についてはAppleのReferenceを確認してください。
.plist ファイルに記述する際は下記のように ___ でマクロ名を囲むことで使用することができます。

  • ___DATE___
  • ___DEFAULTTOOLCHAINSWIFTVERSION___
  • ___FILEBASENAME___
  • ___FILEBASENAMEASIDENTIFIER___
  • ___FILEHEADER___
  • ___FILENAME___
  • ___FULLUSERNAME___
  • ___NSHUMANREADABLECOPYRIGHTPLIST___
  • ___ORGANIZATIONNAME___
  • ___PACKAGENAME___
  • ___PACKAGENAMEASIDENTIFIER___
  • ___PRODUCTNAME___
  • ___PROJECTNAME___
  • ___RUNNINGMACOSVERSION___
  • ___TARGETNAME___
  • ___TIME___
  • ___USERNAME___
  • ___UUID___
  • ___WORKSPACENAME___
  • ___YEAR___

上記のマクロを指定して IDETemplateMacros.plist を指定すると以下のようになります。

IDETemplateMacros.plist
<?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> 
// Copyright (c) ___YEAR___, ___ORGANIZATIONNAME___.
// All rights reserved.
//
// GitHub:
// https://github.com/econa77
//</string>
</dict>
</plist>

マクロの編集

マクロで出力されるテキストは正しいフォーマットを指定して編集することができます。
細かいファイルの拡張子の削除などを行いたい場合は以下のリファレンスのようにマクロを指定してください。

Apple Reference


『 Swift 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。