Xcode स्रोत स्वचालित स्वरूपण


179

C # डेवलपर के रूप में, मैं विजुअल स्टूडियो 2008 में स्वचालित स्वरूपण पर अत्यधिक निर्भर हो गया हूं। विशेष रूप से, मैं इसका उपयोग करूंगा CTRL अपने मैला कार्यान्वयन के बाद चीजों को वापस आकार देने के + K, Dकीबोर्ड शॉर्टकट का ।

मैं अब ऑब्जेक्टिव-सी सीखने की कोशिश कर रहा हूं और एक्सकोड में कुछ खास फीचर्स गायब हैं, लेकिन शायद कोई भी प्रारूपण शॉर्टकट के रूप में काफी दर्दनाक नहीं है। मेरी Google खोजों ने कुछ भी नहीं बनाया है, हालांकि ऐसा लगता है कि कुछ हैक हैं। क्या मुझे कुछ याद आ रहा है या यह सुविधा मूल रूप से Xcode में मौजूद नहीं है?



लिंक के लिए धन्यवाद। मुझे यह भी मिला: blog.carbonfive.com/2009/08/iphone/code-formatting-in-xcode यह मूल रूप से आपके लिंक के समान तकनीक को शामिल करता है। मैं इसे आजमाऊंगा और देखूंगा कि यह कितना अच्छा है।
jslatts

1
UniversalIndentGUI का उपयोग करके तृतीय पक्ष समाधान: blog.carbonfive.com/2009/08/iphone/code-formatting-in-xcode
jslatts

इस प्रश्न के समान; उत्तर में मेनू आइटम और कीबोर्ड शॉर्टकट फिर से इंडेंट कोड: stackoverflow.com/questions/3558709/…
तुलसी बोर्क

2
इस पर पिछले 5 वर्षों में Apple से कोई नवाचार हुआ है? क्या यह प्रश्न अभी भी प्रासंगिक है या XCode अब प्रारूप कोड का एक नया और बेहतर समाधान है?
mm24

जवाबों:


134

दुर्भाग्य से, एक्सकोड के पास लगभग कुछ भी नहीं है जितना व्यापक रूप से वीएस या जलाली उपलब्ध है। Structure > Re-Indentजब आप अपने स्रोत फ़ाइल में कोड पेस्ट करते हैं, तो कुछ असम्बद्ध विशेषताएं भी होती हैं, जैसे कि ऑटो-फ़ॉर्मेटिंग। मैं आपके साथ पूरी तरह से हूं, हालांकि; स्वरूपण मुद्दों के साथ मदद करने के लिए निश्चित रूप से कुछ होना चाहिए


3
धन्यवाद, कम से कम मुझे पता है कि मुझे कुछ याद नहीं है। ऑटो-पहचान से दर्द को कम करने में मदद मिलती है, लेकिन मुझे तीसरे पक्ष के समाधान पर ध्यान देना होगा।
jslatts

5
इसे उत्तर के रूप में नहीं चुना जाना चाहिए। @ken से नीचे का उत्तर सही है
रयान एंग्ली

@RyanAngilly ध्यान दें जिस वर्ष इस प्रश्न का उत्तर दिया गया था। तब से Xcode के साथ कई चीजें बदल गई हैं। ;-)
मार्क डब्ल्यू

1
@RyanAngilly ken ने केवल ऑटो-इंडेंट करने का तरीका बताया। यह "प्रारूप" नहीं है (सफेद स्थान और नई-लाइन जोड़ और हटाने और ऐसी चीजों के साथ) वास्तव में इसका मतलब है।
dergab

5
नियंत्रण-मैं के साथ इंडेंटेशन तय किया जा सकता है, जो सभी चयनित लाइनों को इंडेंट कर देगा।
ज़ाफ़

427

वह Ctrl+ है i

या कम तकनीक के लिए, कट और फिर पेस्ट करें। यह पेस्ट पर सुधार करेगा।


धन्यवाद! यह मददगार है, खासकर जब से मेनू वास्तव में कीबोर्ड शॉर्टकट नहीं दिखाता है।
jslatts 20

37
लेकिन यह केवल इंडेंटेशन करता है। चलती ब्रेसेस के बारे में क्या, लाइन ब्रेक आदि का ख्याल रखना?
पीटर अज़ताई

14
इसे स्वीकार नहीं किया जाना चाहिए क्योंकि यह उन सभी चीजों का प्रदर्शन नहीं करता है जो एक कोड फॉर्मेटर संभालता है। यह बस फिर से
संकेत देता है

