यदि VS Code में कोई प्रोजेक्ट टास्क अचानक विफल हो जाता है—फ़ॉर्मेटिंग, लिंटिंग, डिबगिंग या फ़ाइल नेविगेशन—तो यह पता लगाने के लिए कि कौन सा सक्षम एक्सटेंशन इसमें शामिल है, Extension Bisect का उपयोग करें। Mac पर, ⇧⌘P के साथ Command Palette खोलें, Help: Start Extension Bisect चलाएँ, और प्रत्येक बदलाव के बाद उसी कार्य को दोहराएँ। यदि समस्या बनी रहती है, तो This is bad चुनें; यदि यह ठीक हो जाती है, तो Good now चुनें। VS Code एक्सटेंशन के समूहों का परीक्षण करता है और उन उत्तरों के आधार पर खोज के दायरे को सीमित करता है। VS Code की Extension Bisect गाइड

परीक्षण करने से पहले उसी विफलता को दोहराएँ (Reproduce करें)

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

जाँचें कि क्या यह व्यवहार केवल एक कार्यक्षेत्र (workspace) तक सीमित है या कई में होता है। किसी एक्सटेंशन को विश्व स्तर पर (globally) या केवल वर्तमान कार्यक्षेत्र के लिए अक्षम (disable) किया जा सकता है, इसलिए किसी प्रोजेक्ट-विशिष्ट विफलता का परीक्षण किया जा सकता है और बाद में कार्यक्षेत्र के दायरे में उसका समाधान किया जा सकता है। Extensions दृश्य ⇧⌘X के साथ उपलब्ध है। VS Code कार्यक्षेत्र और वैश्विक एक्सटेंशन नियंत्रणों का विवरण देता है।

Command Palette से Extension Bisect चलाएँ

macOS पर, ⇧⌘P दबाएँ, Help: Start Extension Bisect टाइप करें और कमांड का चयन करें। VS Code एक्सटेंशन के समूहों को अक्षम करता है और आपसे यह निर्णय लेने के लिए संकेत देता है कि क्या समस्या अभी भी बनी हुई है। This is bad या Good now चुनने से पहले अपने रिकॉर्ड किए गए रीप्रोडक्शन चरणों का पालन करें। Bisect अगले समूह का चयन करने के लिए उन प्रतिक्रियाओं का उपयोग करता है; एक ही लक्षण के आधार पर उत्तर देते रहें जब तक कि VS Code किसी एक्सटेंशन की पहचान न कर ले या बिना किसी एक्सटेंशन को खोजे समाप्त न हो जाए। आधिकारिक गाइड समूह-दर-समूह प्रक्रिया की व्याख्या करती है।

कई सक्षम एक्सटेंशन होने पर, खोज के दायरे को आधे-आधे में बाँटने से उन्हें एक-एक करके अक्षम करने की तुलना में बहुत कम जाँचें करनी पड़ सकती हैं। यह प्रक्रिया सटीक प्रतिक्रिया पर निर्भर करती है: समस्या बने रहने पर "Good now" रिपोर्ट करना, या समस्या समाप्त हो जाने पर "This is bad" रिपोर्ट करना, खोज को गलत दिशा में ले जा सकता है। बाइसेक्ट गाइड यह भी बताती है कि यह यह जाँचने से शुरू होती है कि क्या एक्सटेंशन अक्षम होने पर भी समस्या बनी रहती है, क्योंकि कारण स्वयं VS Code भी हो सकता है।

अपने सेटअप को बदलने से पहले परिणाम की पुष्टि करें

जब VS Code किसी संभावित एक्सटेंशन की पहचान कर ले, तो उस एक्सटेंशन को सक्षम और अक्षम करके मूल कार्य को दोहराएँ। Extensions दृश्य में, एक्सटेंशन ढूँढें, उसके गियर मेनू का चयन करें और प्रासंगिक अक्षम विकल्प चुनें। VS Code एक्सटेंशन होस्ट को पुनः आरंभ करने के लिए कह सकता है; उस संकेत को पूरा करें, फिर समस्या को दोहराएँ। एक्सटेंशन को फिर से सक्षम करें और दोबारा जाँचें। यदि सक्षम होने पर लक्षण लगातार लौटता है और अक्षम होने पर गायब हो जाता है, तो आपके पास इसके पुख्ता सबूत हैं कि एक्सटेंशन इसमें शामिल है। अक्षम करना प्रतिवर्ती (reversible) है; निदान के लिए अनइंस्टॉल करने की आवश्यकता नहीं है। VS Code एक्सटेंशन को अक्षम और सक्षम करने का दस्तावेज़ीकरण करता है।

