it-swarm.com.de

Xcode: Code verliert Syntaxfärbung

Ich finde, dass Objective-C-Code in Xcode 3.1 (Leopard) nach dem Eingeben möglicherweise keine geeignete Syntaxfärbung erhält oder seine Färbung verliert.

Dies ist nicht nur ein "Aktualisierungsproblem" mit neuen benutzerdefinierten Symbolen, sondern betrifft auch Cocoa-Framework-Symbole.

Manchmal bewirkt CMD-a zur Auswahl des gesamten Textes auf der Codepage, dass die Farbe (erneut) angezeigt wird. Manchmal wird ein Doppelklick auf eine Zeile ausgeführt, um sie auszuwählen. Manchmal muss ich ein Leerzeichen in einem Symbol hinzufügen oder löschen, um dieses Symbol zu erhalten (neu) färben. Das erneute Erstellen oder Schließen/Wiederöffnen des Projekts funktioniert möglicherweise nicht.

Ist dies ein bekanntes Problem mit Xcode? Für etwas, das mich so nervt, finde ich die reichlichen Diskussionen nicht auf SO und anderswo, die ich erwarten würde.

Und gibt es einen Befehl, um die Neufärbung der globalen Syntax zu erzwingen?

79
ColorMeFamous

1.) Gehen Sie zu Projekt -> Build-Einstellungen -> Header-Suchpfade

2.) "$ (SRCROOT)/**" hinzufügen

3.) Schließen Sie das Projekt und laden Sie es erneut

4.) Gehen Sie zu Xcode -> Fenster -> Organizer -> Projekte -> $ YourProject -> Abgeleitete Daten löschen

5.) Warten Sie einen Moment, bis XCode alle Angaben neu erstellt


Um weitere Informationen zu erhalten, aktivieren Sie die ausführliche Protokollierung:

1.) Erhöhen Sie den Xcode-Log-Level in der Terminal-App:

2.) Console-App öffnen. Suche nach "xcode"

3.) Ich sah "file not found" -Fehler für Headerdateien, die in der pch-Datei erwähnt werden (daher das obige Update)

147
Lars Schneider

Ich hatte das gleiche Problem mit einem Projekt, das in Xcode 3 in Ordnung war und bei dem die Syntaxhervorhebung und Code-Vervollständigung in Xcode 4 beschädigt wurde reproduziere/korrigiere das Problem zu 100% für mich.

Nachdem ich alle zuvor genannten Lösungen ohne Erfolg ausprobiert hatte, versuchte ich, das Projekt von Grund auf zu erstellen und alle Dateien und Ordner mühsam neu zu importieren. Jedes Mal, wenn ich ein paar Dateien importierte, überprüfte ich das Syntax-Highlighting. Sogar nach den letzten paar von ihnen tat es immer noch. Dann traf ich auf build, was fehlgeschlagen ist, weil ich vergessen hatte, ein paar allgemeine Header-Dateien in die Projekt-PCH-Datei aufzunehmen, die im alten Projekt vorhanden waren. Und dann brach CodeSense wieder.

Nach weiteren Untersuchungen haben wir festgestellt, dass CodeSense beschädigt wird, wenn Sie eine Header-Datei importieren, die wiederum dieselbe Framework-Header-Datei importiert wie bereits die .pch-Datei. Das gleiche Setup verursachte keine Probleme in Xcode 3.

Beispiel:

project.pch

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

projectConfig.h

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

Also das ganz unnötige entfernen

#import <Foundation/Foundation.h>

direktive aus 'projectConfig.h' können Sie die Hervorhebung korrigieren und Code-Vervollständigung wird auch für Sie zurückkommen. Wenn dein Problem dasselbe ist wie bei mir.

43
rage