1
अच्छा सुझाव। एक्स्ट्रा लंगड़ा है कि XCode यह नहीं है।
एंड्रयूके

4
हाँ @ powerj1984 मैं इससे भी निराश हूं। यह बाद ,में =या अन्य ऑपरेटरों के लिए उचित स्थान नहीं जोड़ता है । क्या यह सिर्फ इरादे करता है। और कुछ नहीं। मैक को वास्तव में यहां Microsoft से सीखने की आवश्यकता है।
शास्वत

35

मैं दो विकल्पों पर विचार करने की सलाह देना चाहूंगा। दोनों काफी नए और विकसित।

ClangFormat-Xcode (मुक्त) - प्रत्येक cmd + s फ़ाइल में विशिष्ट शैली में सुधार किया गया है और टीम के भीतर तैनात करने के लिए आसान, सहेजा गया है

@Travisjeffery द्वारा Clang के प्रारूप टूल का उपयोग करके अपने कोड को प्रारूपित करने के लिए एक Xcode प्लग-इन।

क्लैंग-फॉर्मेट के साथ आप अपने कोड को LLVM, Google, Chromium, Mozilla, WebKit, या अपने स्वयं के कॉन्फ़िगरेशन जैसी शैलियों के लिए Clang का उपयोग कर सकते हैं।

ऑब्जेक्टिव-क्लीन (भुगतान किया गया, इसे अभी तक आज़माया नहीं गया है) - यदि पूर्वनिर्धारित शैली के नियमों का उल्लंघन किया जाता है, तो एप्लिकेशन त्रुटियों को बढ़ाता है - संभवतः टीम के भीतर उपयोग करने के लिए काफी कठिन है, इसलिए मैंने इसे आज़माया नहीं।

बहुत न्यूनतम सेटअप के साथ, आप अपने नियमों को लागू करने के लिए हमारे ऐप का उपयोग करने के लिए Xcode प्राप्त कर सकते हैं। यदि आप कभी भी अपने किसी नियम का उल्लंघन करते हुए पकड़े जाते हैं, तो Xcode एक बिल्ड एरर को फेंक देगा और आपको सही लाइन पर ले जाएगा।


आप इस प्लगइन के साथ अपना स्वयं का कॉन्फ़िगरेशन कैसे बनाते हैं?
नबंबर

27

Xcode में, आप अपने स्रोत कोड को पुन: इंडेंट करने के लिए इस शॉर्टकट का उपयोग कर सकते हैं

फ़ाइल पर जाएं, जिसमें इंडेंट इश्यू हैं और इसका पालन करें:

  • Cmd+ Aसभी स्रोत कोड का चयन करने के लिए

  • Ctrl+ Iरी-इंडेंट करने के लिए

उम्मीद है की यह मदद करेगा।


18

मेरा व्यक्तिगत fav सुंदर सी चाहते हैं कि यह अविश्वसनीय है: http://uncrustify.sourceforge.net/ । यह कुछ अरब विकल्पों के रूप में मिला है, लेकिन मैं भी आपको UniversalIndentGUI_macx डाउनलोड करने का सुझाव देता हूं, (स्रोत पर भी) एक जीयूआई किसी ने उन विकल्पों को सेट करने में मदद करने के लिए लिखा है जो आपको पसंद हैं।

फिर आप चयनित पाठ को असत्यापित करने के लिए इस कस्टम उपयोगकर्ता स्क्रिप्ट को जोड़ सकते हैं:

#! /bin/sh
#
# uncrustify!
echo -n "%%%{PBXSelection}%%%"
/usr/local/bin/uncrustify -q -c /usr/local/share/uncrustify/geo_uncrustify.cfg -l oc+ <&0
echo -n "%%%{PBXSelection}%%%"

मेरे पास अविश्वास के साथ मुद्दे हैं, विशेष रूप से प्रारूपण ब्लॉकों के साथ।
लिरोन याहदव

12

आप सभी सामग्री का चयन करने के लिए Command+ Aका उपयोग कर सकते हैं और अगले Ctrl+ Iचयनित सामग्री को प्रारूपित करने के लिए।


9

मुझे यह भी लगता है कि xcode का यह कार्य होना चाहिए। इसलिए मैंने इसे करने के लिए एक विस्तार किया: स्विम्मट

द्वारा सरल स्थापित करें brew cask install swimat पूर्वावलोकन

आप इसे आजमा सकते हैं, अधिक जानकारी के लिए https://github.com/Jintin/Swimat देखें।


