Xcode:コードは構文の色を失います


80

さまざまな状況で、Xcode 3.1(Leopard)のObjective-Cコードは、入力後に適切な構文の色を取得できないか、色が失われる可能性があることがわかりました。

これは、新しいカスタムシンボルの「更新」の問題だけでなく、Cocoaフレームワークシンボルにも影響します。

コードページのすべてのテキストを選択するCMD-aによって色が(再)表示される場合もあれば、行をダブルクリックして選択する場合もあります。シンボルを取得するには、シンボル内のスペースを追加/削除する必要があります。 (再)色に。プロジェクトの再構築、または終了/再開は、機能する場合と機能しない場合があります。

これはXcodeの既知の問題ですか?私にとって非常に厄介なことについては、SOや私が期待する他の場所でそれについての豊富な議論を見つけていません。

また、グローバル構文の色を強制的に変更するコマンドはありますか?


また、ここに私の答えをチェックしstackoverflow.com/questions/1627033/...
Gajendra K Chauhan

回答:


148

1。)[プロジェクト]-> [ビルド設定]-> [ヘッダー検索パス]に移動します

2。)「$(SRCROOT)/ **」を追加します

3.)プロジェクトを閉じてリロードします

4.)Xcode->ウィンドウ->オーガナイザー->プロジェクト-> $ YourProject->派生データの削除に移動します

5.)XCodeがすべてのインデックスを再構築するまでしばらく待ちます


詳細情報を取得するには、詳細ログをアクティブにします。

1.)ターミナルアプリでXcodeログレベルを上げます:デフォルトはcom.apple.dt.Xcode IDEIndexingClangInvocationLogLevel3を書き込みます

2.)コンソールアプリを開きます。「xcode」を検索する

3.)pchファイルに記載されているヘッダーファイルに「ファイルが見つかりません」というエラーが表示されました(したがって、上記の修正)


2
あなたの答えの2番目の部分はとても役に立ちました!!
デニスミハイロフ2011年

2
今年のWWDCのラボでの私の経験は、構文の強調表示を機能させたい場合は、プリコンパイルを完全にオフにすることでした...それは私にとっては機能しましたが、不十分な修正のようです
Stew

ありがとう、@ Larsシュナイダー。そのいい方法です。
2012年

2
どうもありがとう!#4(派生データの削除)も私のために働いた。
マークマッケルビー2012

1
これはXcode8.3で機能しましたが、以前は8.2で機能していた別のソリューションでは、構文の強調表示を復元できなくなりました。素晴らしい、時代を超越した答え!
エイドリアン

43

Xcode 3で問題がなく、Xcode 4で構文の強調表示とコードの完了が壊れたプロジェクトでも同じ問題が発生しました。それを理解するのに半日かかりましたが、次の手順で問題が解決することがわかりました。私のために問題を100%再現/修正します。

前述のすべての解決策を無駄に試した後、プロジェクトを最初から作成し、すべてのファイルとフォルダーを入念に再インポートしようとしました。いくつかのファイルをインポートするたびにチェックしましたが、構文の強調表示は引き続き機能しました。それらの最後のいくつかの後でも、それはまだしました。次に、古いプロジェクトにあったプロジェクト.pchファイルにいくつかの一般的なヘッダーファイルを含めるのを忘れたために失敗したビルドをヒットしました。そして、CodeSenseが再び壊れたのはその時でした。

さらに調査した結果、.pchがすでに行っているのと同じフレームワークヘッダーファイルをインポートするヘッダーファイルをインポートすると、CodeSenseが破損することがわかりました。同じ設定でXcode3に問題が発生することはありませんでした。

例:

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'からのディレクティブを使用すると、強調表示を修正でき、コードの完了も返されます。あなたの問題が私のものと同じである場合。


はい...同じ問題がありました...そして怒りの解決策はそれを修正しました。
クロスコード2012年

4
なぜこれが成層圏に賛成しないのですか?ヘッダーの問題をすべてクリーンアップする必要はなく、代わりにターゲットのプリコンパイルプレフィックスヘッダーオプションをオフにしただけで、すべて問題ありません。最後に、チーム全体を4.2にアップグレードすることができます。
ロブ・ブース

2
できます!@Rob Boothと同じことを行い、「プリコンパイルプレフィックスヘッダー」をオフにして(NOに設定)、プロジェクトをクリーンアップして、派生データを削除しました。シンタックスハイライトが再開されました。
hbobenicio 2012年

これで私の問題は修正されました。私のファイルはFoundationファイルではなく、カスタムクラスでした。.pchファイルから削除してから再読み込みし、他のクラスファイル内のすべてのインスタンスを削除しました。
ボット2012

感謝します。:)私はあなたの説明に正確に従いました。.PCHにインポートしたすべてのファイルからFoundationとUIKitを削除しました。
ティモ2012年

16

構文の色付けを失ったファイルを選択し、「デフォルト」の代わりに「エディター」>「構文の色付け」>(言語(たとえばObjective c ++)を選択)を押すだけです。


2
これは私に起こりました。XCodeが1つのファイルに対して正しいファイルタイプではなくGenericにデフォルト設定される理由はわかりませんが、この手順で解決しました。私は最初に派生データをクリーンアップして削除しようとしましたが、これは原因だと思いました。
ルディ

乾杯...アップルは私のためにAppleScriptを選択していました笑ありがとうメイト
BikramThapa18年

