Xcode: कोड वाक्यविन्यास रंग खो देता है


80

मुझे लगता है कि विभिन्न स्थितियों में एक्सकोड 3.1 (तेंदुआ) में ऑब्जेक्टिव-सी कोड टाइपिंग के बाद उचित सिंटैक्स रंग पाने में विफल हो सकता है या उस रंग को खो सकता है जो उसके पास था।

यह नए कस्टम प्रतीकों के साथ सिर्फ एक "ताज़ा" मुद्दा नहीं है - लेकिन साथ ही कोको फ्रेमवर्क प्रतीकों को भी प्रभावित करता है।

कभी-कभी सीएमडी-कोड पृष्ठ पर सभी पाठ का चयन करने के लिए रंग (फिर से) दिखाई देगा, कभी-कभी एक पंक्ति पर डबल क्लिक करने के लिए यह काम करेगा, कभी-कभी मुझे उस प्रतीक को प्राप्त करने के लिए प्रतीक में एक स्थान जोड़ना / हटाना होगा (पुनः) रंग। परियोजना का पुनर्निर्माण, या बंद करना / फिर से खोलना काम नहीं कर सकता है या नहीं।

क्या यह Xcode के साथ एक ज्ञात मुद्दा है? मेरे लिए इतना कष्टप्रद कुछ के लिए, मैं एसओ और अन्य जगहों पर इसकी भरपूर चर्चा नहीं कर पा रहा हूं।

और क्या ग्लोबल सिंटेक्स रिकॉलिंग के लिए बाध्य करने की कोई आज्ञा है?


इसके अलावा मेरे जवाब की जांच करें यहां stackoverflow.com/questions/1627033/…
गजेंद्र के चौहान

जवाबों:


148

1.) प्रोजेक्ट पर जाएं -> बिल्ड सेटिंग्स -> हैडर सर्च पाथ

2.) "$ (SRCROOT) / **" जोड़ें

3.) प्रोजेक्ट को बंद करें और पुनः लोड करें

4.) Xcode -> विंडो -> ऑर्गनाइज़र -> प्रोजेक्ट्स -> $ YourProject -> डिलीट किए गए डेटा को हटाएं

5.) एक पल तक प्रतीक्षा करें जब तक कि XCode सभी संकेतों का पुनर्निर्माण न करे


अधिक जानकारी प्राप्त करने के लिए वर्बोज़ लॉगिंग को सक्रिय करें:

1.) टर्मिनल ऐप में Xcode लॉग लेवल बढ़ाएं: डिफॉल्ट्स com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3 लिखें

2.) ओपन कंसोल ऐप। "Xcode" के लिए खोजें

3.) मैंने पीच फाइल में उल्लिखित हेडर फाइलों के लिए "फाइल नहीं मिली" त्रुटियां देखीं (इसलिए ऊपर ठीक है)


2
आपके उत्तर का दूसरा भाग बहुत मददगार था !!
डेनिस मिखायलोव

2
इस साल WWDC में प्रयोगशाला में मेरा अनुभव था कि अगर आप वाक्य रचना को उजागर करना चाहते हैं, तो पूर्व-संकलन को पूरी तरह से बंद कर दें ... यह मेरे लिए काम किया लेकिन एक अपर्याप्त फिक्स की तरह लगता है
स्टीवन

धन्यवाद, @ लार्स श्नाइडर। एक अच्छा तरीका है।
तीर्थ

2
आपका बहुत बहुत धन्यवाद! # 4 (व्युत्पन्न डेटा को हटाना) मेरे लिए भी काम किया।
मार्क मैकेलवी

1
इसने मेरे लिए Xcode 8.3 में काम किया, जबकि एक अन्य समाधान जो पहले 8.2% के तहत काम करता था, सिंटेक्स हाइलाइटिंग को पुनर्स्थापित करना बंद कर दिया। महान, कालातीत उत्तर!
एड्रियन

43

मेरे पास एक प्रोजेक्ट के साथ एक ही मुद्दा था जो कि Xcode 3 में ठीक था और जिसके लिए सिंटैक्स हाइलाइटिंग और कोड पूरा होना Xcode 4 में टूट गया है। मुझे यह पता लगाने के लिए दिन का बेहतर आधा समय लगा, लेकिन मैंने पाया कि निम्न चरण होंगे मेरे लिए 100% समस्या को पुन: उत्पन्न / ठीक करें।

