हिन्दी

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

वीएस कोड एक्सटेंशन डेवलपमेंट में महारत हासिल करना: वैश्विक डेवलपर्स के लिए एक व्यापक गाइड

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

वीएस कोड एक्सटेंशन क्यों विकसित करें?

वीएस कोड एक्सटेंशन विकसित करने से व्यक्तिगत डेवलपर्स और संगठनों दोनों के लिए कई लाभ मिलते हैं:

आवश्यक शर्तें

एक्सटेंशन डेवलपमेंट में गोता लगाने से पहले, सुनिश्चित करें कि आपने निम्नलिखित स्थापित कर लिया है:

अपना विकास परिवेश स्थापित करना

आवश्यक शर्तें होने के बाद, आप अपना विकास परिवेश स्थापित करने के लिए तैयार हैं:

  1. एक नई एक्सटेंशन परियोजना बनाएँ: अपना टर्मिनल खोलें और एक्सटेंशन जनरेटर शुरू करने के लिए निम्नलिखित कमांड चलाएँ:
  2. yo code
  3. प्रश्नों के उत्तर दें: जनरेटर आपके एक्सटेंशन के बारे में कई प्रश्न पूछेगा। यहां सामान्य प्रश्नों और अनुशंसित उत्तरों का विवरण दिया गया है:
    • आप किस प्रकार का एक्सटेंशन बनाना चाहते हैं? टाइपस्क्रिप्ट-आधारित एक्सटेंशन के लिए "नया एक्सटेंशन (टाइपस्क्रिप्ट)" चुनें, जो अनुशंसित दृष्टिकोण है।
    • आपके एक्सटेंशन का नाम क्या है? अपने एक्सटेंशन के लिए एक वर्णनात्मक और अद्वितीय नाम चुनें। उदाहरण: "कोड स्पेल चेकर," "जावास्क्रिप्ट स्निपेट्स," "पायथन ऑटोकंप्लीट।"
    • आपके एक्सटेंशन का पहचानकर्ता क्या है? यह आपके एक्सटेंशन के लिए एक अद्वितीय पहचानकर्ता है, आमतौर पर `प्रकाशक.एक्सटेंशन-नाम` प्रारूप में। एक प्रकाशक नाम चुनें (उदाहरण के लिए, आपका GitHub उपयोगकर्ता नाम या कंपनी का नाम)।
    • आपके एक्सटेंशन का विवरण क्या है? आपके एक्सटेंशन के बारे में एक संक्षिप्त और जानकारीपूर्ण विवरण प्रदान करें।
    • एक गिट भंडार प्रारंभ करें? संस्करण नियंत्रण के लिए एक गिट भंडार प्रारंभ करने के लिए "हाँ" चुनें।
    • क्या आप कोड को लिंट करने के लिए ईएसएलिंट का उपयोग करना चाहते हैं? कोड शैली स्थिरता लागू करने के लिए "हाँ" चुनें।
  4. वीएस कोड में परियोजना खोलें: जनरेटर के पूरा होने के बाद, वीएस कोड में नव निर्मित परियोजना फ़ोल्डर खोलें।

परियोजना संरचना को समझना

एक्सटेंशन जनरेटर निम्नलिखित प्रमुख फ़ाइलों के साथ एक बुनियादी परियोजना संरचना बनाता है:

अपना पहला एक्सटेंशन लिखना

