Xcode:代码丢失语法着色

Col*_*ous 80 xcode syntax-highlighting

我发现在各种情况下,Xcode 3.1(Leopard)中的Objective-C代码在输入或失去着色后无法获得适当的语法着色.

这不仅仅是新自定义符号的"刷新"问题 - 但也会影响Cocoa框架符号.

有时CMD-a选择代码页上的所有文本将使着色(重新)出现,有时双击一行以选择它将起作用,有时我必须添加/删除符号中的空格以获得该符号(重新)颜色.重建或关闭/重新开放项目可能会也可能不会起作用.

这是Xcode的已知问题吗?对于那些让我烦恼的事情,我并没有在SO和其他地方找到我对它的充分讨论.

是否有任何命令强制全局语法重新着色?

Lar*_*der 147

1.)转到项目 - >构建设置 - >标题搜索路径

2.)添加"$(SRCROOT)/**"

3.)关闭并重新加载项目

4.)转到Xcode - >窗口 - >管理器 - >项目 - > $ YourProject - >删除派生数据

5.)稍等片刻,直到XCode重建所有指标


要获取更多信息,请激活详细日志记录:

1.)在终端应用程序中增加Xcode日志级别:默认写入com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3

2.)打开控制台应用程序.搜索"xcode"

3.)我在pch文件中提到的头文件中看到"找不到文件"错误(因此上面的修复)

  • 你答案的第二部分非常有帮助!! (2认同)
  • 我今年在WWDC实验室的经历是,如果你想要语法高亮显示工作,完全关闭预编译...它对我有用,但似乎是一个不充分的解决方案虽然 (2认同)
  • 非常感谢!#4(删除派生数据)也适用于我. (2认同)

rag*_*age 43

我对Xcode 3中的一个项目有同样的问题,并且Xcode 4中的语法高亮和代码完成已经破解.我花了一半时间才弄清楚它但我发现以下步骤将会为我重现/解决问题100%.

在尝试了上述所有解决方案无济于事之后,我尝试从头开始创建项目并精心重新导入每个文件和文件夹.每次我导入一些文件,我检查和语法高亮仍然有效.即使在最后几个之后它仍然存在.然后我点击了失败的构建,因为我忘了在旧项目中的项目.pch文件中包含几个公共头文件.这就是CodeSense再次破产的时候.

经过进一步调查后,我们发现如果你导入一个头文件,而该文件又导入了与.pch相同的框架头文件,那么CodeSense将会中断.相同的设置不会在Xcode 3中引起任何问题.

例:

project.pch

#import <Foundation/Foundation.h>
#import "projectConfig.h"
Run Code Online (Sandbox Code Playgroud)

projectConfig.h

#import <Foundation/Foundation.h>
#import "one.h"
#import "two.h"
Run Code Online (Sandbox Code Playgroud)

所以通过删除完全不必要的

#import <Foundation/Foundation.h>
Run Code Online (Sandbox Code Playgroud)

来自'projectConfig.h'的指令你可以修复突出显示,代码完成也会回来给你.如果您的问题与我的问题相同.

  • 为什么这不是投票进入平流层?我没有打扰清理我的所有标题问题,而只是关闭了我的目标的预编译前缀标题选项,一切都很好.最后,我可以让整个团队升级到4.2,因为那是我们破产的地方. (4认同)
  • 有用!我和@Rob Booth做了同样的事情,我关闭了"Precompile Prefix Header"(将其设置为NO),清理了我的项目并删除了它的派生数据.我的语法高亮重启工作! (2认同)

小智 15

只需选择丢失语法着色的文件,按编辑器>语法着色>(选择您的语言(目标c ++为ex)而不是'Default'

  • 这发生在我身上.不确定为什么XCode会为一个文件默认为Generic而不是右文件类型,但是这一步解决了它.我先尝试清理并删除派生数据,我认为这是罪魁祸首. (2认同)

tod*_*412 7

我发现重新获得语法着色的最好方法就是退出Xcode并重新启动它.我无法告诉你为什么,但每次都有效.


Rob*_*ger 0

打开项目设置(“项目”>“编辑项目设置”菜单),然后单击“常规”选项卡中的“重建代码感知索引”按钮。这将重新创建 Xcode 用于语法着色的索引。

对于较大的项目,此过程可能需要一段时间,因此您可以在“活动”窗口( “窗口”>“活动”菜单)中检查进度。

  • 一次又一次这并不能解决我的问题。我一定做错了什么,因为 XCode 根本不关心突出显示语法或显示自动完成。 (2认同)