8

Cmd A + Ctrl I

या Cmd Aफिर राइट क्लिक करें । गोटो संरचना -> पुनः इंडेंट


6

अपने आप को AppCode के लिए एक लाइसेंस खरीदने पर विचार करें , जो एक बुद्धिमान उद्देश्य-सी आईडीई है जो आईओएस / ओएस एक्स डेवलपर्स की मदद करता है। AppCode पूरी तरह से Xcode के साथ संगत है, लेकिन शक्तिशाली विशेषताओं को जोड़ने में Xcode से आगे निकल जाता है ।

JetBrains से Intellij IDEA IDE का ऑब्जेक्टिव-सी वेरिएंट AppCode । वे लोकप्रिय ReSharper के लेखक भी हैं विज़ुअल स्टूडियो एक्सटेंशन के , जो यहाँ से मुख्य उद्देश्य एक Microsoft उत्पाद के लिए IDEA अनुभव का एक स्पर्श लाने के लिए एक हताश प्रयास की तरह लगता है।

AppCode अपने स्वयं के कोड विश्लेषक का उपयोग कर रहा है, जो क्लोज-टू-परफेक्ट रिफैक्टिंग और कोड नेविगेशन समर्थन देता है। पुन: इंडेंट करने की क्षमता है और पूरी तरह से सुधार कोड भी है (हालांकि मैं अभी भी कठिन मामलों में कुछ स्वरूपण सेटिंग्स को याद कर रहा हूं, लेकिन ज्यादातर यह अच्छी तरह से काम करता है)।

आप निश्चित रूप से परीक्षण संस्करण की कोशिश कर सकते हैं।


4

आप https://github.com/octo-online/Xcode-formatter पर भी नज़र डाल सकते हैं जो कि एक प्रारूप है जो कि अविश्वास पर आधारित है और Xcode में एकीकृत है। एक जादू की तरह काम करता है।


4

आप कोशिश कर सकते हैं कि XCode प्लगइन https://github.com/benoitsan/BBUncrustifyPlugin-xcode

XCode में सिर्फ github रिपॉजिटरी, ओपन प्लगइन प्रोजेक्ट खोलें और इसे रन करें। यह अपने आप स्थापित हो जाएगा। फ़ॉर्मेटर प्लगइन का उपयोग करने से पहले Xode को पुनरारंभ करें।

इससे पहले कि अविश्वसनीय उपयोग स्थापित करने के लिए मत भूलना। होमब्रेव, निर्वासन के लिए

brew install uncrustify

PS आप संपादन> प्रारूप कोड> BBUncrustifyPlugin प्राथमिकताएं> सहेजें पर प्रारूप> पर "स्वरूपण सहेजने के बाद" सुविधा चालू कर सकते हैं

आशा है कि यह यू के लिए उपयोगी होगा ;-)



3

CTRL + i

बस।

(नहीं COMMAND+ i)


6
इसका उत्तर 4 बार पहले ही दिया जा चुका है - कृपया उत्तर देने से पहले अन्य उत्तरों को पढ़ें।
मछली पालन

इसके अलावा, CMD + i उत्पाद -> प्रोफ़ाइल पर जाने के समान है जो स्वरूपण के समान नहीं है।
इंगा

3

मैं ClangFormat का उपयोग करने का सुझाव देता हूं। स्थापित करने के लिए, कृपया इन चरणों का पालन करें:

  1. XCode के लिए Alcatraz पैकेज मैनेजर स्थापित करें Xcode 5+ और OS X 10.9+ का समर्थन करता है
  2. स्थापना के बाद XCode को पुनरारंभ करें।
  3. ओपन XCode -> विंडो मेनू -> पैकेज मैनेजर
  4. खोज (ढूंढें) ClangFormat और इसे स्थापित करें। स्थापना के बाद फिर से XCode को पुनरारंभ करें।
  5. अब XCode मेन्यू में आप Edit -> Clang Format सबमेनू को फॉर्मेट करने के लिए उपयोग कर सकते हैं।

आप विभिन्न प्रकार के स्वरूपण चुन सकते हैं। साथ ही फॉर्मेट ऑन सेव को सक्षम करके आप ऑटो-फॉर्मेट क्षमता प्राप्त कर सकते हैं।

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


1
यह अब XCode 8+
नाथन एफ।

हां, आप सही हैं @NathanFiscaletti मैंने 7.2 से 9.2 तक अपग्रेड किया है और ऊपर समाधान अब काम नहीं कर रहा है। लेकिन मैंने एक समाधान निकाला है। मैं एक नया पोस्ट जोड़ूंगा!
csonuryilmaz

