Xcode有任何等效的ReSharper吗?

时间:2020-03-05 18:41:38  来源:igfitidea点击:

我是一个完整的Xcode / Objective-C / Cocoa新手,但是我学习很快,并且真正开始喜欢使用新的语言,平台和范例。

但是有一件事是,在Rfor中使用Visual Studio这么久了,我有点被诸如重构和完成等编码工具所宠坏了,据我所知Xcode对此功能的支持相当有限。

关于这一点,是否有人知道Xcode环境中是否有任何可用于添加编码助手的插件或者其他东西,例如根据类接口定义自动生成实现框架等?

我怀疑没有,但我想这无济于事。

解决方案

回答

Xcode具有针对C和Objective-C的内置重构功能。只需选择要重构的内容,从菜单栏或者上下文菜单中选择"重构...",我们将获得一个包含可用重构的窗口和预览区域。

Xcode当前没有公共的插件API。如果我们希望Apple启用某些特定类型的插件,请在Bug Reporter中请求文件增强功能。这样,Apple可以计算和跟踪此类请求。

但是,可以使用诸如Accessorizer和mogenerator(最新版本是mogenerator 1.10)的第三方工具来加快各种开发任务。 Accessorizer可以为类创建访问器方法,而mogenerator可以为使用Xcode建模工具建模的Core Data托管对象类提供更高级的代码生成。

回答

听起来好像我们在寻找三个主要方面:代码模板,重构工具和自动完成。

好消息是Xcode 3及更高版本具有出色的自动完成功能和模板支持。默认情况下,我们必须通过按Escape键显式请求完成。 (这实际上可以在所有NSTextView中使用;尝试一下!)如果我们希望自动显示补全,可以转到"首选项"->"代码检测"并将弹出窗口设置为在几秒钟后自动出现。我们应该找到C和Objective-C代码的良好完成,以及C ++的良好完成。

Xcode还具有可使用的可靠模板/骨架系统。通过转到编辑->插入文本宏,可以查看默认情况下可用的模板。当然,我们不希望用鼠标插入文本宏。这是错误的。相反,我们有两个选择:

  • 返回到"首选项",转到"键绑定",然后在"菜单键绑定"下,为我们经常使用的宏分配特定的快捷方式。我个人不愿意这样做,但是我知道很多伟大的Mac开发人员
  • 使用CompletionPrefix。默认情况下,几乎所有模板都有一个特殊的前缀,如果我们键入然后按转义键,将导致插入模板。我们可以使用Control- /在完成字段之间移动。我们可以在"弯曲旋转"中看到Xcode默认宏及其相关的CompletionPrefixes的完整列表。我们也可以添加自己的宏,或者修改默认值。为此,请编辑文件/ Developer / Library / Xcode / Specifications / {C,HTML} .xctxtmacro。如果不是很友好的话,语法应该是不言自明的。

不幸的是,如果我们沉迷于R#,那么重构选项会让我们失望的。通过上下文菜单或者单击Shift-Apple-J,可在Xcode中提供基本的重构。从那里,我们可以提取和重命名方法,通过类层次结构以及其他一些常见操作来对其进行升级和降级。不幸的是,Xcode或者任何第三方实用程序都没有提供任何接近Resharper的功能,因此在这方面,我们目前不走运。值得庆幸的是,Apple已经在作品中展示了Xcode的版本,这些版本的重构功能得到了极大的改善,因此希望我们不必等太久就可以开始改善情况。

回答

众所周知,Accessorizer不仅可以生成访问器(1.0和2.0的属性),还可以生成Core Data代码来保留非标准属性,而NSSet访问器还可以用于自定义一对多关系。

实际上,Accessorizer将提供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.