web-dev-qa-db-fra.com

xcode code sens couleur/complétion ne fonctionne pas

EDIT: C'est étrange ... si je double-clique sur l'élément Projets récents du projet dans l'écran d'accueil, le sens du code et la coloration fonctionnent parfaitement, mais si je clique simplement sur Open (en bas à droite de l'écran d'accueil), ne le fait pas L'ouverture à partir de File > Recent projects ne fonctionne pas non plus, pas plus que vous ne double-cliquez sur le fichier .xcodeproj dans le Finder.


Le sens du code pour un projet iPhone OS 3.0 sur lequel je travaille depuis plusieurs mois (à travers différentes installations/versions de XCode) ne fonctionne plus. Par exemple, si je fais NSString *myString, tout le code serait noir (pas de coloration, pas d'option + double-clic, pas de complétion de code). Code Sense ne "fonctionne" que pour mes propres classes/méthodes/propriétés, mais pas pour les classes du SDK. Si je crée un nouveau projet à partir de zéro, je les ai tous fonctionnés.

J'ai déjà essayé de changer le "Kit de développement logiciel de base pour toutes les configurations" dans ce projet. J'ai déjà essayé "Rebuild Code Sense Index". J'ai déjà essayé "Nettoyer toutes les cibles".

La documentation dans les préférences est entièrement téléchargée et fonctionne. Par exemple, si je sélectionne le NSString ci-dessus et que je clique avec le bouton droit de la souris -> Rechercher du texte dans la documentation, la fenêtre contenant toutes les références à la classe apparaît.

Toutes les idées seront grandement appréciées.

68
mga

Obtenez des informations sur le projet dans Xcode et modifiez le format du projet afin qu'il corresponde à la version de Xcode que vous utilisez (au moment d'écrire ces lignes, "compatible avec Xcode 3.2").