मैंने Alcatraz स्थापित किया है लेकिन Xcode 9 पर ClangFormat प्लगइन अब समर्थित नहीं है। github.com/travisjeffery/ClangFormat-Xcode/issues/129
csonuryilmaz

1

यदि आपका Xcode संस्करण 3.x है, तो आपको "उपयोगकर्ता स्क्रिप्ट" का उपयोग अविश्वास के साथ करना चाहिए , यहाँ यह एक उदाहरण है:

#!/bin/sh

echo -n "%%%{PBXSelection}%%%"
$YOURPATH_TO_UNCRUSTIFY/uncrustify -q -c $YOURPATH_TO_UNCRUSTIFY_CONFIG/CodeFormatConfig.cfg -l OC+
echo -n "%%%{PBXSelection}%%%"

अपने Xcode "उपयोगकर्ता स्क्रिप्ट" के ऊपर जोड़ें।

अगर Xcode संस्करण 4.x, मुझे लगता है कि आपको इस ब्लॉग को पढ़ना चाहिए: Xcode 4 में कोड स्वरूपण ,

इस तरह, "ऐप्पल सर्विसेज" का इस्तेमाल किया, लेकिन यह बहुत अच्छा नहीं है, बहुत धीमी गति से अनुभव का कारण बनता है, क्या किसी के पास एक ही चीज है?

क्यों सेब ड्रॉप "उपयोगकर्ता स्क्रिप्ट" .... xD


1

सबसे पहले, एक्सकोड की प्राथमिकताएं "इंडेंटेशन" अनुभाग देखें। आप चीजों को वहां थोड़ा सा कस्टमाइज़ कर सकते हैं ...

अधिक महीन दानेदार नियंत्रण के लिए, सेब से एक्सकोड उपयोगकर्ता डिफॉल्ट्स दस्तावेज़ देखें । (देखने के लिए एक डेवलपर लॉगिन की आवश्यकता हो सकती है)। उदाहरण के लिए, मैं टर्मिनल में निम्नलिखित दर्ज करके "पेस्ट पर इंडेंट" को निष्क्रिय करने में सक्षम था:

defaults write com.apple.XCODE PBXIndentOnPaste No

अपनी सेटिंग वापस पढ़ने के लिए:

defaults read com.apple.XCODE PBXIndentOnPaste

1

