Xcode に相当する ReSharper はありますか?
-
09-06-2019 - |
質問
私は Xcode/Objective-C/Cocoa のまったくの初心者ですが、急速に学習しており、新しい言語、プラットフォーム、パラダイムを理解することを本当に楽しみ始めています。
ただし、1 つ言えるのは、長い間 Visual Studio と R# を使用してきたため、リファクタリングや補完などのコーディング ツールに甘やかされてきたということです。私の知る限り、Xcode にはこれに対するサポートがかなり限られています。もの。
その点に関して、クラスインターフェイス定義から実装スケルトンを自動的に生成するなどのコーディングヘルパーを追加するアドインなどをXcode環境で利用できるかどうか誰か知っていますか?
いないのではないかと思いますが、聞いても仕方ないと思います。
解決
あなたは次の 3 つの主要なことを探しているように聞こえます。コード テンプレート、リファクタリング ツール、オートコンプリート。
良いニュースは、Xcode 3 以降には優れたオートコンプリートとテンプレートのサポートが搭載されていることです。デフォルトでは、エスケープキーを押して明示的に完了を要求する必要があります。(これは実際にはすべてで機能します NSTextView
s;試してみてください!) 補完を自動的に表示したい場合は、次の場所にアクセスしてください。 環境設定 -> コードセンス 数秒後にポップアップが自動的に表示されるように設定します。C および Objective-C コードについては適切な補完が見つかり、C++ については非常に適切な補完が見つかるはずです。
Xcode には、使用できる堅牢なテンプレート/スケルトン システムもあります。[編集] -> [テキスト マクロの挿入] に移動すると、デフォルトで使用可能なテンプレートを確認できます。もちろん、マウスを使用してテキスト マクロを挿入する必要はありません。それはポイントを無効にします。代わりに、次の 2 つのオプションがあります。
- バックイン 環境設定、に行く キーバインド, 、そして、以下 メニューのキーバインド, 、頻繁に使用するマクロに特定のショートカットを割り当てます。私は個人的にはわざわざこれを行うつもりはありませんが、そうする素晴らしい Mac 開発者をたくさん知っています。
使用
CompletionPrefix
. 。デフォルトでは、ほぼすべてのテンプレートに特別なプレフィックスが付いており、入力してエスケープ キーを押すと、テンプレートが挿入されます。Control-/ を使用して、完了フィールド間を移動できます。ご覧いただけます Xcode のデフォルト マクロとそれに関連するマクロの完全なリスト
CompletionPrefix
エス で 曲がったスピン.独自のマクロを追加したり、デフォルトを変更したりすることもできます。これを行うには、ファイルを編集します
/Developer/Library/Xcode/Specifications/{C,HTML}.xctxtmacro
. 。構文は、非常にフレンドリーではないにしても、一目瞭然である必要があります。
残念ながら、R# に夢中になっている場合は、リファクタリング オプションに失望することになるでしょう。基本的なリファクタリングは、Xcode 内でコンテキスト メニューを使用するか、Shift-Apple-J を押すことによって提供されます。そこから、メソッドの抽出と名前変更、クラス階層を介したメソッドの昇格と降格、その他いくつかの一般的な操作を行うことができます。残念ながら、Xcode もサードパーティ ユーティリティも Resharper に近いものを提供していないため、その点では現時点では運がありません。ありがたいことに、Apple はリファクタリング機能が大幅に向上したバージョンの Xcode を開発中で実証済みなので、状況が改善し始めるまであまり長く待つ必要がないことを願っています。
他のヒント
JetBrains が Objective-C コーダー向けに適切な IDE を作成することを決定したと言えることを嬉しく思います。
それは呼ばれています アプリコード そしてそれは、RubyMine や Resharper などの他のツールに基づいています。これはネイティブの Cocoa ではありませんが、生のリファクタリング能力を大量に備えています。
http://www.jetbrains.com/objc/index.html
私はメインの Objective C プロジェクトでこれを使い始めましたが、すでにすっかり気に入っています。まだ初期段階にありますが、コード編集とリファクタリングに関しては、すでに Xcode を圧倒しています。
アップデート
完全に使える速度になりました。私はフルタイムでそれに切り替えましたが、リファクタリングとコーディングが Xcode と比較していかに素晴らしいかには今でも驚かされます。自動インポート、ほぼ無限のカスタマイズなど、多くのことを自動的に処理します。Xcode がおもちゃのように見えます。
Xcode には C および Objective-C 用のリファクタリングが組み込まれています。リファクタリングしたいものを選択し、メニュー バーまたはコンテキスト メニューから [リファクタリング...] を選択するだけで、利用可能なリファクタリングとプレビュー エリアを含むウィンドウが表示されます。
Xcode には現在パブリック プラグイン API がありません。Apple に有効にしてもらいたい特定のタイプのプラグインがある場合は、拡張リクエストを バグレポーター. 。そうすることで、Apple はそのようなリクエストをカウントし、追跡できるようになります。
ただし、次のようなサードパーティ製ツールがあります。 アクセサリー そして mogenerator
(最新リリースは mogenerator 1.10
) を使用すると、さまざまな開発タスクを高速化できます。アクセサライザーは、クラスのアクセサー メソッドを作成するのに役立ちます。 mogenerator
Xcode のモデリング ツールを使用してモデル化された Core Data 管理オブジェクト クラスに対して、より高度なコード生成を実行します。
人々が知っているように、 アクセサリー は、アクセサー (1.0 と 2.0 のプロパティの両方) を生成するだけでなく、非標準属性を永続化するコア データ コード、カスタム対多関係用の NSSet アクセサーも生成します。
実際には、 アクセサリー init、キーパス、キー付きアーカイブ、インデックス付きアクセサー、NSSet、copyWithZone、KVO、キー検証、シングルトン オーバーライド、dealloc、setNilForKey、非標準属性永続性 (コア データ) などの順序なしコレクションのアクセサーを提供するのに役立ちます。ロック、headerdoc、メソッドからセレクターへの変換、NSUndoManager メソッドなど。
Xcode.app パッケージでいくつかの xtmacro ファイルを見つけました。/Developer/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources
Xcodeバージョンをインストールしました。3.2.5.