बिना किसी लाभ के सभी उपर्युक्त समाधानों की कोशिश करने के बाद, मैंने स्क्रैच से प्रोजेक्ट बनाने की कोशिश की और हर फाइल और फोल्डर को श्रमसाध्य रूप से पुन: आयात किया। हर बार जब मैंने कुछ फाइलों को आयात किया, जिनकी मैंने जाँच की और वाक्य रचना हाइलाइटिंग अभी भी काम की है। पिछले कुछ के बाद भी यह अभी भी किया था। फिर मैंने बिल्ड हिट किया, जो विफल हो गया क्योंकि मैं प्रोजेक्ट में कुछ सामान्य हेडर फ़ाइलों को शामिल करना भूल गया था। पीपी फाइल जो पुराने प्रोजेक्ट में थीं। और वह तब था जब कोडइकॉन फिर से टूट गया।

आगे की जांच के बाद हमने पाया कि यदि आप एक हेडर फ़ाइल आयात करते हैं जो बदले में .pch की तुलना में उसी फ्रेमवर्क हेडर फ़ाइल को आयात करता है, तो कोडइकॉन टूट जाएगा। एक ही सेटअप Xcode 3 में किसी भी मुद्दे का कारण नहीं बना।

उदाहरण:

परियोजना

#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' के निर्देश से आप हाइलाइटिंग को ठीक कर सकते हैं और कोड पूरा होने पर आपके लिए भी वापस आ जाएगा। अगर आपका मुद्दा वही है जो मेरा है।


हाँ ... बस एक ही मुद्दा था ... और क्रोध के समाधान ने इसे ठीक कर दिया।
क्रॉस

4
क्यों इस समताप मंडल में मतदान नहीं किया गया है? मैंने अपने हेडर के सभी मुद्दों की सफाई करने की जहमत नहीं उठाई और बदले में अपने लक्ष्य के लिए सिर्फ Precompile Prefix Header विकल्प को बंद कर दिया और सब ठीक है। अंत में मैं पूरी टीम को ४.२ में अपग्रेड कर सकता हूं, क्योंकि हम टूट गए हैं।
रोब बूथ

2
यह काम करता हैं! मैंने @Rob Booth के समान ही किया, मैंने "Precompile Prefix Header" को बंद कर दिया (इसे NO पर सेट करें), अपने प्रोजेक्ट को साफ़ किया और इसके व्युत्पन्न डेटा को हटा दिया। मेरी वाक्य रचना हाइलाइट काम करने के लिए फिर से शुरू!
hbobenicio

इससे मेरा मुद्दा ठीक हो गया। मेरा फाउंडेशन फ़ाइल नहीं था, लेकिन एक कस्टम वर्ग था। मैंने इसे केवल .pch फ़ाइल से हटा दिया और फिर इसे पढ़ा और अपनी अन्य कक्षा की फाइलों में इसके सभी उदाहरणों को हटा दिया।
बॉट

आपको मेरा धन्यवाद। :) मैंने आपके वर्णन का बिल्कुल पालन किया। अपने .PCH में आयात की जाने वाली सभी फाइलों से फाउंडेशन और यूआईकिट को हटा दिया।
तिमो

16