यह केवल उन भाषाओं के लिए काम करता है जिनके साथ व्हॉट्सएप का परिसीमन नहीं होता है, लेकिन मेरा समाधान रिक्त स्थान को छोड़कर सभी व्हाट्सएप को हटाने के लिए है, फिर वर्णों के बाद एक नई पंक्ति जोड़ें जो आमतौर पर EOL को डिलीट करता है (जैसे कि ';' के साथ? ''; \ N ') तब सर्वव्यापी करें। ^ + i समाधान।

मैं पायथन का उपयोग करता हूं।

उदाहरण कोड, केवल फ़ाइल नाम बदलें:

python -c "import re; open(outfile,'w').write(re.sub('[\t\n\r]','',open(infile).read()).replace(';',';\n').replace('{','{\n').replace('}','}\n'))"

यह सही नहीं है (उदाहरण: छोरों के लिए), लेकिन मुझे यह पसंद है।


1

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

स्थापना अनुशंसित तरीका GitHub प्रोजेक्ट को क्लोन करने या इसे डाउनलोड करने से है https://github.com/octo-online/Xcode-formatter और पाने के लिए अपने Xcode प्रोजेक्ट में CodeFormatter निर्देशिका जोड़ने के लिए है: Xcode शॉर्टकट-आधारित कोड कोडिंग: एक शॉर्टकट वर्तमान कार्यक्षेत्र स्वचालित कोड स्वरूपण में संशोधित स्रोतों को प्रारूपित करें: जब अनुप्रयोग सभी स्रोतों का निर्माण करता है, तो वर्तमान स्रोतों को प्रारूपित करने के लिए अपनी परियोजना में एक निर्माण चरण जोड़ें: एक प्रारूप के साथ अपने सभी कोड को प्रारूपित करें जो परियोजना द्वारा साझा किए गए आपके स्वरूपण नियमों को संपादित करता है: एक ही कॉन्फ़िगरेशन को संपादित करें और उसका उपयोग करें अपनी परियोजना देव टीम के साथ फाइल करें 1) अपनी परियोजना के लिए कोड फॉर्मैटर को कैसे सेट करें अविश्वास को स्थापित करें सबसे आसान तरीका काढ़ा का उपयोग करना है: $ काढ़ा संस्थापित करें

काढ़ा लगाने के लिए: $ माणिक - "$ (कर्ल -फुलसक्ला कच्ची.गिथुब / एमएक्सक्ल / हॉमब्रेव / एगो)"

जाँच लें कि अविश्वास / usr / स्थानीय / बिन $ में स्थित है जो अविश्वास है

यदि आपका अविश्वासित संस्करण 0.60 से कम है, तो आपको इसे स्वयं स्थापित करना पड़ सकता है क्योंकि हाल ही में आधुनिक ऑब्जेक्टिव-सी सिंटैक्स जोड़ा गया है। अपनी .xcodeproj फ़ाइल के पास CodeFormatter निर्देशिका जोड़ें

जांचें कि आपके Xcode एप्लिकेशन का नाम "Xcode" है (डिफ़ॉल्ट नाम) आप इस नाम को एप्लिकेशन / निर्देशिका (या आपके कस्टम Xcode इंस्टॉलेशन डायरेक्टरी) में देख सकते हैं। यदि आप अपने मैक पर एक्सकोड के कई उदाहरण हैं, तो सावधानी बरतें: सुनिश्चित करें कि प्रोजेक्ट का नाम वास्तव में "एक्सकोड" है! (ऐसा क्यों? यह नाम वर्तमान में खोली गई एक्सकोड फ़ाइलों को खोजने के लिए उपयोग किया जाता है। देखें कोडफ़ॉर्मर / अनक्राइसी_प्राप्त_एक्सकोड_सॉर्स.वर्कफ़्लो ऐपस्क्रिप्ट)। ऑटोमेटर सेवा स्थापित करें Unrustify_opened_Xcode_sources.workflow इस फ़ाइल को अपने ~ / लाइब्रेरी / सेवा / फ़ोल्डर में बनाएँ (यदि आवश्यक हो तो इस फ़ोल्डर बनाएँ)। सावधान रहें: .workflow फ़ाइल पर डबल-क्लिक करके, आप इसे स्थापित कर देंगे लेकिन फ़ाइल निकाल दी जाएगी! अन्य उपयोगकर्ताओं के लिए इसकी एक प्रति अवश्य छोड़ें।

प्रोजेक्ट का निर्माण करते समय खोली गई फ़ाइलों को प्रारूपित करने के लिए निम्न पंक्ति वाले एक बिल्ड चरण "रन स्क्रिप्ट" जोड़ें:

sh CodeFormatter / स्क्रिप्ट / formatOpendSources.sh

कमांड लाइन में फ़ाइलों को प्रारूपित कैसे करें

वर्तमान में खोली गई फ़ाइलों को प्रारूपित करने के लिए, formatOpenedSources.sh का उपयोग करें:

$ sh CodeFormatter / स्क्रिप्ट / formatOpendSources.sh

सभी फ़ाइलों को प्रारूपित करने के लिए, formatAllSources.sh का उपयोग करें:

$ sh CodeFormatter / स्क्रिप्ट / formatAllSources.sh पथ

पथ को आपके स्रोत पथ द्वारा प्रतिस्थापित किया जाना चाहिए।

ई: छ; अगर प्रोजेक्ट का नाम TestApp है तो कमांड होगा

$ sh CodeFormatter / स्क्रिप्ट / formatAllSources.sh TestApp

यह परियोजना की सभी फाइलों को देखेगा और सभी फाइलों को बिना किसी आकार के कॉन्फ़िगर किए हुए प्रारूप में खोल देगा।

फ़ॉर्मेटर के नियम कैसे बदलें

TextFdit के साथ CodeFormatter / uncrustify_objective_c.cfg को संपादित करें


0

वैसे मैं एक आसान तरीका खोज रहा था। और मध्यम पर पता करें ।

सबसे पहले json टेक्स्ट को कॉपी करें और इसे jsonlint या कुछ इसी तरह से वैलिडेट करें । फिर jsonlint से कॉपी करने के लिए, पहले से ही json स्वरूपित है। और कोड को फॉर्मेट, शॉर्टकट shift+ option+ command+ के संरक्षण के साथ कोड पर पेस्ट करेंv


-1

आप इस पथ पर किसी भी शॉर्टकट को देख और बदल सकते हैं: Xcode -> प्राथमिकताएं -> कुंजी बाइंडिंग।

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