C#開発者として、Visual Studio 2008の自動書式設定に大きく依存するようになりました。具体的には、 CTRL + K 、 D ずさんな実装の後、強制的に形状に戻すキーボードショートカット。
私は現在Objective-Cを学ぼうとしており、Xcodeの特定の機能が欠落していますが、おそらくフォーマットショートカットと同じくらい苦痛なものはありません。いくつかのハッキングがあるように見えますが、私のGoogle検索では何も組み込まれていません。 Xcodeに何か欠けているのか、この機能がネイティブに存在しないのですか?
残念ながら、XcodeにはVSやJalopy for Eclipseほど広範なものはありません。 Structure > Re-Indent
やソースファイルにコードを貼り付けるときに使用される自動書式設定など、いくつかの異なる機能があります。私は完全にあなたと一緒です。間違いなくshould書式設定の問題に役立つ何かがそこにあります。
それは Ctrl + i。
または、ローテクの場合は、カットしてから貼り付けます。貼り付け時に再フォーマットされます。
検討する価値のある2つのオプションをお勧めします。まったく新しく、進化しています。
ClangFormat-Xcode (無料)-各cmd + sファイルで特定のスタイルに再フォーマットされ保存され、チーム内での展開が簡単
@travisjefferyによるClangのフォーマットツールを使用してコードをフォーマットするXcodeプラグイン。
Clang-formatを使用すると、Clangを使用して、LLVM、Google、Chromium、Mozilla、WebKit、または独自の構成などのスタイルにコードをフォーマットできます。
Objective-Clean (有料、まだ試していない)-定義済みのスタイルルールに違反している場合、アプリでビルドエラーが発生する-チーム内で使用するのは非常に難しい可能性があるため、試していない。
非常に最小限の設定で、Xcodeにアプリを使用してルールを適用させることができます。ルールの1つに違反していることがわかれば、Xcodeはビルドエラーをスローし、問題のある行に移動します。
Xcodeでは、このショートカットを使用してソースコードをフォーマット(再インデント)できます
Command + A すべてのソースコードを選択するには
Ctrl + I 再インデントする
お役に立てれば。
私の個人的なお気に入りPrettyC wantabeはuncrustifyです: http://uncrustify.sourceforge.net/ 。ただし、数十億のオプションがあるため、UniversalIndentGUI_macx(sourceforgeでも)をダウンロードすることをお勧めします。
次に、このカスタムユーザースクリプトを追加して、選択したテキストを非クラス化できます。
#! /bin/sh
#
# uncrustify!
echo -n "%%%{PBXSelection}%%%"
/usr/local/bin/uncrustify -q -c /usr/local/share/uncrustify/geo_uncrustify.cfg -l oc+ <&0
echo -n "%%%{PBXSelection}%%%"
使用できます Command + A すべてのコンテンツを選択して Ctrl + I 選択したコンテンツをフォーマットします。
CmdA + CtrlI
または CmdA そして右クリック。ジャンプ構造->再インデント
Xcodeにもこの機能が必要だと感じています。だから私はそれを行うための拡張を行いました: Swimat
brew cask install swimat
による簡単なインストール
試してみることができます。詳細については、 https://github.com/Jintin/Swimat を参照してください。
IOS/OS X開発者を支援するインテリジェントなObjective-C IDEである AppCode のライセンスを購入することを検討してください。 AppCodeはXcodeと完全に互換性がありますが、Xcodeを超えて 強力な機能 を追加しています。
Intellij IDEA IDEのObjective-CバリアントをAppCodeします JetBrains から。彼らはまた、人気のある ReSharper Visual Studioの拡張機能の作成者でもあり、ここからの主な目的は、Microsoft製品にIDEA体験をもたらす必死の試みのようです。
AppCodeは独自のコードアナライザーを使用して、ほぼ完璧なリファクタリングとコードナビゲーションをサポートしています。コードを再インデントし、コードを完全に再フォーマットする機能もあります(ハードなケースではいくつかのフォーマット設定が欠落していますが、ほとんどの場合はうまく機能します)。
もちろん、試用版を試すこともできます。
https://github.com/octo-online/Xcode-formatter もご覧ください。これはUncrustifyに基づいたフォーマッターで、Xcodeに統合されています。魔法のように機能します。
そのXCodeプラグインを試すことができます https://github.com/benoitsan/BBUncrustifyPlugin-Xcode
Githubリポジトリのクローンを作成し、XCodeでプラグインプロジェクトを開いて実行します。自動的にインストールされます。フォーマッタプラグインを使用する前にXodeを再起動します。
前にuncrustify utilをインストールすることを忘れないでください。自作、例として
brew install uncrustify
追伸[編集]> [フォーマットコード]> [BBUncrustifyPluginの設定]> [保存時にフォーマット]で[フォーマット後保存]機能をオンにできます。
これがuに役立つことを願っています;-)
ClangFormatを使用することをお勧めします。インストールするには、次の手順に従ってください。
さまざまなタイプのフォーマットを選択できます。また、Save On Formatを有効にすることで、自動フォーマット機能を利用できます。
CTRL + i
それでおしまい。
(いいえ COMMAND + i)
最初に、XCodeプリファレンスの「インデント」セクションを調べます。かなりカスタマイズできます...
より詳細な制御については、Appleの XCode User Defaults ドキュメントを参照してください。 (表示するには開発者ログインが必要な場合があります)。たとえば、ターミナルに次のように入力することで、「インデントのインデント」を無効にできました。
defaults write com.Apple.XCODE PBXIndentOnPaste No
設定を読み戻すには:
defaults read com.Apple.XCODE PBXIndentOnPaste
これは、空白が区切られていない言語でのみ機能しますが、私の解決策は、スペースを除くすべての空白を削除し、通常EOLを区切る文字の後に改行を追加することです(たとえば、「;」を「;\n」に置き換えて)、ユビキタスを行います ^ + i 溶液。
Pythonを使用します。
サンプルコード、単にファイル名を置き換える:
python -c "import re; open(outfile,'w').write(re.sub('[\t\n\r]','',open(infile).read()).replace(';',';\n').replace('{','{\n').replace('}','}\n'))"
完璧ではありませんが(例:forループ)、私は気に入っています。
Xcodeバージョン3.xの場合、 ncrustify で「ユーザースクリプト」を使用する必要があります。ここに例を示します。
#!/bin/sh
echo -n "%%%{PBXSelection}%%%"
$YOURPATH_TO_UNCRUSTIFY/uncrustify -q -c $YOURPATH_TO_UNCRUSTIFY_CONFIG/CodeFormatConfig.cfg -l OC+
echo -n "%%%{PBXSelection}%%%"
上記をXcodeの「ユーザースクリプト」に追加します。
xcodeバージョン4.xの場合、このブログを読むべきだと思います: Xcode 4のコードフォーマット 、
このように、「Apple Services」を使用しましたが、それは十分ではなく、遅すぎる経験を引き起こします、誰も同じことを持っていますか?
なぜApple drop "user script" .... xD
スウィフト- https://github.com/nicklockwood/SwiftFormat
Xcode拡張機能とCLIオプションを提供します。
Uncrustifyを使用するXcode Formatterを使用して、チームの希望どおりにソースコードを簡単にフォーマットできます。
インストール推奨される方法は、GitHubプロジェクトを複製するか、 https://github.com/octo-online/Xcode-formatter からダウンロードし、XcodeプロジェクトにCodeFormatterディレクトリを追加して、Xcodeショートカットを取得することです。ベースのコードフォーマット:現在のワークスペースで変更されたソースをフォーマットするショートカット自動コードフォーマット:アプリケーションがすべてのソースをフォーマットするときにプロジェクトにビルドフェーズを追加して現在のソースをフォーマットする:プロジェクトで共有されるフォーマットルールを1つのコマンドラインですべてのコードをフォーマットする:プロジェクト開発チームで同じ構成ファイルを編集して使用する1)プロジェクトのコードフォーマッタをセットアップする方法uncrustifyをインストールする最も簡単な方法はbrewを使用することです:$ brew install uncrustify
Brewをインストールするには:$ Ruby –e“ $(curl –fsSkl raw.github.com/mxcl/homebrew/go)”
Uncrustifyが/ usr/local/binにあることを確認してください$ uncrustify
Uncrustifyのバージョンが0.60より低い場合、最近のObjective-C構文が最近追加されたため、手動でインストールする必要があります。 .xcodeprojファイルの横にCodeFormatterディレクトリを追加します
Xcodeアプリケーションの名前が「Xcode」(デフォルト名)であることを確認してください。この名前は、Applications /ディレクトリ(またはカスタムXcodeインストールディレクトリ)で確認できます。 MacにXcodeのインスタンスが複数ある場合は注意してください。プロジェクトのインスタンスが実際に「Xcode」という名前であることを確認してください。 (これはなぜですか?この名前は、現在開いているXcodeファイルを見つけるために使用されます。CodeFormatter/ Uncrustify_opened_Xcode_sources.workflow appleScriptを参照してください)。 automatorサービスUncrustify_opened_Xcode_sources.workflowをインストールします〜/ Library/Services /フォルダーにこのファイルをコピーします(必要に応じてこのフォルダーを作成します)。注意:.workflowファイルをダブルクリックすると、インストールされますが、ファイルは削除されます!他のユーザーのために必ずコピーを残してください。
プロジェクトのビルド時に開いたファイルをフォーマットする方法次の行を含むビルドフェーズ「スクリプトの実行」を追加します。
sh CodeFormatter/scripts/formatOpendSources.sh
コマンドラインでファイルをフォーマットする方法
現在開いているファイルをフォーマットするには、formatOpenedSources.shを使用します。
$ sh CodeFormatter/scripts/formatOpendSources.sh
すべてのファイルをフォーマットするには、formatAllSources.shを使用します。
$ sh CodeFormatter/scripts/formatAllSources.sh PATH
PATHはソースパスに置き換える必要があります。
例えば;プロジェクト名がTestAppの場合、コマンドは
$ sh CodeFormatter/scripts/formatAllSources.sh TestApp
プロジェクト内のすべてのファイルを検索し、uncrustify_objective_c.cfgファイルで構成されているすべてのファイルをフォーマットします。
フォーマッターのルールを変更する方法
TextFormatでCodeFormatter/uncrustify_objective_c.cfgを開いて編集します
このパスでショートカットを表示および変更できます:Xcode-> Preferences-> Key Bindings。