Xcode:宏打破完成/突出显示


Xcode Docs

Syntax highlighting, code completion, and every other index-driven
feature is handled by the LLVM parser. If the compiler knows about a
symbol, so does the Xcode IDE.

但是,当在预处理器指令中编写代码时,这些“索引驱动的功能”都不适用于我.有人有解决方案吗?

例子:

在打开未使用参数警告的情况下,即使使用了所述参数,也会生成大量警告.此特定屏幕截图中的代码来自Apples Reachability.m,未经修改.请注意,此处也不存在语法突出显示:

《Xcode:宏打破完成/突出显示》

在#if中正确完成:

《Xcode:宏打破完成/突出显示》

但是,在#else中完成不正确:

《Xcode:宏打破完成/突出显示》

它一半使用局部变量:

《Xcode:宏打破完成/突出显示》

但是当调用在当前方法范围之外声明的东西时再次中断:

《Xcode:宏打破完成/突出显示》

Another example
Another example

任何人都可以告诉我如何(或者甚至)如何解决这个问题?

最佳答案 XCode实际上评估预处理器指令的条件,并且只对当前真实条件内的代码进行突出显示/完成.例如

语法高亮,自动完成和警告(在这种情况下为未使用的变量警告)在不真实的情况下不起作用.

我提出了一个问题,询问如何使XCode在条件的两边做所有这些事情,但到目前为止没有运气.
XCode syntax highlighting in both conditions of preprocessor #if #else

为了记录我不认为这种行为是一个错误.我可以想象一下,如果在编译时遇到错误会非常令人沮丧.然而,能够编辑这些条件的两面而不必操纵宏定义将是很好的.

点赞