Vous pouvez également supprimer les données dérivées, mais si vous ne modifiez pas le format de votre projet, le bogue se reproduira presque immédiatement. ( peut arriver même après la mise à jour du format de votre projet, mais je devais supprimer DerivedData plusieurs fois par jour, et je pense ne l'avoir fait que une fois depuis la réparation du projet.)

Comme indiqué ailleurs, le passage à LLVM peut être utile. Mais à mesure que je mets à jour cette réponse (2012), vous devriez quand même utiliser LLVM.

10
Steven Fisher

Dans Xcode 4, je n'ai pas été en mesure de trouver un bouton "Reconstruire le sens du code", mais si vous allez dans Fenêtre -> Organiseur, sélectionnez l'onglet Projet et cliquez sur "Supprimer ..." en regard du dossier Données dérivées. , cela semble avoir le même effet. (J'ai eu ce conseil de http://blog.slidetorock.com/xcode-4-code-sense-autocompletion-problems , ce qui indique qu'il l'a obtenu à son tour de https://stackoverflow.com/questions/2138047/xcode-code-perd-syntaxe-colorante - mais je ne le vois pas dans les réponses, ce qui est très curieux.)

204
Arkaaito

La coloration de la syntaxe fonctionne à nouveau après les étapes suivantes:

  • Allez à Organiseur> Projet> Supprimer les données dérivées de votre projet Actuel.
  • Clean & Build
  • Fermez et quittez XCode, puis rouvrez le projet
  • La coloration de la syntaxe devient bien après la réindexation du projet

P.S.

  • LLVM Complier 3.0
  • j'ai utilisé -fno-objc-arc Complier Flags pour toutes les bibliothèques tierces (p. ex. A__HTTPRequest)
  • Mon projet est créé à partir de XCode 4.2
36
karlogeo

Il suffit de courir dans le terminal chaque fois que nécessaire

rm -fR ~/Library/Developer/Xcode/DerivedData

Fonctionne bien. Souligner et me faire revivre la codification!.

note: comme je vois c'est enlever snapshost et un autre 'fonctionnalités' de Xcode4. Mais nous ne l'utilisons pas :)

35
Sergey Kopanev

J'ai eu le même problème dans Xcode 4 et je l'ai résolu en remplaçant le compilateur de GCC 4.2 par LLVM GCC 4.2.

12
Thomas Müller

J'ai trouvé un moyen d'éviter ce bug. J'ai vu le bogue apparaître chaque fois que je modifie un fichier importé dans le préfixe.pch.

Essayez d'importer votre propre fichier en haut de la liste importée, au-dessus de UIKit.h et Fonudation.h et PAS à la fin, comme tout le monde.

Dans mon fichier prefix.pch:

#ifdef __OBJC__
    #import "myFile.h"
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif
10
booker

J'ai eu ce problème aussi. J'avais précédemment désactivé l'indexation pour accélérer les opérations xcode et je n'avais pas réalisé à l'époque que certaines parties du code seraient en surbrillance. Si vous avez fait cela, vous pouvez réactiver l'indexation en entrant ceci dans le terminal:

defaults write com.Apple.dt.XCode IDEIndexDisable 0

si vous voulez désactiver l'indexation, entrez ceci dans le terminal:

defaults write com.Apple.dt.XCode IDEIndexDisable 1
4
Felonious CodeMonk

Il semble y avoir une myriade de causes proposées et de solutions à ce problème, et je pense en avoir essayé la majorité. Ce qui a finalement fonctionné pour moi (dans Xcode 4.1) a été de:

  • supprimer les références aux fichiers de problèmes dans le navigateur de projet
  • déplacer les fichiers problématiques du dossier du projet dans le Finder
  • de retour dans le navigateur de projet, faites un clic droit et choisissez Ajouter des fichiers à ... 
  • recherchez les fichiers que je venais de déplacer et ajoutez-les à nouveau dans le projet en veillant à ce que l'option "Copier les éléments dans le dossier du groupe de destination (si nécessaire)" soit sélectionnée.

Sens du code restauré.

Pour être plus spécifique, mon problème exact est lorsque je crée une nouvelle classe via un clic droit dans le navigateur de projet, environ 30 à 40% du sens du code temporel ne fonctionne pas dans le fichier d'en-tête de la nouvelle classe. Fait intéressant, cela fonctionne dans la mise en œuvre.

Les choses que j'ai essayées et qui ont échoué:

  • suppression du dossier de données dérivé dans l'Organiseur
  • suppression du dossier de données dérivé dans le Finder
  • créer une toute nouvelle classe à partir de zéro (pourquoi cela n'a pas fonctionné, je n'en ai aucune idée.)
  • changer le langage de coloration de la syntaxe
  • changer le compilateur vers et depuis toutes les options plusieurs fois
  • spécification d'un chemin de recherche d'en-têtes spécifique

J'adorerais d'autres suggestions possibles pour mettre fin à ce problème car c'est vraiment ennuyeux!

4
GnarlyDog

Avait les mêmes problèmes dans Xcode 4.0.2. Le sens du code fonctionnait dans tous les fichiers sauf deux, un fichier .m et le fichier .h correspondant. Tout essayé - à l'exception de reconstruire l'index de sens du code, parce que je ne pouvais trouver le bouton nulle part - rien ne fonctionnait. Finalement, j'ai supprimé les fichiers corrélés, les fichiers .m, .h et .xib. Créé de nouveaux fichiers, tout fonctionne maintenant comme prévu.

3
drct

Si vous remarquez que cela ne se produit que sur certains de vos fichiers, assurez-vous que le fichier .m est membre de votre cible.

2
Andy

En plus de quoi tewha, je devais cliquer sur le bouton "Reconstruire l'index du sens du code". Il se trouve au bas de l'onglet "Général" dans Obtenir des informations sur le projet.

2
kolinko

La coloration de la syntaxe, la complétion automatique, le passage aux fichiers d’en-tête, etc. sont complètement effacés depuis XCode4. La vue de navigateur de mon symbole est complètement vide. Je n'avais pas réalisé à quel point j'étais devenu dépendant de l'auto-complétion, ma productivité avait chuté d'un facteur. Ce qui est étrange, c’est que mes coéquipiers voient différentes combinaisons de fonctionnalités manquantes. Seulement, j’ai la chance d’avoir tout perdu. FWIW Je suis sur le dernier MBP de la génération. 

1
Sunil Gowda

J'ai eu ce problème sur juste un de mes fichiers .m, et après avoir essayé beaucoup des choses ci-dessus, il s'est avéré que XCode avait à un moment donné supprimé l'extension .m. Il figurait toujours dans le navigateur de projet en tant que "Myclass.m", mais un clic droit dessus et la sélection de Afficher dans le Finder ont révélé que le fichier s'appelait simplement "Myclass" (et était étrangement placé dans le sous-dossier en.lproj!).

Le fait de supprimer la référence du navigateur de projet, de renommer et de déplacer le fichier et de l'ajouter au projet a résolu mon problème.

1
MarkusEkblad

Recherchez 'GCC_INCREASE_PRECOMPILED_HEADER_SHARING' dans les paramètres de construction et changez-le en OUI. - Cela a fonctionné pour moi!

enter image description here

1
thatzprem

Parfois, l'ajout de commentaires multilignes à la fin de l'instruction @end dans le code empêche l'auto-complétion dans Xcode 6.0.1. J'ai eu le même problème. Il suffit de vérifier ..

0
Dhaval H. Nena

Le sens du code fonctionnait pour la plupart des fichiers à l’exception de 3 ou 4 fichiers .m/.h. J'ai tout essayé ci-dessus, et la seule chose qui a fonctionné pour moi était la solution de drct. J'ai fermé xCode, déplacé le projet dans un autre dossier et rouvert. 

Je trouve maintenant que, si je clique avec le bouton droit de la souris sur un dossier (ou groupe) dans le navigateur de projet et sélectionnez "Nouveau fichier ...", le code ne fonctionne pas.

Si au lieu de cela, j'utilise le menu principal et sélectionnez Fichier> Nouveau >> Nouveau fichier ". Le sens du code fonctionne bien.

0
Niall

J'ai eu exactement le même problème, mais rien de ce qui précède n'a fonctionné pour moi. J'ai finalement dû ouvrir xcode. 

File>Open Recent> Clear Menu

Cela a résolu le problème pour moi, il semble que, lorsque j'ai importé un projet github qui a gâché mon sens du code après avoir effacé les Récents puis rouvert le projet, tout a bien fonctionné.

0
Anthony McCormick

Ce qui a fonctionné pour moi a été de changer le compilateur en "Compilateur LLVM 2.0". 

0
Chris Livdahl

Une chose que j’ai rencontrée aujourd’hui et qui a affecté la coloration du code est que j’ai accidentellement ajouté un fichier d’en-tête (.h) dans Target -> Build Phases -> Compile Sources. Une fois enlevé, la couleur du code est revenue comme par magie :) 