कोई एक्सटेंशन एकमात्र कारण न होते हुए भी इसमें शामिल हो सकता है। इसकी सेटिंग्स, निर्भरताएँ (dependencies), या किसी अन्य एक्सटेंशन के साथ परस्पर क्रिया मायने रख सकती है। योगदान की गई सेटिंग्स और निर्भरताओं के लिए इसके Marketplace विवरण और README को पढ़ें, फिर जाँचें कि क्या कोई हालिया अपडेट या कॉन्फ़िगरेशन परिवर्तन उस समय से मेल खाता है जब वर्कफ़्लो बदला था। यदि आपको एक्सटेंशन को इंस्टॉल रखना आवश्यक है, तो जहाँ संभव हो इसे केवल प्रभावित कार्यक्षेत्र के लिए अक्षम करें; अन्यथा, इसे सक्षम छोड़ दें और इसके प्रकाशक को रीप्रोड्यूस करने योग्य चरणों और एक्सटेंशन आईडी की रिपोर्ट करें।

यदि बाइसेक्ट को कोई एक्सटेंशन नहीं मिलता है

एक स्वच्छ तुलना (clean comparison) का प्रयास करें। VS Code प्रोफ़ाइल एक्सटेंशन और सेटिंग्स को अलग कर सकती हैं: प्रोफ़ाइल संपादक से एक Empty Profile बनाएँ, इसके साथ प्रभावित प्रोजेक्ट खोलें और कार्य दोहराएँ। एक Empty Profile एक्सटेंशन और संशोधित सेटिंग्स को अक्षम कर देती है, इसलिए यदि विफलता बनी रहती है, तो इसका कारण VS Code कोर, प्रोजेक्ट टूलिंग, या परिवेश का कोई अन्य भाग हो सकता है। यदि यह गायब हो जाती है, तो एक्सटेंशन या कस्टमाइज़ की गई सेटिंग्स इसमें शामिल हैं, लेकिन केवल खाली प्रोफ़ाइल यह साबित नहीं करती कि कौन सी है। VS Code प्रोफ़ाइल दस्तावेज़।

जब टर्मिनल प्रोजेक्ट डायरेक्टरी में हो, तो आप टर्मिनल से code --disable-extensions . के साथ एक नैदानिक विंडो भी लॉन्च कर सकते हैं। Mac पर, Terminal का डिफ़ॉल्ट शेल zsh है; कमांड में कोई ऐसा शेल मेटाकैरेक्टर नहीं है जिसके लिए विशेष कोटिंग (quoting) की आवश्यकता हो। यह उस लॉन्च के लिए एक्सटेंशन को अक्षम कर देता है, जो इसे त्वरित तुलना के रूप में उपयोगी बनाता है। यह किसी विशिष्ट एक्सटेंशन की पहचान नहीं करता है; इसके लिए Bisect या कार्यक्षेत्र-स्तरीय अक्षमता का उपयोग करें। code कमांड आपके शेल के PATH में उपलब्ध होना चाहिए। VS Code इस लॉन्च विकल्प का विवरण देता है; Apple Terminal के डिफ़ॉल्ट शेल का विवरण देता है।

जब एक्सटेंशन अक्षम होने पर भी प्रोजेक्ट समान व्यवहार करता है, तो प्रोजेक्ट की अपनी स्क्रिप्ट और टूल्स, VS Code सेटिंग्स की जाँच करें, और यह भी देखें कि क्या यह समस्या किसी अन्य संपादक या परिवेश में भी होती है। इन्हें किसी विशिष्ट घटक के ज़िम्मेदार होने के प्रमाण के बजाय अगले नैदानिक सुराग के रूप में मानें।

स्रोत