Xcode代码检测颜色/完成不工作

Xcode代码检测颜色/完成不工作,xcode,syntax-highlighting,Xcode,Syntax Highlighting,编辑:这很奇怪。。。如果我在欢迎屏幕中双击该项目的“最近的项目”项,代码感知和着色工作正常,但如果我只单击“打开”(欢迎屏幕右下角),则不正常。从文件>最近的项目打开也不起作用,双击Finder中的.xcodeproj文件也不起作用 我已经工作了几个月(通过不同的Xcode安装/版本)的iPhoneOS3.0项目的代码感知不再工作了。例如,如果我执行NSString*myString,所有代码都将是黑色的(没有颜色,没有选项+双击,没有代码完成)。代码感知仅适用于我自己的类/方法/属性,而不适

编辑:这很奇怪。。。如果我在欢迎屏幕中双击该项目的“最近的项目”项,代码感知和着色工作正常,但如果我只单击“打开”(欢迎屏幕右下角),则不正常。从
文件>最近的项目打开
也不起作用,双击Finder中的
.xcodeproj
文件也不起作用


我已经工作了几个月(通过不同的Xcode安装/版本)的iPhoneOS3.0项目的代码感知不再工作了。例如,如果我执行
NSString*myString
,所有代码都将是黑色的(没有颜色,没有选项+双击,没有代码完成)。代码感知仅适用于我自己的类/方法/属性,而不适用于任何SDK类。如果我从头开始创建一个新项目,我确实可以让所有这些都正常工作

我已经尝试在这个项目中更改“所有配置的基本SDK”。我已经尝试过“重建代码感知索引”。我已经试过“清除所有目标”

首选项中的文档都已下载并可用。例如,如果我选择上面的
NSString
,然后右键单击->在文档中查找文本,我会得到一个包含所有类引用的窗口


任何想法都将不胜感激。

在Xcode中获取项目信息,并更改项目格式以匹配您正在使用的Xcode版本(在撰写本文时,“Xcode 3.2兼容”)

您也可以删除派生数据,但除非您更新了项目格式,否则错误几乎会立即再次出现。(即使在更新项目格式后也可能发生这种情况,但我以前每天都要删除好几次DerivedData,而且我想在修复项目后我只删除过一次。)


正如其他地方所指出的,切换到LLVM可能会有所帮助。但当我更新这个答案(2012年)时,无论如何你都应该使用LLVM。

除了tewha所做的之外,我还必须单击“重建代码感知索引”按钮。它位于“获取项目信息”中“常规”选项卡的底部。

我在Xcode 4中遇到了同样的问题,并通过将编译器从GCC 4.2更改为LLVM GCC 4.2解决了这个问题。

自Xcode 4以来,语法着色、自动完成、跳转到头文件等对我来说都是彻底失败的。“我的符号导航器”视图完全为空。如果我没有意识到我对自动完成的依赖程度,我的工作效率已经下降了一个因素。奇怪的是,我的队友们看到了各种缺失功能的组合——只有我幸运地失去了一切。FWIW我正在使用最新一代MBP

在Xcode 4.0.2中也有同样的问题。除了两个文件外,代码感知在每一个文件中工作,一个.m文件及其对应的.h文件。尝试了一切-除了重建代码感知索引,因为我在任何地方都找不到按钮-没有任何效果。最后,我删除了相关文件.m、.h和.xib。创建了新文件,现在一切正常。

在Xcode 4中,我也找不到“重建代码感知”按钮,但如果您转到“窗口->管理器”,选择“项目”选项卡,然后单击“派生数据”文件夹旁边的“删除…”,似乎也有相同的效果。(我从中得到了这个提示,这表明它是从中得到的-但我在那里的任何答案中都没有看到。非常奇怪。)

对我有效的是将编译器更改为“LLVM编译器2.0”

除3或4.m/.h文件外,代码感知适用于大多数文件。我尝试了上面的一切,唯一对我有效的是drct的解决方案。我关闭了xCode,将项目移动到另一个文件夹,然后重新打开

现在我发现,如果我右键单击项目导航器中的文件夹(或组)并选择“新建文件…”,则代码感知不起作用


如果相反,我使用主菜单并选择“文件>>新建>>新建文件”,代码感觉很好。

对于这个问题,似乎有很多建议的原因和解决方案,我想我已经尝试了其中的大多数。最终对我有用的(在Xcode 4.1中)是:

  • 删除对项目导航器中问题文件的引用
  • 从Finder中的项目文件夹中移动问题文件
  • 回到项目导航器中,右键单击并选择“将文件添加到…”
  • 找到我刚移动的文件,并将它们添加回项目中,确保选中“将项目复制到目标组的文件夹(如果需要)”
代码检测已恢复

更具体地说,我的确切问题是,当我通过在项目导航器中右键单击创建一个新类时,大约30-40%的时间代码感知在新类的头文件中不起作用。有趣的是,它确实在实现中起作用

我尝试过但失败的事情:

  • 正在删除管理器中的派生数据文件夹
  • 正在删除Finder中的派生数据文件夹
  • 从头开始创建一个全新的类(我不知道这为什么不起作用)
  • 更改语言的语法着色
  • 多次在所有选项之间更改编译器
  • 指定特定的头搜索路径

我希望有其他可能的建议来结束这个问题,因为它真的很烦人

在我执行以下步骤后,语法着色正在恢复工作:

  • 转到“管理器”>“项目”>“从当前数据库中删除派生数据” 计划
  • 清洁与建造
  • 关闭并退出XCode,然后重新打开项目
  • 项目重新编制索引后,语法着色效果良好
附言

  • LLVM编译器3.0
  • 我为所有第三方库使用了-fno-objc-arc编译器标志(例如。 ASIHTTPRequest)
  • 我的项目是从XCode 4.2创建的

我今天遇到的一件事影响了代码着色,那就是我在Target->Build Phases->Compile Sources中意外添加了一个头文件(.h)
File>Open Recent> Clear Menu
rm -fR ~/Library/Developer/Xcode/DerivedData
#ifdef __OBJC__
    #import "myFile.h"
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif
defaults write com.apple.dt.XCode IDEIndexDisable 0
defaults write com.apple.dt.XCode IDEIndexDisable 1
defaults write com.apple.dt.XCode IDEIndexDisable 0