0
Marko Hlebar

Dans mon cas, un seul fichier .m a ce problème. La saisie semi-automatique est correcte, mais ne montre pas tout. Par exemple, lorsque je tape "NS", la saisie semi-automatique ne s'affiche qu'avec "NSMutableDictionary" et il n'y a rien d'autre! J'ai tout essayé, cherché partout pendant 1 heure + mais rien ne l'a arrangé.

Puis, par curiosité, j'ai supprimé un bloc de commentaires que j'avais collé précédemment à la fin du fichier .m (sous le mot de fin). Après avoir supprimé cela, l'auto-complétion fonctionne à nouveau normalement!

Voici le coupable:  enter image description here

Ainsi, si votre saisie semi-automatique échoue sur un seul fichier, vous pouvez vérifier et supprimer tout ce qui se trouve sous @end Word.

0
GeneCode

Essayez de fermer et d’ouvrir l’IDE ​​XCODE.

0
idanuda

Pourquoi je suis encore heureux :)

J'ai eu ce problème, mais un jour avant que je ne désactive le processus d'indexation XCode.

Résolu en mettant cette commande en terminal. J'espère que ça aide quelqu'un.

defaults write com.Apple.dt.XCode IDEIndexDisable 0

Et oui j'utilise Xcode 7.0

0
Gajendra K Chauhan