Xcode:代码丢失语法着色

我发现在各种情况下,Xcode 3.1(Leopard)中的Objective-C代码可能无法在input后获得适当的语法着色,或者失去了着色function。

这不仅仅是新的自定义符号的“刷新”问题,而且还会影响Cocoa框架符号。

有时CMD-aselect代码页上的所有文本会使着色(重新)出现,有时双击一行来select它将起作用,有时我必须添加/删除符号中的空格以获得该符号到(重新)上色。 重build或closures/重新开放项目可能会也可能不会。

这是Xcode的一个已知的问题? 对于我这么讨厌的事情,我没有在SO和我所期望的其他地方find充分的讨论。

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

1.)进入项目 – >build立设置 – >标题searchpath

2.)添加“$(SRCROOT)/ **”

3.)closures并重新加载项目

4.)转到Xcode – >窗口 – >组织者 – >项目 – > $ YourProject – >删除派生数据

5.)等待一段时间,直到XCode重build所有的指示


要获得更多信息,请激活详细logging:

1.)增加terminal应用中的Xcode日志级别:默认写入com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3

2.)打开控制台应用程序。 search“xcode”

3.)我看到在pch文件中提到的头文件的“文件未find”错误(因此上面的修复)

我在Xcode 3中遇到了同样的问题,Xcode 4中的语法突出显示和代码完成已经被破坏。我花了一天的时间找出更好的一半,但是我发现以下步骤将会为我重现/解决问题100%。

尝试所有上述解决scheme无济于事后,我试图从头开始创build项目,并艰苦地重新导入每个文件和文件夹。 每次我导入一些文件,我检查和语法高亮仍然工作。 即使在最后几个它仍然是。 然后我打build立失败,因为我忘了在旧项目中的项目.pch文件中包含几个常见的头文件。 那就是CodeSense再次爆发的时候。

经过进一步的调查,我们发现如果你导入一个头文件,然后导入相同的框架头文件比.pch已经做,那么CodeSense将会中断。 相同的设置在Xcode 3中没有引起任何问题。

例:

project.pch

#import <Foundation/Foundation.h> #import "projectConfig.h" 

projectConfig.h

 #import <Foundation/Foundation.h> #import "one.h" #import "two.h" 

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

 #import <Foundation/Foundation.h> 

来自'projectConfig.h'的指令,你可以修改突出显示,代码完成也会回来。 如果你的问题和我的一样。

只需select丢失语法着色的文件,按下Editor> Syntax Coloring>(select你的语言(Objective c ++ for ex)而不是'Default'

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

我发现以下几个经常会做的伎俩…

在“Build Settings”中“重新select”“Base SDK”和“Architecture”。 (点击左上方的蓝色项目图标,而在“浏览器模式”下,又名⌘1 ,然后点击项目设置,并在那里搞东西。

确保它们全部排成一列/在那里做一点点刺激的动作并没有什么坏处 ,而你在那里…你知道只是把它混淆了一下。 你会注意到xCode有一个十几微小的中风 – 每次你在64到32位之间切换时…这通常是当我知道代码突出显示是晚上死了,还是我很好走。

通常情况下,我将有一个项目,在32位模式立即突出显示,并在64位坐在那里…谁知道..啊,Xcode,你古怪的botch。

select您的项目 – >生成设置选项卡 – >苹果LLVM语言5.0 – >预编译前缀头为YES。 NSLog没有突出显示。 目前运行Xcode 5.0.1希望它有帮助=)谢谢@rebelzach

根据我提出的问题 (实际上是回答),我可以确认这个问题的100% 解决scheme ,如下图所示。 有一件事我会补充说,有时它是“错误的空白”,也可能导致突出的损失。 或者自己清理它,或者使用适用于Mac Xcode 4插件的护目镜工具箱,在XCode Edit菜单中添加一个名为“ Clean Up Whitespace的条目。

在这里输入图像描述在这里输入图像描述

这似乎是从这个问题类似的错误

我能够通过在生成设置中将Precompile Prefix Header设置为No来更正此问题。

我最近有一个类似的问题,所有着色和自动完成都停止工作的内置框架,我自己的类仍然工作。 有人build议我closures“运行静态分析器”在生成设置。 这很奇怪,但它的工作。

对我来说,是我重命名了我的项目, testing目标仍然指向旧的位置,但我的应用程序目标指向新的。

如果您的应用程序委托仍然具有代码意义,这也可能是您的情况。 进入项目,select“testing”目标search“前缀”,并将其设置为“应用程序”目标中的等效值。

打开项目设置(“ 项目”>“编辑项目设置”菜单),然后单击“ 常规”选项卡中的“ 重build代码检测索引”button。 这将重新创buildXcode用于语法着色的索引。

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

而且,在XCode4中没有button来重build代码检测索引。

我有同样的问题,并通过更新我的构build设置来解决这个问题,使用系统默认编译器,LLVM GCC 4.2。

看来有很多因素。

我也遇到过这个问题,并尝试了“重build索引”,“重新启动XCode”,“将编译器设置更改为LLVM GCC 4.2”的解决scheme。 那些帮不了我。

所以我试图添加下面的代码,随着新的头文件的创build。

 #include "header.h" using namespace cocos2d 

然后,在头文件中添加的代码被着色,并且可以识别类和东西。

我用过cocos2d-x,所以我的语法是基于c ++的。 但是我不用Objective-ctesting它。

对于有人仍然不知道为什么。 让开放与XCode 8.2 ,它应该工作