बस उस फ़ाइल का चयन करें जिसने वाक्य रचना रंग खो दिया है, संपादक> सिंटैक्स रंग> (अपनी डिफ़ॉल्ट के बजाय अपनी भाषा चुनें (पूर्व के लिए उद्देश्य c ++) चुनें।


2
मेरे साथ ऐसा हुआ। निश्चित नहीं है कि XCode केवल एक फ़ाइल के लिए सही फ़ाइल प्रकार के बजाय जेनेरिक को डिफ़ॉल्ट क्यों करेगा, लेकिन इस चरण ने इसे हल कर दिया। मैंने पहले व्युत्पन्न डेटा को साफ और हटाने की कोशिश की है, जो मुझे लगा कि एक अपराधी था।
रुडी

चीयर्स ... Apple मेरे लिए AppleScript चुन रहा था lol धन्यवाद दोस्त
बिक्रम थापा

7

मैंने सिंटैक्स रंग को फिर से प्राप्त करने का सबसे अच्छा तरीका पाया है कि सिर्फ Xcode को छोड़ कर इसे फिर से लॉन्च किया जाए। मैं आपको क्यों नहीं बता सकता, लेकिन वह हर बार काम करता है।


1
मेरे लिए यह परियोजना को फिर से खोलने के लिए पर्याप्त था।
thgc

कितना पागल है! न केवल यह उस श्रेणी को उजागर करने को ठीक करता है जो पहले विफल हो रहा था, वह भी काम करना शुरू कर दिया था
Judioo

4

मुझे लगता है कि निम्नलिखित अक्सर चाल करेंगे ...

"रेज़िनेट" दोनों "बेस एसडीके" - और "आर्किटेक्चर" - "बिल्ड सेटिंग्स" में। (शीर्ष ब्राउज़र में नीले प्रोजेक्ट आइकन पर 1क्लिक करें , जबकि "ब्राउज़र मोड" उर्फ ​​में , फिर प्रोजेक्ट सेटिंग्स पर क्लिक करें और वहां सामान के साथ गड़बड़ करें।

सुनिश्चित करें कि वे सभी लाइन अप करते हैं / इसमें थोड़ा टॉगल-वॉगिंग करने के लिए चोट नहीं लगती है , जबकि आप वहां हैं ... फिर जानते हैं कि इसे थोड़ा मिलाएं। आप ध्यान देंगे कि xCode में एक नन्हा-नन्हा मिनी-स्ट्रोक है - हर बार जब आप 64 और 32 बिट के बीच स्विच करते हैं ... यह आमतौर पर होता है जब मुझे पता होता है कि कोड हाइलाइटिंग रात के लिए मृत है, या यदि मैं जाने के लिए अच्छा हूं।

अक्सर, मेरे पास एक ऐसी परियोजना होगी जो 32 बिट मोड में तुरंत हाइलाइट हो जाती है, और 64 में बस वहां बैठ जाती है ... कौन जानता है .. आह, एक्सकोड, आप बॉट को मिटा देते हैं।


1
उत्तर ने मुझे बहुत मदद की और काम किया ... लेकिन आपकी लेखन शैली में सुधार किया जा सकता है :)
इटलीपेलएले

पूर्वव्यापी में, हाँ, यह उत्तर वास्तव में किसी भी गैर-देशी अंग्रेजी बोलने वाले के लिए समझ से बाहर हो सकता है। काश, मेरे लिए ... यह Hillairballs है
एलेक्स ग्रे

3

अपने प्रोजेक्ट का चयन करें -> सेटिंग टैब बनाएं -> Apple LLVM 5.0 भाषा -> Precompile उपसर्ग हैडर से हाँ। NSLog हाइलाइट नहीं कर रहा था। वर्तमान में Xcode 5.0.1 चल रहा है। आशा है कि यह मदद करता है =) धन्यवाद @rebelzach


2

मैं इस समस्या के लिए 100% फिक्स की पुष्टि कर सकता हूं , एक प्रश्न के आधार पर जो मैंने पूछा था (और वास्तव में उत्तर दिया गया), जैसा कि नीचे चित्रित किया गया है। एक चीज जो मैं जोड़ूंगा वह यह है कि कभी-कभी यह "गलत व्हाट्सएप" होता है जो हाइलाइटिंग के नुकसान में भी योगदान दे सकता है। या तो इसे स्वयं साफ करें, या मैक एक्सकोड 4 प्लगइन के लिए गॉगल टूलबॉक्स का उपयोग करें , जिसे एक्ससीएक्स Editमेनू में एक प्रविष्टि कहा जाता है Clean Up Whitespace

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें


2

यह इस प्रश्न से मिलती-जुलती त्रुटि प्रतीत होती है

मैं निर्धारित करके इस समस्या को दूर करने में सक्षम था Precompile Prefix Headerकरने के लिए Noनिर्माण सेटिंग में।


1

मेरे पास हाल ही में एक समान मुद्दा था, सभी रंगीन और स्वत: पूर्ण निर्मित फ्रेमवर्क के लिए काम करना बंद कर दिया, मेरे अपने वर्गों ने अभी भी काम किया। किसी ने मुझसे सिफारिश की कि मैं बिल्ड सेटिंग्स में "रन स्टेटिक एनालाइज़र" को बंद कर दूं। यह अजीब है, लेकिन यह काम किया।


