web-dev-qa-db-fra.com

Xcode: le code perd la coloration de la syntaxe

Je constate que, dans diverses situations, le code Objective-C dans Xcode 3.1 (Leopard) peut ne pas obtenir la coloration syntaxique appropriée après la saisie ou la perte de coloration qu'il possède.

Il ne s’agit pas uniquement d’un problème de "rafraîchissement" avec de nouveaux symboles personnalisés, mais il affecte également les symboles de la structure Cocoa.

Parfois, CMD-a pour sélectionner tout le texte sur la page de code fera apparaître la (ré) coloration, parfois en double-cliquant sur une ligne pour la sélectionner fonctionnera, parfois je dois ajouter/supprimer un espace dans un symbole pour obtenir ce symbole. à (re) colorier. Reconstruire ou fermer/rouvrir le projet peut ou non fonctionner.

Est-ce un problème connu avec Xcode? Pour quelque chose de si agaçant pour moi, je ne trouve pas les discussions abondantes à ce sujet sur SO et ailleurs, je m'attendrais à ce que ce soit.

Et existe-t-il une commande pour forcer le recoloration de la syntaxe globale?

79
ColorMeFamous

1.) Allez dans Projet -> Paramètres de construction -> Chemins de recherche d'en-tête

2.) Ajouter "$ (SRCROOT)/**"

3.) Fermer et recharger le projet

4.) Allez dans Xcode -> Fenêtre -> Organiseur -> Projets -> $ YourProject -> Supprimer les données dérivées

5.) Attendez un moment jusqu'à ce que XCode reconstruise tous les indicateurs


Pour obtenir plus d'informations, activez la journalisation détaillée:

1.) Augmenter le niveau de journalisation Xcode dans l’application Terminal:

2.) Ouvrez l'application Console. Recherche de "xcode"

3.) J'ai vu des erreurs "fichier non trouvé" pour les fichiers d'en-tête mentionnés dans le fichier pch (donc le correctif ci-dessus)

147
Lars Schneider

J'ai eu le même problème avec un projet qui fonctionnait bien dans Xcode 3 et pour lequel la coloration syntaxique et l'achèvement du code étaient brisés dans Xcode 4. Il m'a fallu la moitié de la journée pour le comprendre, mais les étapes suivantes reproduire/corriger le problème à 100% pour moi.

Après avoir essayé toutes les solutions susmentionnées sans succès, j'ai essayé de créer le projet à partir de zéro et de réimporter minutieusement chaque fichier et chaque dossier. Chaque fois que j'ai importé quelques fichiers, j'ai vérifié et la mise en évidence de la syntaxe fonctionnait toujours. Même après quelques-uns, il l'a toujours fait. Ensuite, j'ai appuyé sur la compilation qui a échoué parce que j'avais oublié d'inclure quelques fichiers d'en-tête communs dans le fichier de projet .pch qui figuraient dans l'ancien projet. Et c'est à ce moment-là que CodeSense a de nouveau éclaté.

Après un examen plus approfondi, nous avons constaté que si vous importez un fichier d’en-tête qui importe à son tour le même fichier d’en-tête de structure que le fichier .pch, CodeSense se cassera. La même configuration n'a posé aucun problème dans Xcode 3.

Exemple:

project.pch

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

projectConfig.h

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

Donc, en supprimant totalement inutile

#import <Foundation/Foundation.h>

directive de 'projectConfig.h' vous pouvez corriger la surbrillance et la complétion de code reviendra aussi pour vous. Si votre problème est le même que le mien, c’est le cas.

43
rage