आइए एक साधारण एक्सटेंशन बनाकर शुरू करें जो कमांड निष्पादित होने पर "हेलो वर्ल्ड" संदेश प्रदर्शित करता है:

  1. `src/extension.ts` खोलें: इस फ़ाइल में `activate` फ़ंक्शन है, जिसे तब कहा जाता है जब आपका एक्सटेंशन सक्रिय होता है।
  2. `activate` फ़ंक्शन को संशोधित करें: मौजूदा कोड को निम्नलिखित से बदलें:
  3. import * as vscode from 'vscode';
    
    export function activate(context: vscode.ExtensionContext) {
    	console.log('बधाई हो, आपका एक्सटेंशन "my-extension" अब सक्रिय है!');
    
    	let disposable = vscode.commands.registerCommand('my-extension.helloWorld', () => {
    		vscode.window.showInformationMessage('मेरे एक्सटेंशन से हेलो वर्ल्ड!');
    	});
    
    	context.subscriptions.push(disposable);
    }
    
    export function deactivate() {}
  4. स्पष्टीकरण:
    • `vscode.commands.registerCommand('my-extension.helloWorld', ...)`: आईडी `my-extension.helloWorld` के साथ एक कमांड रजिस्टर करता है। यह कमांड वीएस कोड कमांड पैलेट में उपलब्ध होगा।
    • `vscode.window.showInformationMessage('मेरे एक्सटेंशन से हेलो वर्ल्ड!')`: वीएस कोड विंडो में एक सूचना संदेश प्रदर्शित करता है।
    • `context.subscriptions.push(disposable)`: कमांड को एक्सटेंशन की सदस्यता में जोड़ता है, यह सुनिश्चित करता है कि एक्सटेंशन निष्क्रिय होने पर यह ठीक से निपट जाए।
  5. `package.json` को संशोधित करें: कमांड को परिभाषित करने के लिए `contributes` अनुभाग में निम्नलिखित जोड़ें:
  6. "contributes": {
    		"commands": [{
    			"command": "my-extension.helloWorld",
    			"title": "हेलो वर्ल्ड"
    		}]
    	}
  7. स्पष्टीकरण:
    • `"commands"`: आपके एक्सटेंशन द्वारा योगदान किए गए कमांड को परिभाषित करता है।
    • `"command": "my-extension.helloWorld"`: कमांड आईडी निर्दिष्ट करता है जो `extension.ts` में उपयोग की गई आईडी से मेल खाता है।
    • `"title": "हेलो वर्ल्ड"`: कमांड पैलेट में कमांड के लिए प्रदर्शन नाम सेट करता है।

अपने एक्सटेंशन का परीक्षण करना

अब आपके एक्सटेंशन का परीक्षण करने का समय आ गया है:

  1. F5 दबाएँ: यह आपके एक्सटेंशन के साथ एक नई वीएस कोड विंडो लॉन्च करेगा। यह "एक्सटेंशन डेवलपमेंट होस्ट" है।
  2. कमांड पैलेट खोलें: कमांड पैलेट खोलने के लिए `Ctrl+Shift+P` (या macOS पर `Cmd+Shift+P`) दबाएँ।
  3. "हेलो वर्ल्ड" टाइप करें: आपको कमांड पैलेट में सूचीबद्ध अपना कमांड देखना चाहिए।
  4. "हेलो वर्ल्ड" चुनें: कमांड पर क्लिक करने से यह निष्पादित होगा और वीएस कोड विंडो में "हेलो वर्ल्ड" संदेश प्रदर्शित होगा।

अपने एक्सटेंशन को डिबग करना

आपके एक्सटेंशन में समस्याओं की पहचान करने और ठीक करने के लिए डिबगिंग महत्वपूर्ण है। वीएस कोड उत्कृष्ट डिबगिंग समर्थन प्रदान करता है:

  1. ब्रेकप्वाइंट सेट करें: अपने कोड में ब्रेकप्वाइंट सेट करने के लिए लाइन नंबरों के बगल में संपादक गटर में क्लिक करें।
  2. F5 दबाएँ: यह डिबग मोड में एक्सटेंशन डेवलपमेंट होस्ट लॉन्च करेगा।
  3. अपने एक्सटेंशन को ट्रिगर करें: उस कमांड या क्रिया को निष्पादित करें जो उस कोड को ट्रिगर करता है जिसे आप डिबग करना चाहते हैं।
  4. चरों और कॉल स्टैक का निरीक्षण करें: वीएस कोड डिबगर आपके ब्रेकप्वाइंट पर निष्पादन को रोक देगा, जिससे आप चर का निरीक्षण कर सकते हैं, कोड के माध्यम से स्टेप कर सकते हैं और कॉल स्टैक की जांच कर सकते हैं।

