任何与Xcode相同的ReSharper?

我是一个完整的Xcode / Objective-C / Cocoa新手,但我正在快速学习,真正开始喜欢掌握一种新的语言,平台和范式。

有一件事,虽然已经使用Visual Studio与R#这么长时间,我已经与编码工具,如重构和完成等被宠坏了,据我所知,Xcode有一些相当有限的内置支持东东。

在那个笔记,有没有人知道是否有任何加载项或任何可用的Xcode环境添加编码助手,如从类接口定义等自动生成实现框架?

我怀疑有没有,但我想这不禁要问。

你听起来好像在寻找三个主要的东西:代码模板,重构工具和自动完成。

好消息是,Xcode 3和更高版本具有出色的自动完成和模板支持。 默认情况下,您必须通过点击转义键来显式请求完成。 (这实际上适用于所有的NSTextView ;尝试它!)如果你想自动出现完成,你可以进入首选项 – > 代码感应,并设置popup窗口在几秒钟后自动出现。 你应该为C和Objective-C代码find很好的补全,并且为C ++提供很好的补全。

Xcode也有一个可以使用的可靠的模板/骨架系统。 您可以通过编辑 – >插入文本macros来查看默认可用的模板。 当然,你不想用鼠标插入文本macros; 这就打破了这一点。 相反,你有两个select:

  1. 返回首选项 ,转到密钥绑定 ,然后在菜单键绑定下 ,为经常使用的macros指定一个特定的快捷方式。 我个人不打扰,但我知道很多伟大的Mac开发人员
  2. 使用CompletionPrefix 。 默认情况下,几乎所有的模板都有一个特殊的前缀,如果你键入然后点击转义键,将导致模板被插入。 您可以使用Control- /在完成字段之间移动。

    您可以在Crooked Spin中看到Xcode的默认macros及其关联的CompletionPrefix es的完整列表 。

    您也可以添加自己的macros,或者修改默认值。 为此,请编辑文件/Developer/Library/Xcode/Specifications/{C,HTML}.xctxtmacro 。 语法应该是不言而喻的,如果不是非常友好的话。

不幸的是,如果你沉迷于R#,你将会对你的重构选项感到失望。 在Xcode中通过上下文菜单或按Shift-Apple-J提供基本的重构。 从那里,你可以提取和重命名方法,通过类层次结构和其他一些常见操作来提升和降级它们。 不幸的是,Xcode和任何第三方实用程序都没有提供任何接近Resharper的东西,所以在这方面,目前你运气不好。 值得庆幸的是,苹果已经在作品中展示了Xcode的版本,这些版本已经大大提高了重构能力,所以希望在情况开始改善之前,你不必等太久。

我很高兴地说,JetBrains决定为Objective-C编码器制作一个体面的IDE。

它被称为AppCode ,它基于RubyMine和Resharper等其他工具。 这不是原生的cocoa,而是具有原始的重构能力。

http://www.jetbrains.com/objc/index.html

我已经开始将它用于我的主要Objective C项目,而且我已经恋爱了。 它仍然处于初级阶段,但是对于代码编辑和重构来说,它已经把Xcode吹走了。

更新

现在是在一个完全可用的速度。 我已经完全转向它了,它仍然让我想起重构和编码与Xcode相比有多惊人。 它只是为你处理 – 自动导入,几乎无限的定制。 它使Xcode看起来像一个玩具。

Xcode对C和Objective-C进行了重构。只需select要重构的内容,从菜单栏或上下文菜单中select“Refactor …”,就会得到一个包含可用重构的窗口和预览区域。

Xcode目前没有公共的插件API; 如果有特定types的插件,您希望Apple启用Bug Reporter中的文件增强请求。 这样苹果就可以计算和跟踪这些请求。

不过,还有第三方工具,如Accessories和mogenerator (最新版本是mogenerator 1.10 ),可以用来更快地完成各种开发任务。 Accessorner帮助您为您的类创build访问器方法,而mogenerator为使用Xcodebuild模工具build模的Core Data托pipe对象类执行更高级的代码生成。

只是为了让人们知道, Accessorizer不仅仅是生成访问器(包括1.0和2.0的属性),它还生成核心数据代码来保存非标准属性,NSSet访问器用于定制一对多的关系。

实际上, Accessorizer将帮助您为init,keypath,keyed-archive,索引访问器,访问器提供无序集合,如NSSet,copyWithZone,KVO,key-validation,singleton覆盖,dealloc,setNilForKey,非标准属性持久性核心数据),locking,headerdoc,转换方法select器,NSUndoManager方法等等。

我在Xcode.app包中find了一些xtmacro文件: /Developer/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources

安装的Xcode版本 3.2.5。