Sélectionnez simplement le fichier qui a perdu la coloration de la syntaxe, appuyez sur Editeur> Coloration de la syntaxe> (choisissez votre langue (Objective C++ pour ex) au lieu de "Par défaut" 

14
Emad

J'ai trouvé que le meilleur moyen de retrouver la coloration syntaxique est simplement de quitter Xcode et de le relancer. Je ne saurais vous dire pourquoi, mais ça marche à chaque fois.

6
todd412

Je trouve que ce qui suit va souvent faire l'affaire…

"Resélectionnez" "SDK de base" - et "Architecture" dans "Paramètres de construction". (Cliquez sur l'icône bleue du projet en haut à gauche, alors que vous êtes en "mode navigateur", alias 1, puis cliquez sur Paramètres du projet et décoiffez-les.

Assurez-vous qu'ils sont tous alignés/ça ne fait pas mal de faire un peu toggly-wogglying , alors que vous êtes là-bas… tu sais mélangez-le un peu. Vous remarquerez que xCode a un minuscule trait minuscule - chaque fois que vous passez de 64 à 32 bits… C’est généralement lorsque je sais si la mise en surbrillance du code est morte pour la nuit ou si je suis prête à partir.

Souvent, un projet est mis en évidence instantanément en mode 32 bits et reste en 64… Qui sait… Ah, Xcode, vous êtes fou!.

4
Alex Gray

Sélectionnez votre projet -> onglet Paramètres de construction -> Apple LLVM Language 5.0 -> En-tête de préfixe de précompilation sur YES. NSLog n'était pas en surbrillance. En cours d'exécution Xcode 5.0.1 J'espère que cela aide =) Merci @rebelzach

3
Robert Mcelvenny

Je peux confirmer un correctif à 100% pour ce problème, sur la base d’une question que j’avais posée (et en fait répondu), comme illustré ci-dessous. Une chose que j’ajouterai, c’est que parfois, ce sont des "espaces blancs errants" qui peuvent également contribuer à la perte de surbrillance. Nettoyez-le vous-même ou utilisez le plug-in Goggle Toolbox for Mac Xcode 4, qui ajoute une entrée dans le menu XCode Edit appelée Clean Up Whitespace.

enter image description hereenter image description here

2
Alex Gray

Cela semble être une erreur similaire de cette question

J'ai pu corriger ce problème en définissant Precompile Prefix Header sur No dans les paramètres de construction.

2
rebelzach

Pour moi, c’est que j’ai renommé mon projet et Tests target pointait toujours sur l’ancien emplacement de pch, mais ma cible App désignait le nouveau. 

Si le délégué de votre application a toujours le sens du code, cela pourrait également être le cas pour vous. Allez dans projet, sélectionnez le préfixe de recherche de cible 'Tests' et réglez-le sur la valeur équivalente dans la cible 'app'.

1
atlex2

J'ai récemment eu un problème similaire, toute la coloration et la complétion automatique ont cessé de fonctionner pour les frameworks intégrés, mes propres classes fonctionnaient toujours. Quelqu'un m'a recommandé de désactiver "Exécuter Static Analyzer" dans les paramètres de construction. C'est bizarre, mais ça a fonctionné. 

1
Cory Kilger

Je rencontre également ce problème et j'ai essayé les solutions suivantes: "reconstruction de l'index", "relance XCode", "modifiez le paramètre du compilateur en LLVM GCC 4.2". Ceux-ci ne m'ont pas aidé.

J'ai donc essayé d'ajouter le code suivant immédiatement avec la nouvelle création du fichier d'en-tête.

#include "header.h"

using namespace cocos2d

Ensuite, le code ajouté précédemment dans le fichier d’en-tête est colorisé, et il peut reconnaître les classes et les éléments.

J'ai utilisé cocos2d-x, ma syntaxe est donc basée sur c ++. Je ne l'ai pas encore testé avec Objective-c.

0
haxpor

Ouvrez les paramètres du projet ( Projet> Modifier les paramètres du projet menu), puis cliquez sur le bouton Reconstruire l'index de détection de code dans l'onglet Général . Cela recréera l'index utilisé par Xcode pour la coloration de la syntaxe.

Ce processus peut prendre un certain temps pour les projets plus volumineux. Vous pouvez donc suivre la progression dans la fenêtre Activité ( Fenêtre> Activité menu).

0
Rob Keniger

De plus, dans XCode4, il n’existe aucun bouton permettant de reconstruire l’index de lecture du code.

0
Sunil Gowda

J'ai eu le même problème et résolu cela en mettant à jour mes paramètres de construction pour utiliser le compilateur par défaut du système, LLVM GCC 4.2.

Il semble y avoir plusieurs facteurs.

0
Mike Pulaski

Car quelqu'un n'a toujours pas savoir pourquoi. Laissez ouvert avec XCode 8.2 , ça devrait marcher

0
Hieu Tran