また、自動化が必要な特定のタスク(コードの書式設定)と、自動化に役立つあらゆる種類の便利な機能を使用してXcodeを拡張する方法についての投稿を行います。 前回はCopy Paste Detectorでした。 そして、Code-Formatteraの時間です。 ここでは、自動Code-Formatterが必要かどうかという問題は発生しないとすぐに言います。 あなたがそれを必要とすることを前提としています。 それでも必要ない場合は、猫の下を見て、Xcodeで外部スクリプトを使用できることを思い出してください。
最初の目標は、ソースコードの一部をXcodeで自動的にフォーマットすることです。
この問題を解決するためのすぐにいくつかのオプション:
- 引き続き手動でフォーマットします
- 組み込みのXcode Reindentを使用する
- カスタムスクリプトを使用する
- 外部フォーマッタプログラムを使用し、Xcodeからテキストをコピーして、フォーマットし、テキストをXcodeにコピーして戻す
- Xcodeプロジェクトからファイルを開く他のプログラムと並行してXcodeを使用する
それらがどのように私たちに合っているか見てみましょう。
私は自分の手で修正します! Xcode 1.0の手でフォーマットする
そのような人がいます。 たぶん、彼らは本当にテキストのフォーマットを必要としません。 それが必要な人のために、しかし彼らはあまりにも怠zyです:
これは、タスク(特に、コードのフォーマット)が十分に大きい場合、自動化が長距離にわたって成功するということです。 最終的には、すべてが時間通りになります。 ただし、このタスクを手作業で行った場合と比較して、スクリプトを記述する時間+問題を解決する時間が
長い場合でも、そのようなスクリプトを記述しようとする必要があります-自動化エクスペリエンスはすべて同じです。
Xcodeでは、そうです...いいえ? 必要ありません
Xcode:に組み込まれたReindentコマンドに関する作者の意見は、コードを完全にフォーマットするには不十分です。 ただし、Xcodeで開発している多くの人はそれを使うだけです。 まだコードスタイルが残っている場合があります。 コードスタイルはどこかで説明されている場合があり、彼らはそれに従おうとします。
Re-Indentの機能はすべて、スペース/タブを正しく設定することであり、その設定はXcodeメニューの1つのタブに配置されます。
このオプションにはさまざまな設定が豊富ではありませんが、大きな利点があります。 Xcodeに組み込まれています。 何もインストールする必要はなく、インターネットをサーフィンしてスクリプトを実行する必要もありません。 コードを選択し、^ Iを押します。 たぶん、これはXcodeを積極的に防御する人々が好む部分です。
カスタムスクリプト? だから、彼らはXcode 4でなくなっていた...
はい、Xcode 3に比べて Xcode 4には多くはありませんでした。ユーザースクリプトは、Xcode 4が実行しなかったもののリストに移動するだけです。
しかし、善良な人々は考え、考え、外に出ました。 彼らはAutomatorサービスを使用し始めました。 Xcode 3のユーザースクリプトの意味は正確ではありませんが、多くのタスクを解決します。
Xcode統合
親切な人々とオープンソースのおかげで、UncrustifyをXcodeに統合することは非常に簡単な作業になりました。
Autocator Servicesを介してUncrustifyをXcodeに統合するプロジェクトはGitHubにあります 。
Uncrustifyを配置し(プロジェクト自体で説明したように、原則としてhomebrewを使用してuncrustifyをインストールしました)、サービススクリプトを正しいフォルダー( 〜/ Library / Services / Automator / )に配置します。 利益 すべてが正しく実行されると、Xcodeのメニューに追加のコマンドが表示され、コードをフォーマットでき、Xcodeを終了せずに使用できます。
そして、コードをハイライトして右ボタンを押すと、次のことがわかります。
次はどこ?
上記のすべての手順を完了すると、Xcodeでテキストを自動的にフォーマットできます。
次に何をするかは、以前に何が必要だったかによって異なります;)
タスクが元々コードの自動/半自動フォーマット用に設定されていた場合、 uncrustify.cfg構成ファイルのセットアップを開始する必要があります 。 uncrustifyを含むクロスプラットフォームのコードフォーマッターエディターであるUniversal Indent GUIは、これに役立ちます。
Xcodeで外部スクリプトを実装する可能性に関心がある場合は、既成の接続サービスの例を使用して試行錯誤することで、多くの有用なものを思い付くことができます。
代替案
個人的には、一度にHabréですでに記述されて いるAppCodeの方向を調べることをお勧めします。 30日間の無料期間で支払われた場合でも。 Appcodのコードフォーマットの問題は、まったく異なるレベルで解決されています。
合計
タスクがあります。 常に解決策を見つけることができます。 時々、この決定は正確であり、迅速に働き、タスクを解決します。