Xcode の便利プラグインまとめ
はじめに
Xcode 8 からのいわゆる Xcode Source Editor Extension ではなく、あくまで非公式のプラグインを掲載します。
- インストール先は
~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/
- Alcatraz などのパッケージマネージャを使うと管理が楽
- Xcode の更新でプラグインが使えなくなる事もあるので注意
- "DVTPlugInCompatibilityUUID" を追記する事で対応出来る場合もある(後述)
管理
Alcatraz
Xcode プラグインや Color Scheme などを管理するパッケージマネージャ。これを入れておけばこの記事を見なくてもだいたいのプラグインは参照できます。
メニューバー > Window > Package Manager
から開く。
対応環境
- Xcode 5, 6
- OS X 10.9以降
インストール
$ curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh
Xcode を再起動すると Window メニュー内に "Package Manager" という項目が現れる。
https://github.com/mneorr/Alcatraz
http://mneorr.github.io/Alcatraz/
JDPluginManager
Xcode プラグインを管理するためのプラグイン。Alcatraz が使えない環境では代替でこちらが利用できる。
https://github.com/jaydee3/JDPluginManager
旧 https://github.com/jaydee3/JDListInstalledPlugins
エディタ – 自動補完
AutoCoding
NSCoding や -description の実装を自動生成する。
もう配布されていないようです。-description の自動生成は [XcodeGenerateDescriptionPlugin] で代替できます。
動作環境
- Xcode 5.0, 6.1
XcodeGenerateDescriptionPlugin
選択したプロパティ定義から、-description メソッドの実装を自動生成する。モデルクラスなどの実装に役立つ。
Auto Importer for Xcode
#import
ディレクティブを自動挿入する。
Peckham
#import
ディレクティブをどこからでも挿入できるようにする。
ImportSorter
#import
ディレクティブの順番を自動で整理してくれる。
https://github.com/manji602/ImportSorter
http://qiita.com/manji602/items/25db3f65ee6fbd7b8d37
CATweakerSense
CAMediaTimingFunction のアニメーションカーブを GUI で編集できるようにする。
ヘルパーツール
ColorSense
NSColor / UIColor のコードを OS 標準のカラーパネルで編集できるようにする。
Xcode 8からは標準機能になったので不要と思われる。
動作の様子
http://www.youtube.com/watch?v=eblRfDQM0Go
ColorSenseRainbow
Swift に対応した NSColor / UIColor のコードを OS 標準のカラーパネルで編集できるようにするやつ。
Xcode 8からは標準機能になったので不要と思われる。
FuzzyAutocompletePlugin
Xcode のコード補完機能を “Open Quickly” と同じような部分一致にする。Xcode 7.3 以降では標準機能になったので不要と思われる。
HOStringSense for Xcode
NSString 編集機能を拡張する。"
\n
等がより自然に入力できるようになる。
IntelliPaste
良い感じにペーストできるようにする。
RGB値をNSColor/UIColor定義にしてくれる機能もある。
KSImageNamed-Xcode
UIImage のファイル名を補完する。画像プレビュー機能つき。
Xcode 8からは標準機能になったので不要と思われる。
解説記事
http://cocoadays-info.blogspot.jp/2013/01/xcode.html
LicenseNotice_XcodePlugin
MIT, Apache, GPL などのライセンス条文をソースコードファイルに挿入する。
SCXcodeSwitchExpander
switch 文の補完機能を拡張するプラグイン。enum 定義から自動判定して必要な case が補完されるようになる。
UselessPlugin
Objective-C++ 向けの補完機能を追加するプラグイン。
VVDocumenter
“///”と打つとJavaDoc風のコメントを挿入できるようにする。
XCActionBar
Alfred のような感じにアクションを即座に実行できるようにする。
XcodeBoost
シンボルハイライト、メソッドの選択、メソッド定義のコピー、正規表現によるハイライト、インデントを考慮したペースト等の編集機能を追加する。
エディタ – コード整形
BBUncrustifyPlugin-Xcode
ソースコードを整形する
ClangFormat
ClangFormat を使ってコードを整形する。
https://github.com/travisjeffery/ClangFormat-Xcode
http://clang.llvm.org/docs/ClangFormat.html
ClangFormat-XcodeでObjective-Cのコードを整形してみた
導入からカスタマイズまでの方法がまとまっています。
Helmet
Apple のフレームワークに含まれるヘッダーファイルを誤って編集できないように編集不可にする。
XAlign
コードを =
で揃えたりする。
エディタ – 表示系
AdjustFontSize
⌘ +
⌘ -
でフォントサイズを変更できるようにする。使ってみたが、動作が割と重い。
AutoresizeMask for Xcode
UIViewAutoresizingMask の記述にフォーカスを当てると、現在の状態を図で表示する。ただし、IB のようにクリックしてコードが反映される機能はない。
メニューバー Edit
> Show autoresizing masks…
で有効になる。
Backlight
現在行の背景色を描画する。
BlockJump
ブロック単位でカーソル移動する。
SCXcodeEditorInset
エディタの最下端の領域に余白を作る。
SCXcodeMinimap
Sublime Text のようなプレビュー機能を追加する。
TOCAssetCatalogBackground
xcassets の編集画面の背景色を黒くすることができるスイッチを追加する。(白系のアイコンが見やすくなる)
Polychromatic
プロパティ、ivars, ローカル変数ごとに色を変える事ができる。
XToDo
TODO
,FIXME
,???
,!!!!
がついたコメントを一覧表示する。
Xcode4_beginning_of_line
HOMEキーでホワイトスペースのない最初の行へ移動する。
ローカライズ
Lin
NSLocalizedString の入力を楽する。
https://github.com/questbeat/Lin
https://github.com/questbeat/Lin-Xcode5
Xcode Quick Localization
NSLocalizedString の入力を楽にする。
Xiblingual
xib, StoryBoard のローカライズを補助する。
動作環境
- Xcode 5.1
Vim
XVim
vim キーバインド
viXcode
vim キーバインド(SIMBL プラグイン)
Vicious for Xcode
Interface Builder
RRConstraintsPlugin
Interface Builder に AutoLayout 関連の機能を追加するらしい。
MoarFonts
カスタムフォントのプレビューができる。有料。
解説記事
http://d.hatena.ne.jp/shu223/20140315/1395050662
コンソール
BBUDebuggerTuckAway
デバッグ中に文字入力を開始したらデバッガーパネルを自動で閉じるようにする。
[DBSmartPanels] にも類似機能がある。
Xcode Auto Close Debug
デバッグが終わったらデバッグパネルを自動で閉じるようにする。
XCAddedMarkup
コンソールに画像を表示できるようにする。
https://github.com/mikr/XcAddedMarkup
XcodeColors
コンソールに着色する。SIMBL プラグインとしても動作可能。
http://deepitpro.com/en/articles/XcodeColors/info/index.shtml
https://github.com/robbiehanson/XcodeColors
NSString *string = @"文字列に着色";
NSLog(@"\033[" @"bg80,10,12;" @"\033[" @"fg255,255,255;" @"%@" @"\033[;", string);
XLog
コンソールに着色する。
BetterConsole
コンソールに出力されたファイルパスをクリックできるようにする。
DebugSearch
コンソールの出力をフィルタリングできるようにする。
PluginConsole
プラグインのデバッグ向けのコンソール拡張?
MCLog
コンソールの出力をフィルタリングできるようにする。
ナビゲーション
BBUFullIssueNavigator
Issue Navigator のセルを展開して表示する。
CodePilot
検索・ナビゲーション機能拡張
Dash Plugin for Xcode
option + click のときに Dash で検索できるようにする。Dash.app が必要。
KKHighlightRecentPlugin
直近に開いたファイルをナビゲーター上でハイライト表示する。新しい順に色が濃くなる。
QuickFind
検索 command
+ F
の動作を拡張する。実行した時点で選択文字列で検索を開始できるようにする。
Xcode とシステムのキーバインドの設定が必要。
RegexSwitch
検索欄の正規表現を切り替えるボタンを追加する。
KSHObjcUML
Objective-C クラスの依存関係を出力できるようにする。
インストール
Alcatraz 経由でインストールできる。
Xcode Explorer
プロジェクト内の通知やイベントを監視して一覧表示してくれるプラグイン。
XprobePlugin
Objective-C メモリブラウザー。オブジェクトの中身をトレースして一覧で表示できる模様。
XcodeWay
Xcode やプロジェクトに関連するディレクトリに簡単に飛べるショートカットをウインドウメニューに追加する。
CocoaPods
CocoaPods for Xcode
CocoaPodUI
CocoaControls
CocoaControls
CocoaControls に登録されている情報を検索したりできる。
Git
GitDiff
git の差分をハイライト表示できる。
該当行の行番号欄の右端とスクロールバーに色が付き、カーソルを重ねると以前のコードがポップアップされる
ShowInGitHub
その他
Anglerfish
シミュレーター一覧を最近使用した順に並び替える。
LessAnim
Xcode のいくつかのアニメーションを無効化するプラグイン。
詳しくはこちら:XcodeのUIアニメーションを消すプラグインLessAnim
DBSmartPanels
デバッグパネル、ユーティリティパネル等の挙動を設定できる。
例えば、「文字入力を始めたらデバッグパネルを自動で閉じる」、「IBを起動したらユーティリティパネルを自動で開く」といったことが設定可能。
xcfui
未使用の import ディレクティブを警告表示する。
Injection for Xcode
Method Swizzling により、実行中でもコード編集しながらデバッグができるようになる。
Code Injection for Xcode (Plugin Version) from John Holdsworth on Vimeo.
http://injectionforxcode.com
https://github.com/johnno1962/injectionforxcode
KPRunEverywhereXcodePlugin
複数の実機デバイス向けに一括ビルドができるようになる。
Mini Xcode
ツールバーを隠しても Scheme を表示できるようにする。
SchemeShortcuts
Scheme に対してショートカットを割り当てる。
DerivedData Exterminator
DerivedData(ビルド時に生成されるキャッシュ等が保存されているディレクトリ)を消去するためのボタンをウインドウ/ツールバーに追加する。
CopyMethodStyle
メソッドやプロパティをいろいろな形式でクリップボードにコピーできる。
プロジェクトから Archive ビルドして .xcplugin ファイルを生成したら手動インストールする。
WindowFlex
Xcode のウインドウ幅をより縮小できるようにする。
Open with Application
ファイルのコンテクストメニューから「このアプリケーションで開く」指定が出来るようにする。
WakariyasuiCommitPopup
コミット履歴のポップアップメニューの表示を判りやすくする。
動作環境
- Xcode 5.0
Xcode4 Fixins
Xcode 4の UI の挙動を変更するプラグイン集。
動作環境
Xcode 4専用
内容
- CurrentLineHighlighter: 選択行強調
- DisableAnimations: UIアニメーション無効化
- FindFix: 検索時にオプション表示をデフォルトにする。エディタの表示がバグる?
- HideDistractions: エディタだけ表示
- InhibitTabNextPlaceholder: Tab キーによるプレースホルダ移動を禁止
- TabAcceptsCompletion: Tab キーで補完候補を選択
- UserScripts: Xcode3 風の AppleScript メニューを追加
XLocation
地図から GTX ファイルを生成できる機能を追加する。
解説記事
http://cocoadays-info.blogspot.jp/2014/05/gpx-xcode.html
Xcode Maven Plugin
Gradle Xcode Plugin
プラグインの雛形
Xcode4 Plugin Template
Xcode 4 プラグインのひな形
https://github.com/kattrali/Xcode4-Plugin-Template
Xcode5 Plugin Template
Xcode 5 プラグインのひな形
https://github.com/kattrali/Xcode5-Plugin-Template
更に詳しく
DVTPlugInCompatibilityUUID
Xcode の更新でプラグインが読み込まれなくなってしまったら、プラグインバンドルの Info.plist 内 DVTPlugInCompatibilityUUIDs
アレイに、対象の DVTPlugInCompatibilityUUID
を追記する事で対応出来る場合がある。これについては以下の記事でも解説されている。
Xcode | UUID |
---|---|
8.0 | 8A66E736-A720-4B3C-92F1-33D9962C69DF |
8beta6 | 1637F4D5-0B27-416B-A78D-498965D64877 |
7.3 | ACA8656B-FEA8-4B6D-8E4A-93F4C95C362C |
7.2.1 | F41BD31E-2683-44B8-AE7F-5F09E919790E |
7.2 | F41BD31E-2683-44B8-AE7F-5F09E919790E |
7.1.1 | 7265231C-39B4-402C-89E1-16167C4CC990 |
7.1β | CC0D0F4F-05B3-431A-8F33-F84AFCB2C651 |
7.0 | 0420B86A-AA43-4792-9ED0-6FE0F2B16A13 |
6.4 | 7FDF5C7A-131F-4ABB-9EDC-8C5F8F0B8A90 |
6.3 | 9F75337B-21B4-4ADC-B558-F9CADF7073A7 |
6.2 | A16FF353-8441-459E-A50C-B071F53F51B7 |
6.1 | C4A681B0-4A26-480E-93EC-1218098B9AA0 |
6.0 | C4A681B0-4A26-480E-93EC-1218098B9AA0 |
5.1 | A2E4D43F-41F4-4FB9-BB94-7177011C9AED |
Xcode6で動かないプラグインを対応させる
http://qiita.com/roana0229/items/c8517935b43096be4682
Xcode 5.1にupdateした後に、使えなくなったxcode plug-inを再び使えるようにする方法
http://qiita.com/roothybrid7/items/85bacb992a22aaad04cd
[暫定対応]Xcode5.1で今まで使っていたプラグインが使えなくなってしまった場合の対応
http://qiita.com/hachinobu/items/d26b86454c2f8a4e175f
DVTPlugInCompatibilityUUID
http://qiita.com/kotowo/items/39caf5d451f0a538824c
DVTPlugInManagerNonApplePlugIns-Xcode-7.1 について
Xcode7.1にアップデートしてAlcatrazが消えたら
http://qiita.com/redpanda/items/b2e6a1538bb3e71688b7
Alcatraz in XCode 7.1
http://stackoverflow.com/questions/33342969/alcatraz-in-xcode-7-1
プラグイン作成資料
Xcode Plugin が盛り上がっているらしい
http://qiita.com/griffin_stewie/items/ffb53d0a5d03fe2d91a4
初めてのXcode 5 プラグイン開発
http://dev.classmethod.jp/smartphone/xcode5-plugin-1/
Creating an Xcode4 plugin
http://www.blackdogfoundry.com/blog/creating-an-xcode4-plugin/