1

मेरे लिए यह था कि मैंने अपने प्रोजेक्ट और टेस्ट का नाम बदल दिया लक्ष्य अभी भी पुराने pch स्थान की ओर इशारा कर रहा था, लेकिन मेरा App लक्ष्य नए की ओर इशारा कर रहा था।

यदि आपके ऐप के प्रतिनिधि को अभी भी कोड की समझ है, तो यह आपके लिए भी मामला हो सकता है। परियोजना में जाएं, 'टेस्ट' लक्ष्य खोज 'उपसर्ग' चुनें और इसे 'ऐप' लक्ष्य में बराबर मूल्य पर सेट करें।


0

प्रोजेक्ट सेटिंग्स खोलें ( प्रोजेक्ट> प्रोजेक्ट सेटिंग्स संपादित करें मेनू) और फिर सामान्य टैब में पुन: निर्माण कोड सेंस इंडेक्स बटन पर क्लिक करें । यह उस इंडेक्स को फिर से बनाएगा जो Xcode सिंटैक्स कलरिंग के लिए उपयोग करता है।

यह प्रक्रिया बड़ी परियोजनाओं के लिए कुछ समय ले सकती है, इसलिए आप गतिविधि विंडो ( विंडो> गतिविधि मेनू) में प्रगति की जांच कर सकते हैं ।


2
समय के बाद यह मेरे लिए समस्या को ठीक नहीं करता है। मुझे कुछ गलत करना चाहिए, क्योंकि XCode सिंटैक्स को हाइलाइट करने या ऑटो पूरा करने को प्रदर्शित करने में परेशान नहीं करता।
जेसडेक

1
कृपया सुनिश्चित करें कि आप इस प्रकार की समस्याओं के बारे में Apple के खिलाफ बग लॉग करते हैं: bugreport.apple.com।
लिंडसी फर्ग्यूसन

0

इसके अलावा, XCode4 में कोड अर्थ इंडेक्स के पुनर्निर्माण के लिए कोई बटन नहीं है।


मैंने कहीं पढ़ा कि यह शायद इसलिए है क्योंकि XCode4 को अब कोड सेंस इंडेक्स की जरूरत नहीं है। मुझे लगता है कि यह एक अलग सूचकांक रखने के बजाय सीधे नए क्लैंग सिंटैक्स विश्लेषण का उपयोग करता है। यह इसलिए भी है क्योंकि कोड के सुझाव बहुत अधिक सटीक हैं क्योंकि यह केवल एक कंपाइलर दृष्टिकोण से समझ में आने वाले कोड पूर्णता का सुझाव देता है।
मार्केज़ादा

1
यह पता चला है कि एक तरीका है - stackoverflow.com/questions/1627033/…
Arkaaito

0

मुझे वही समस्या थी और सिस्टम डिफ़ॉल्ट कंपाइलर, एलएलवीएम जीसीसी 4.2 का उपयोग करने के लिए अपनी बिल्ड सेटिंग्स को अपडेट करके इसे हल किया।

ऐसा लगता है कि कई कारक हैं।


0

मैं इस मुद्दे को भी अनुभव करता हूं, और "इंडेक्स के पुनर्निर्माण", "रिलॉन्च एक्सकोड", "कंपाइलर सेटिंग को एलएलवीएम जीसीसी 4.2" में बदलने के समाधान की कोशिश की है। उन लोगों ने मेरी मदद नहीं की।

इसलिए मैंने हेडर फ़ाइल के नए निर्माण के साथ ही निम्नलिखित कोड को तुरंत जोड़ने की कोशिश की।

#include "header.h"

using namespace cocos2d

फिर, शीर्ष लेख फ़ाइल में पहले जोड़ा गया कोड रंगा हुआ है, और यह कक्षाओं और सामान को पहचान सकता है।

मैंने cocos2d-x का उपयोग किया है, इसलिए मेरा सिंटैक्स c ++ पर आधारित है। मैं इसे अभी तक उद्देश्य-सी के साथ परीक्षण नहीं करता।


0

किसी के लिए अभी भी पता नहीं क्यों। XCode 8.2 के साथ खुलने दें , यह काम करना चाहिए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.