提问人:Shaun Austin 提问时间:8/22/2008 最后编辑:JonasShaun Austin 更新时间:1/26/2012 访问量:12740
任何 ReSharper 等同于 Xcode 吗?
Any ReSharper equivalent for Xcode?
问:
我是一个完全的 Xcode/Objective-C/Cocoa 新手,但我学得很快,并且真的开始喜欢掌握一种新的语言、平台和范式。
不过,有一件事是,在将 Visual Studio 与 R# 一起使用这么长时间后,我有点被重构和补全等编码工具宠坏了,据我所知,Xcode 对这些东西的内置支持相当有限。
在这一点上,有谁知道是否有任何插件或任何可用于 Xcode 环境的加载项或任何添加编码助手的东西,例如从类接口定义自动生成实现框架等?
我怀疑没有,但我想问不住。
答:
Xcode 内置了 C 和 Objective-C 重构功能。只需选择要重构的内容,然后选择“重构...”从菜单栏或上下文菜单中,您将获得一个窗口,其中包含可用的重构和预览区域。
Xcode 目前没有公共插件 API;如果您希望 Apple 启用特定类型的插件,请在 Bug Reporter 中提交增强请求。这样一来,Apple 就可以计算和跟踪此类请求。
但是,有一些第三方工具,如 Accessorizer 和 mogenerator(最新版本是 mogenerator 1.10
),您可以使用它们来更快地完成各种开发任务。Accessorizer 可帮助您为类创建访问器方法,同时为使用 Xcode 的建模工具建模的 Core Data 托管对象类生成更高级的代码。
mogenerator
听起来好像你在寻找三个主要的东西:代码模板、重构工具和自动完成。
好消息是 Xcode 3 及更高版本具有出色的自动完成和模板支持。默认情况下,您必须通过按转义键来显式请求完成。(这实际上适用于所有 s;试试吧!如果要自动显示完成项,可以转到“首选项”->“代码感知”,并将弹出窗口设置为在几秒钟后自动显示。你应该找到C和Objective-C代码的良好完成,以及C++的相当好的完成。NSTextView
Xcode 还有一个可靠的模板/骨架系统可供您使用。您可以通过转到“编辑”-“>”插入文本宏“来查看默认情况下可用的模板。当然,您不想用鼠标插入文本宏;这违背了这一点。相反,您有两种选择:
- 返回“首选项”,转到“键绑定”,然后在“菜单键绑定”下,为您经常使用的宏指定一个特定的快捷方式。我个人不会费心这样做,但我知道很多伟大的 Mac 开发人员都这样做
使用 .默认情况下,几乎所有模板都有一个特殊的前缀,如果键入然后按转义键,将导致插入模板。您可以使用 Control-/ 在完成字段之间移动。
CompletionPrefix
您可以在 Crooked Spin 上查看 Xcode 默认宏及其关联的
CompletionPrefix
es 的完整列表。您还可以添加自己的宏,或修改默认值。为此,请编辑文件 。语法应该是不言自明的,如果不是非常友好的话。
/Developer/Library/Xcode/Specifications/{C,HTML}.xctxtmacro
不幸的是,如果你沉迷于 R#,你会对重构选项感到失望。在 Xcode 中,通过上下文菜单或按 Shift-Apple-J 提供基本重构。从那里,您可以提取和重命名方法,通过类层次结构升级和降级它们,以及其他一些常见操作。不幸的是,Xcode 和任何第三方实用程序都没有提供任何接近 Resharper 的东西,所以在这方面,你目前不走运。值得庆幸的是,Apple 已经在开发中展示了 Xcode 版本,这些版本极大地改进了重构功能,因此希望您不必等待太久,情况就会开始改善。
评论
正如人们所知道的,Accessorizer 不仅仅是生成访问器(包括 1.0 和 2.0 的属性),它还生成用于持久化非标准属性的核心数据代码,用于自定义对多关系的 NSSet 访问器。
事实上,Accessorizer 将帮助你提供 init、keypath、keyed-archiving、indexed accessors、unordered collections(如 NSSet、copyWithZone、KVO、key-validation、singleton overrides、dealloc、setNilForKey)、非标准属性持久性(Core Data)、locking、headerdoc、convert method to selector、NSUndoManager 方法等。
我在 Xcode.app 包中找到了一些 xtmacro 文件:/Developer/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources
已安装 Xcode 版本 3.2.5。
我很高兴地说,JetBrains 已经决定为 Objective-C 程序员制作一个像样的 IDE。
它被称为 AppCode,它基于他们的其他工具,如 RubyMine 和 Resharper。它不是原生的 Cocoa,但具有大量原始的重构能力。
http://www.jetbrains.com/objc/index.html
我已经开始将它用于我的主要目标 C 项目,我已经爱上了它。它仍处于起步阶段,但对于代码编辑和重构来说,它已经让 Xcode 大吃一惊。
更新
它现在以完全可用的速度运行。我已经全职切换到它,与 Xcode 相比,重构和编码是多么令人惊叹,这仍然让我大吃一惊。它为您处理了这么多 - 自动导入,几乎无限的自定义。它使 Xcode 看起来像一个玩具。
评论