有没有办法禁用或修改Xcode的代码完成?

问题描述:

我已经在Xcode代码预见的喜好取消选中两个“在弹出的列表显示参数”和“插入参数占位符的完成”,但是当我键入“其他”(例如)在编辑器中,Xcode中仍然处于预转储格式化的“其他”块。有没有办法禁用或修改Xcode的代码完成?

有没有办法完全禁用此功能,或(更好的)来修改Xcode中插入块?默认的Xcode“else”块与我的编码风格不符,所以占位符实际上阻碍了我的生产力而不是帮助。

UPDATE:我刚刚发现this question介绍如何更改用于代码完成的默认缩进和空白,使回答我的问题下半年。

更新#2:设置 “自动提示” 为 “从不”,为suggested by outis有效地禁用全部代码完成。我想我正在寻找的是一种方法来禁用特定的代码完成(如“else”块),同时保留变量和方法名称的所有常用完成。

+0

您正在使用哪个的XCode的版本? – outis 2010-02-07 22:57:25

+0

我正在使用版本3.2 – 2010-02-07 22:58:23

+0

XCode插入块还是仅仅提示它? – outis 2010-02-07 23:04:13

您可以覆盖现有的任何代码补全的,从复制任何.xtcmacro文件:

/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro 

(你必须要在Xcode.app右键单击并说“显示包内容”进一步继续向下的目录链,除非你正在使用终端)

到本地目录:

~/Library/Application Support/Developer/Shared/Xcode/Specifications 

(您可能会不得不作出规范目录)。然后简单地通过那里的所有定义,为了消除令人讨厌的完成,您可以为任何条目取出CompletionPrefix,或者编辑要插入的代码以使其符合您的喜好。

在一个侧面说明,你可以把.xctxtmacro命名的任何文件,并把它放在规范目录,它会被读取,允许你定义一些非常有用的自定义宏。

+0

看起来很有希望。 Xcode.app/contents中的原始.xctxtmacro文件会在以后升级Xcode时再次出现吗? – 2010-02-08 07:23:51

+0

是的,事实上,你不应该将它们移出XCode,只需将它们复制到规格中,因为你所做的任何更改都会覆盖它们......当你升级XCode时,你会重写所有这些设置,但它们不会经常改变。重写那些打扰你的特定条目并且不覆盖其他任何东西(从规范中的文件中删除)仍然会更好。 – 2010-02-08 20:25:46

+1

在xcode 4.5.2中我不存在PlugIns目录。它感动了吗? – 2013-01-11 18:55:15

“文本编辑”和“缩进”偏好部分可能有你所寻求的设置。

您可以将“自动建议”设置为“从不”。

+0

合理的猜测,但我还没有发现任何会影响代码完成的面板。 – 2010-02-07 22:58:55

+0

将“自动建议”设置为“从不”会摆脱*全部*代码完成,包括变量和方法以及所有我定期使用的好东西':(' – 2010-02-07 23:21:05

+0

如何将它设置为“延迟”你也可以使用F5,alt-esc或“^”来获得完成列表 – outis 2010-02-07 23:43:32

+0

看起来这篇文章与Kendall Helmstetter Gelner在他的回答中所做的一样(除非我错过了一些额外的东西)。它*是一篇很好的文章,所以非常感谢您发表。 +1 – 2010-07-13 20:20:28

+0

从这篇文章中,我用它来设置(在Terminal.app中): 默认写入com.apple.Xcode XCCodeSenseFormattingOptions'{“PreExpressionsSpacing”=“”; “BlockSeparator”=“\ n”; }” – Eljay 2010-07-16 15:42:46

可以使在Xcode /禁用代码完成使用下面的步骤:

  1. 点击左上角Xcode菜单上出现
  2. 选择Preferences...(偏好弹出)

Screenshot-1 for steps

  1. 选择Text Editing菜单
  2. 参见Code Completion
  3. 取消选中Suggest completion while typing选项。
  4. Screenshot-2 for steps

开始=>