Xcode:代码丢失语法着色

时间:2010-01-26 07:38:43

标签: xcode syntax-highlighting

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

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

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

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

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

15 个答案:

答案 0 :(得分:147)

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

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

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

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

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


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

1。)在终端应用中增加Xcode日志级别: defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3

2.)打开控制台应用。搜索“xcode”

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

答案 1 :(得分:43)

我对Xcode 3中的一个项目有同样的问题,Xcode 4中的语法突出显示和代码完成已经破坏了。我花了一半时间才弄清楚但我发现了以下步骤将为我重现/解决问题。

在尝试了上述所有解决方案后无济于事,我尝试从头开始创建项目并精心重新导入每个文件和文件夹。每次我导入一些文件,我检查和语法高亮仍然有效。即使在最后几个之后它仍然存在。然后我点击了失败的构建,因为我忘了在旧项目中的项目.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'的

指令可以修复突出显示,代码完成也将为您提供。如果您的问题与我的问题相同。

答案 2 :(得分:15)

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

答案 3 :(得分:6)

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

答案 4 :(得分:4)

我发现以下经常会做这个伎俩......

在“构建设置”中“重新选择”“基本SDK”和“架构”。 (点击左上方的蓝色项目图标,在“浏览器模式”中,又名 1 ,然后点击项目设置并弄乱那里的东西。< / em>的

确保他们排队/在那里做一点 toggly-wogglying 并没有什么坏处,而你在那里......你知道只是混淆了一下。你会注意到xCode有一个微小的迷你笔画 - 每次你在64位和32位之间切换......这通常是当我知道代码突出显示是否已经死了,或者我是不是很好。

通常情况下,我会有一个项目在32位模式下立即突出显示,并且只是坐在64位......谁知道......啊,Xcode,你这个古怪的人。

答案 5 :(得分:3)

选择您的项目 - &gt;构建设置选项卡 - &gt; Apple LLVM语言5.0 - &gt;预编译前缀标题为YES。 NSLog没有突出显示。目前运行Xcode 5.0.1希望它有帮助=)谢谢@rebelzach

答案 6 :(得分:2)

我可以确认100%fix for this problem, based on a question I had asked(并实际回答),如下图所示。我要补充的一件事是,有时它是“错误的空白”,也可能导致突出显示的丢失。请自行清理,或使用Goggle Toolbox for Mac Xcode 4插件,该插件会在名为Edit的XCode Clean Up Whitespace菜单中添加一个条目。

enter image description here enter image description here

答案 7 :(得分:2)

这似乎是与此question

类似的错误

我可以通过在构建设置中将Precompile Prefix Header设置为No来解决此问题。

答案 8 :(得分:1)

我最近有一个类似的问题,所有着色和自动完成都停止了内置框架,我自己的类仍然有用。有人建议我在构建设置中关闭“运行静态分析器”。这很奇怪,但它确实奏效了。

答案 9 :(得分:1)

对我而言,我重命名了我的项目,并且测试目标仍指向旧的pch位置,但我的App目标指向新的目标。

如果您的应用代表仍然具有代码感,那么您也可能就是这种情况。进入项目,选择“测试”目标搜索“前缀”并将其设置为“app”目标中的等效值。

答案 10 :(得分:0)

打开项目设置(项目&gt;编辑项目设置菜单),然后点击常规标签中的重建代码感知索引按钮。这将重新创建Xcode用于语法着色的索引。

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

答案 11 :(得分:0)

此外,在XCode4中没有重建代码检测索引的按钮。

答案 12 :(得分:0)

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

似乎有多种因素。

答案 13 :(得分:0)

我也遇到过这个问题,并尝试过“重建索引”,“重新启动XCode”,“将编译器设置更改为LLVM GCC 4.2”。那些没有帮助我。

所以我尝试立即添加以下代码以及头文件的新创建。

#include "header.h"

using namespace cocos2d

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

我使用过cocos2d-x,所以我的语法基于c ++。不过我不会用Objective-c测试它。

答案 14 :(得分:0)

对于仍然不知道为什么的人。让我们打开 XCode 8.2 ,它应该工作