वीएस कोड एपीआई के साथ काम करना

वीएस कोड एपीआई संपादक के साथ इंटरैक्ट करने के लिए इंटरफेस और कार्यों का एक समृद्ध सेट प्रदान करता है। यहां एपीआई के कुछ प्रमुख क्षेत्र दिए गए हैं:

उदाहरण: एक कोड स्निपेट एक्सटेंशन बनाना

आइए एक ऐसा एक्सटेंशन बनाएँ जो एक बुनियादी रिएक्ट कंपोनेंट बनाने के लिए एक कोड स्निपेट जोड़ता है:

  1. एक `snippets` फ़ोल्डर बनाएँ: अपनी परियोजना के रूट में `snippets` नामक एक नया फ़ोल्डर बनाएँ।
  2. एक स्निपेट फ़ाइल बनाएँ: `snippets` फ़ोल्डर के अंदर `react.json` नामक एक फ़ाइल बनाएँ।
  3. स्निपेट परिभाषा जोड़ें: `react.json` में निम्नलिखित JSON जोड़ें:
  4. {
    	"React Component": {
    		"prefix": "reactcomp",
    		"body": [
    			"import React from 'react';",
    			"",
    			"interface Props {\n\t[key: string]: any;\n}",
    			"",
    			"const ${1:ComponentName}: React.FC = (props: Props) => {\n\treturn (\n\t\t
    \n\t\t\t${2:Content}\n\t\t
    \n\t);\n};", "", "export default ${1:ComponentName};" ], "description": "एक बुनियादी रिएक्ट कंपोनेंट बनाता है" } }
  5. स्पष्टीकरण:
    • `"React Component"`: स्निपेट का नाम।
    • `"prefix": "reactcomp"`: वह उपसर्ग जो स्निपेट को ट्रिगर करता है। `reactcomp` टाइप करने और `Tab` दबाने से स्निपेट डाला जाएगा।
    • `"body"`: स्निपेट में कोड की पंक्तियों का प्रतिनिधित्व करने वाली तारों की एक सरणी।
    • `${1:ComponentName}`: एक टैब स्टॉप जो आपको कंपोनेंट नाम को जल्दी से बदलने की अनुमति देता है।
    • `"description"`: स्निपेट का विवरण।
  6. `package.json` को संशोधित करें: `contributes` अनुभाग में निम्नलिखित जोड़ें:
  7. "contributes": {
    		"snippets": [{
    			"language": "javascriptreact",
    			"path": "./snippets/react.json"
    		}]
    	}
  8. स्पष्टीकरण:
    • `"snippets"`: आपके एक्सटेंशन द्वारा योगदान किए गए स्निपेट को परिभाषित करता है।
    • `"language": "javascriptreact"`: उस भाषा को निर्दिष्ट करता है जिसके लिए स्निपेट लागू है।
    • `"path": "./snippets/react.json"`: स्निपेट फ़ाइल का पथ निर्दिष्ट करता है।
  9. अपना स्निपेट परीक्षण करें: एक `.jsx` या `.tsx` फ़ाइल खोलें और `reactcomp` टाइप करें। स्निपेट डालने के लिए `Tab` दबाएँ।

उन्नत एक्सटेंशन विकास तकनीकें

एक बार जब आप मूल बातें महारत हासिल कर लेते हैं, तो आप अधिक उन्नत एक्सटेंशन विकास तकनीकों का पता लगा सकते हैं:

अंतर्राष्ट्रीयकरण और स्थानीयकरण (i18n और L10n)

वैश्विक दर्शकों तक पहुंचने के लिए, अपने एक्सटेंशन को अंतर्राष्ट्रीयकरण और स्थानीयकरण करने पर विचार करें। इसमें विभिन्न भाषाओं और क्षेत्रों का समर्थन करने के लिए अपने एक्सटेंशन को अनुकूलित करना शामिल है।

अपने एक्सटेंशन को प्रकाशित करना

एक बार जब आपका एक्सटेंशन तैयार हो जाता है, तो आप इसे दूसरों के उपयोग के लिए वीएस कोड मार्केटप्लेस पर प्रकाशित कर सकते हैं:

  1. एक एज़्योर डेवऑप्स संगठन बनाएँ: अपने एक्सटेंशन को प्रकाशित करने के लिए आपको एक एज़्योर डेवऑप्स संगठन की आवश्यकता होगी। यदि आपके पास नहीं है, तो एज़्योर डेवऑप्स वेबसाइट पर एक निःशुल्क खाता बनाएँ।
  2. `vsce` टूल स्थापित करें: वीएस कोड एक्सटेंशन मैनेजर (`vsce`) एक्सटेंशन को पैकेज और प्रकाशित करने के लिए एक कमांड-लाइन टूल है। npm का उपयोग करके इसे वैश्विक स्तर पर स्थापित करें:
  3. npm install -g vsce
  4. एक प्रकाशक बनाएँ: एक प्रकाशक एक पहचान है जो मार्केटप्लेस पर आपके एक्सटेंशन का स्वामी है। `vsce create-publisher` कमांड का उपयोग करके एक प्रकाशक बनाएँ। आपको एज़्योर डेवऑप्स से एक प्रकाशक नाम और एक व्यक्तिगत एक्सेस टोकन (पीएटी) प्रदान करने की आवश्यकता होगी।
  5. एक व्यक्तिगत एक्सेस टोकन (पीएटी) उत्पन्न करें: एज़्योर डेवऑप्स में, "उपयोगकर्ता सेटिंग्स" -> "व्यक्तिगत एक्सेस टोकन" पर जाएँ और "मार्केटप्लेस (प्रकाशित करें)" स्कोप के साथ एक नया पीएटी बनाएँ।
  6. अपने एक्सटेंशन को पैकेज करें: अपने एक्सटेंशन को `.vsix` फ़ाइल में पैकेज करने के लिए `vsce package` कमांड का उपयोग करें।
  7. अपने एक्सटेंशन को प्रकाशित करें: अपने एक्सटेंशन को मार्केटप्लेस पर प्रकाशित करने के लिए `vsce publish` कमांड का उपयोग करें। आपको अपना प्रकाशक नाम और अपना पीएटी प्रदान करने की आवश्यकता होगी।

एक्सटेंशन विकास के लिए सर्वोत्तम अभ्यास

उच्च-गुणवत्ता और बनाए रखने योग्य वीएस कोड एक्सटेंशन बनाने के लिए इन सर्वोत्तम प्रथाओं का पालन करें:

सामुदायिक संसाधन

वीएस कोड एक्सटेंशन डेवलपमेंट के बारे में अधिक जानने के लिए यहां कुछ मूल्यवान संसाधन दिए गए हैं:

निष्कर्ष

वीएस कोड एक्सटेंशन विकसित करना आपके कोडिंग वातावरण को अनुकूलित करने, उत्पादकता बढ़ाने और वैश्विक डेवलपर समुदाय के साथ अपने समाधान साझा करने का एक शक्तिशाली तरीका है। इस व्यापक गाइड का पालन करके, आप एक्सटेंशन डेवलपमेंट की कला में महारत हासिल कर सकते हैं और नवीन उपकरण बना सकते हैं जो आपके और दूसरों के लिए वीएस कोड अनुभव को बढ़ाते हैं। समुदाय को अपनाने, ओपन-सोर्स परियोजनाओं में योगदान करने और वीएस कोड एक्सटेंशन डेवलपमेंट की हमेशा विकसित होने वाली दुनिया को लगातार सीखने और तलाशने के लिए याद रखें। शुभकामनाएँ और खुश कोडिंग!