Wählen Sie einfach die Datei aus, die die Syntaxfärbung verloren hat, und drücken Sie Editor> Syntaxfärbung> (wählen Sie Ihre Sprache (Objective C++ für ex) anstelle von "Default" 

14
Emad

Ich habe den besten Weg gefunden, die Syntaxfärbung wieder herzustellen, indem Sie Xcode beenden und neu starten. Ich konnte dir nicht sagen warum, aber das funktioniert jedes Mal.

6
todd412

Ich finde, dass das Folgende oft den Trick macht ...

Wählen Sie "Base SDK" und "Architektur" in "Build-Einstellungen" erneut aus. (Klicken Sie oben links auf das blaue Projekt - Symbol, während Sie sich im "Browser - Modus" befinden 1, dann auf Projekteinstellungen klicken und dort mit dem Zeug herumspielen.

Stellen Sie sicher, dass sie alle in einer Reihe stehen/es tut nicht weh, ein wenig zu tun wackelig-wogglying oben drin, während Sie da drin sind… Sie wissen, mischen Sie es einfach ein bisschen durch. Sie werden feststellen, dass xCode einen winzigen Mini-Strich hat - jedes Mal, wenn Sie zwischen 64 und 32 Bit wechseln ... In der Regel weiß ich, ob die Code-Hervorhebung für die Nacht beendet ist oder ob ich bereit bin.

Oft habe ich ein Projekt, das sofort im 32-Bit-Modus hervorgehoben wird und nur in 64 angezeigt wird ... Wer weiß ... Ahh, Xcode, du verrückter Trottel.

4
Alex Gray

Wählen Sie Ihr Projekt -> Einstellungen erstellen -> Apple LLVM Language 5.0 -> Prefix Header in YES. NSLog war nicht hervorgehoben. Derzeit läuft Xcode 5.0.1 Hoffe, es hilft =) Danke @rebelzach

3

Ich kann ein 100% Update für dieses Problem bestätigen, basierend auf einer Frage, die ich gestellt hatte (und tatsächlich beantwortet), wie unten dargestellt. Eine Sache, die ich hinzufügen möchte, ist, dass manchmal "irrige Leerzeichen" auch zum Verlust der Hervorhebung beitragen können. Bereinigen Sie es entweder selbst oder verwenden Sie das Goggle Toolbox for Mac Xcode 4 Plugin, das einen Eintrag im XCode Edit-Menü namens Clean Up Whitespace hinzufügt.

enter image description hereenter image description here

2
Alex Gray

Dies scheint ein ähnlicher Fehler aus dieser Frage zu sein.

Ich konnte dieses Problem beheben, indem Sie Precompile Prefix Header in den Build-Einstellungen auf No setzen.

2
rebelzach

Für mich war es so, dass ich mein Projekt umbenannt habe und Tests target immer noch auf den alten pch-Speicherort verweist, aber mein App-Ziel zeigte auf das neue. 

Wenn Ihr App-Delegat immer noch Code-Sinn hat, kann dies auch für Sie der Fall sein. Gehen Sie in das Projekt, wählen Sie das Präfix "Tests" als Zielsuche aus und setzen Sie es auf den entsprechenden Wert im "App" -Ziel.

1
atlex2

Ich hatte kürzlich ein ähnliches Problem, alle Farbgebung und Autovervollständigung funktionierten nicht mehr für eingebaute Frameworks, meine eigenen Klassen funktionierten trotzdem. Jemand empfahl mir, in den Build-Einstellungen "Static Analyzer ausführen" auszuschalten. Es ist komisch, aber es hat funktioniert. 

1
Cory Kilger

Dieses Problem tritt auch auf und ich habe versucht, die Lösungen entweder "den Index neu aufbauen", "XCode neu starten", "die Compilereinstellung auf LLVM GCC 4.2 zu ändern". Die haben mir nicht geholfen.

Also habe ich versucht, den folgenden Code zusammen mit der neuen Erstellung der Header-Datei sofort hinzuzufügen.

#include "header.h"

using namespace cocos2d

Dann wird der zuvor in der Header-Datei hinzugefügte Code eingefärbt und kann Klassen und Sachen erkennen.

Ich habe cocos2d-x verwendet, daher basiert meine Syntax auf C++. Ich teste es aber noch nicht mit Objective-c.

0
haxpor

Öffnen Sie die Projekteinstellungen ( Projekt> Projekteinstellungen bearbeiten ) und klicken Sie auf die Schaltfläche Code Sense Index neu erstellen auf der Registerkarte General . Dadurch wird der Index neu erstellt, den Xcode für die Syntaxfärbung verwendet.

Dieser Vorgang kann bei größeren Projekten eine Weile dauern. Sie können den Fortschritt im Aktivitätsfenster ( Fenster> Aktivität Menü) überprüfen.

0
Rob Keniger

Darüber hinaus gibt es in XCode4 keine Schaltfläche, um den Code Sense-Index neu zu erstellen.

0
Sunil Gowda

Ich hatte das gleiche Problem und löste dieses Problem, indem ich meine Build-Einstellungen mit dem Systemstandardcompiler LLVM GCC 4.2 aktualisiert.

Es scheint mehrere Faktoren zu geben.

0
Mike Pulaski

Denn jemand weiß noch nicht warum. Mit XCode 8.2 öffnen lassen, sollte es funktionieren

0
Hieu Tran