7

構文の色付けを取り戻すための最良の方法は、Xcodeを終了して再起動することです。理由はわかりませんが、毎回うまくいきます。


1
私にとっては、プロジェクトを再開するだけで十分でした。
thgc 2011年

なんてクレイジーなんだ!以前は失敗していたカテゴリの強調表示も修正されただけでなく、機能し始めました
Judioo 2012年

4

私は以下がしばしばトリックをするだろう思います…

「ビルド設定」で「ベースSDK」と「アーキテクチャ」の両方を「再選択」します。 (左上の青いプロジェクトアイコンをクリックし、「ブラウザモード」(別名)1で、プロジェクト設定をクリックして、そこにあるものをいじります。

それらがすべて揃っていることを確認してください/あなたがそこにいる間、そこに少しぐらつくことをするのは害はありません...あなたはそれを少し混ぜるだけです。xCodeには小さなミニストロークがあることに気付くでしょう-64ビットと32ビットを切り替えるたびに…これは通常、コードの強調表示が夜に死んでいるかどうか、または私が行ってもいいかどうかを知っているときです。

多くの場合、私は32ビットモードで即座に強調表示され、64でそこに座っているプロジェクトを持っています…誰が知っていますか..ああ、Xcode、あなたは奇抜なボッチです。


1
答えは私を大いに助け、
うまくいき

振り返ってみると、そうです、この答えは英語を母国語としない人には理解できないかもしれません。悲しいかな、私には...それはhillairballsです。
アレックスグレイ

3

「プロジェクト」->「ビルド設定」タブ->「AppleLLVM言語5.0」->「プリコンパイル済みプレフィックスヘッダー」を「はい」に選択します。NSLogは強調表示されていませんでした。現在Xcode5.0.1を実行しています。お役に立てば幸いです=)ありがとう@rebelzach


2

下の写真のように、私が尋ねた(そして実際に答えた)質問に基づいて、この問題の100%修正を確認できます。私が付け加えることの1つは、ハイライトの喪失に寄与する可能性があるのは「誤った空白」である場合があるということです。自分でクリーンアップするか、Goggle Toolbox for Mac Xcode 4プラグイン使用して、XCodeEditメニューにClean Up Whitespace。というエントリを追加します。

ここに画像の説明を入力してください ここに画像の説明を入力してください


2

これはこれと同様のエラーのようです 質問

ビルド設定でに設定Precompile Prefix HeaderすることNoで、この問題を修正することができました。


1

最近、同様の問題が発生しました。組み込みのフレームワークでは、すべての色付けとオートコンプリートが機能しなくなりましたが、自分のクラスは引き続き機能していました。ビルド設定で「静的アナライザーの実行」をオフにするように勧められました。奇妙ですが、うまくいきました。


1

私にとっては、プロジェクトの名前を変更し、テストを行うことでした。ターゲットはまだ古いpchの場所を指していましたが、Appターゲットは新しい場所を指していました。

アプリデリゲートがまだコードセンスを持っている場合は、これが当てはまる可能性があります。プロジェクトに移動し、「テスト」ターゲット検索「プレフィックス」を選択して、「アプリ」ターゲットの同等の値に設定します。


0

プロジェクト設定を開き([プロジェクト]> [プロジェクト設定の編集]メニュー)、[全般]タブの[コードセンスインデックス再構築]ボタンをクリックします。これにより、Xcodeが構文の色付けに使用するインデックスが再作成されます。

大規模なプロジェクトの場合、このプロセスには時間がかかることがあるため、[アクティビティ]ウィンドウ([ウィンドウ] > [アクティビティ]メニュー)で進行状況を確認できます。


2
何度もこれは私にとって問題を解決しません。XCodeは構文の強調表示やオートコンプリートの表示を気にしないので、私は何か間違ったことをしているに違いありません。
Jessedc 2010

1
これらの種類の問題については、必ずAppleに対するバグをログに記録してください:bugreport.apple.com。
リンジーファーガソン2010

0

さらに、XCode4には、コードセンスインデックスを再構築するためのボタンはありません。


これはおそらくXCode4がコードセンスインデックスを必要としなくなったためだとどこかで読みました。個別のインデックスを保持する代わりに、新しいClang構文解析を直接使用していると思います。これは、コンパイラの観点から意味のあるコード補完のみを提案するため、コード提案がはるかに正確である理由でもあります。
markquezada 2011

1
それは方法がある判明- stackoverflow.com/questions/1627033/...
Arkaaito

0

同じ問題が発生し、システムのデフォルトコンパイラであるLLVM GCC 4.2を使用するようにビルド設定を更新することで、これを解決しました。

複数の要因があるようです。


0

私もこの問題を経験し、「インデックスの再構築」、「XCodeの再起動」、「コンパイラ設定をLLVM GCC4.2に変更する」のいずれかの解決策を試しました。それらは私を助けませんでした。

そこで、ヘッダーファイルを新たに作成するとともに、すぐに次のコードを追加しようとしました。

#include "header.h"

using namespace cocos2d

次に、ヘッダーファイルで以前に追加されたコードが色付けされ、クラスなどを認識できます。

私はcocos2d-xを使用したので、構文はc ++に基づいています。ただし、Objective-cではまだテストしていません。


0

誰かがまだ理由を知らないために。XCode8.2で開いてみましょう。動作するはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.