VS Code-এ যদি কোনো প্রজেক্টের কাজ হঠাৎ ব্যর্থ হয়—ফরম্যাটিং, লিন্টিং, ডিবাগিং বা ফাইল নেভিগেশন—তবে সক্রিয় থাকা কোন এক্সটেনশনটি এর সাথে জড়িত তা শনাক্ত করতে Extension Bisect ব্যবহার করুন। ম্যাক-এ, ⇧⌘P দিয়ে Command Palette খুলুন, Help: Start Extension Bisect চালান, এবং প্রতিটি পরিবর্তনের পর একই কাজ পুনরায় করুন। সমস্যাটি অব্যাহত থাকলে This is bad বেছে নিন; যদি এটি দূর হয়ে যায়, তবে Good now বেছে নিন। VS Code এক্সটেনশনগুলোর বিভিন্ন গ্রুপ পরীক্ষা করে এবং সেই উত্তরগুলোর ভিত্তিতে অনুসন্ধানের পরিধি সংকুচিত করে। VS Code-এর Extension Bisect গাইড
পরীক্ষা করার আগে একই ব্যর্থতা পুনরায় ঘটিয়ে নিশ্চিত হন
প্রথমে সবচেয়ে সংক্ষিপ্ত ধাপগুলো লিখে রাখুন যা নিশ্চিতভাবে সমস্যাটি তৈরি করে: উদাহরণস্বরূপ, একটি নির্দিষ্ট ফাইল খোলা, এটি সংরক্ষণ করা এবং ফরম্যাটিং কাজ করছে কি না তা পরীক্ষা করা। আপনি কী প্রত্যাশা করেছিলেন এবং কী ঘটেছে তা লিখে রাখুন। প্রতিটি বাইসেক্ট রাউন্ডের সময় একই প্রজেক্ট, ফাইল এবং ধাপগুলো বজায় রাখুন। এটি প্রতিটি উত্তরকে একটি সামঞ্জস্যপূর্ণ ভিত্তি দেয়; যদি সমস্যাটি অনিয়মিত হয় বা আপনি কাজটি পরিবর্তন করেন, তবে ফলাফলটি নির্ভরযোগ্যভাবে কারণটি শনাক্ত করতে নাও পারে।
আচরণটি কেবল একটি ওয়ার্কস্পেসেই সীমাবদ্ধ নাকি একাধিক ওয়ার্কস্পেসে ঘটছে তা পরীক্ষা করুন। একটি এক্সটেনশন বিশ্বব্যাপী (globally) বা কেবল বর্তমান ওয়ার্কস্পেসের জন্য নিষ্ক্রিয় করা যেতে পারে, তাই প্রজেক্ট-নির্দিষ্ট কোনো ব্যর্থতা ওয়ার্কস্পেসের পরিধিতে পরীক্ষা করা এবং পরবর্তীতে সমাধান করা যেতে পারে। 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 এক্সটেনশন হোস্ট রিস্টার্ট করার অনুরোধ করতে পারে; সেই প্রম্পটটি সম্পন্ন করুন, তারপর সমস্যাটি পুনরায় তৈরি করার চেষ্টা করুন। এক্সটেনশনটি পুনরায় সক্রিয় করুন এবং আবার পরীক্ষা করুন। যদি এক্সটেনশনটি সক্রিয় থাকলে সমস্যাটি নিশ্চিতভাবে ফিরে আসে এবং নিষ্ক্রিয় করলে চলে যায়, তবে আপনার কাছে এক্সটেনশনটি জড়িত থাকার শক্তিশালী প্রমাণ রয়েছে। নিষ্ক্রিয়করণ প্রক্রিয়াটি পরিবর্তনযোগ্য; রোগ নির্ণয়ের জন্য আনইনস্টল করার প্রয়োজন নেই। VS Code-এর এক্সটেনশন নিষ্ক্রিয় ও সক্রিয় করার নির্দেশিকা।
একটি এক্সটেনশন একমাত্র কারণ না হয়েও এর সাথে জড়িত থাকতে পারে। এর সেটিংস, ডিপেন্ডেন্সি বা অন্য কোনো এক্সটেনশনের সাথে পারস্পরিক মিথস্ক্রিয়াও এর কারণ হতে পারে। এর অন্তর্ভুক্ত সেটিংস এবং ডিপেন্ডেন্সির জন্য এর Marketplace বিবরণ এবং README পড়ুন, তারপর দেখুন সাম্প্রতিক কোনো আপডেট বা কনফিগারেশন পরিবর্তন কাজের ধারা পরিবর্তনের সময়ের সাথে মেলে কি না। আপনার যদি এক্সটেনশনটি ইনস্টল রাখতে হয়, তবে সম্ভব হলে কেবল প্রভাবিত ওয়ার্কস্পেসের জন্যই এটি নিষ্ক্রিয় করুন; অন্যথায়, এটি সক্রিয় রাখুন এবং সমস্যার পুনরাবৃত্তির ধাপগুলো ও এক্সটেনশন আইডি এর প্রকাশককে রিপোর্ট করুন।
যদি বাইসেক্ট কোনো এক্সটেনশন খুঁজে না পায়
একটি সম্পূর্ণ নতুন বা ক্লিন তুলনা করে দেখুন। VS Code প্রোফাইলগুলো এক্সটেনশন এবং সেটিংসকে আলাদা করতে পারে: Profiles এডিটর থেকে একটি Empty Profile তৈরি করুন, এটি দিয়ে প্রভাবিত প্রজেক্টটি খুলুন এবং কাজটি পুনরায় করুন। একটি Empty Profile এক্সটেনশন এবং পরিবর্তিত সেটিংস নিষ্ক্রিয় করে, তাই যদি ব্যর্থতাটি থেকেই যায়, তবে কারণটি হতে পারে VS Code core, প্রজেক্টের টুলিং বা পরিবেশের অন্য কোনো অংশ। এটি দূর হয়ে গেলে এক্সটেনশন বা কাস্টমাইজড সেটিংস দায়ী হতে পারে, তবে খালি প্রোফাইলটি একা প্রমাণ করে না যে কোনটি দায়ী। VS Code প্রোফাইল সংক্রান্ত নির্দেশিকা।
টার্মিনালে প্রজেক্ট ডিরেক্টরিতে থাকা অবস্থায় আপনি Terminal থেকে code --disable-extensions . দিয়ে একটি ডায়াগনস্টিক উইন্ডো চালু করতে পারেন। ম্যাক-এ, Terminal-এর ডিফল্ট শেল হলো zsh; কমান্ডটিতে এমন কোনো শেল মেটাক্যারেক্টার নেই যার জন্য বিশেষ উদ্ধৃতি চিহ্নের (quoting) প্রয়োজন হয়। এটি সেই বারের চালনার জন্য এক্সটেনশনগুলোকে নিষ্ক্রিয় করে, যা দ্রুত তুলনার জন্য কার্যকর। এটি কোনো নির্দিষ্ট এক্সটেনশন শনাক্ত করে না; তার জন্য Bisect বা ওয়ার্কস্পেস-স্তরের নিষ্ক্রিয়করণ ব্যবহার করুন। code কমান্ডটি আপনার শেলের PATH-এ উপলব্ধ থাকতে হবে। VS Code-এর এই লঞ্চ অপশন সংক্রান্ত নির্দেশিকা; ম্যাক-এ Terminal-এর ডিফল্ট শেল সংক্রান্ত Apple-এর নির্দেশিকা।
এক্সটেনশন নিষ্ক্রিয় থাকা সত্ত্বেও যখন প্রজেক্টটি একইভাবে আচরণ করে, তখন প্রজেক্টের নিজস্ব স্ক্রিপ্ট এবং টুলস, VS Code সেটিংস এবং সমস্যাটি অন্য কোনো এডিটর বা পরিবেশে ঘটছে কি না তা পরীক্ষা করুন। কোনো নির্দিষ্ট উপাদান দায়ী তার প্রমাণ হিসেবে না দেখে এগুলোকে পরবর্তী ডায়াগনস্টিক সূত্র হিসেবে বিবেচনা করুন।
তথ্যসূত্র
Resolving extension issues with bisect — Visual Studio Code
Extension Marketplace — Visual Studio Code
Profiles in Visual Studio Code — Visual Studio Code
Visual Studio Code tips and tricks — Visual Studio Code
Change the default shell in Terminal on Mac — Apple Support