कस्टम एक्सटेंशन बनाना सीखकर वीएस कोड की शक्ति को अनलॉक करें। यह गाइड सेटअप से लेकर प्रकाशन तक एक संपूर्ण वाकथ्रू प्रदान करता है, जो आपको अपने कोडिंग वातावरण को बढ़ाने और अपनी रचनाओं को दुनिया के साथ साझा करने में सक्षम बनाता है।
वीएस कोड एक्सटेंशन डेवलपमेंट में महारत हासिल करना: वैश्विक डेवलपर्स के लिए एक व्यापक गाइड
विज़ुअल स्टूडियो कोड (वीएस कोड) दुनिया भर के लाखों डेवलपर्स के लिए गो-टू कोड एडिटर बन गया है। इसकी लोकप्रियता इसके हल्के स्वभाव, शक्तिशाली सुविधाओं और सबसे महत्वपूर्ण बात, इसकी विस्तारशीलता से उपजी है। कस्टम एक्सटेंशन बनाने की क्षमता डेवलपर्स को संपादक को उनकी विशिष्ट आवश्यकताओं के अनुरूप बनाने, उत्पादकता बढ़ाने और वर्कफ़्लो को सुव्यवस्थित करने की अनुमति देती है। यह व्यापक गाइड आपको अपने स्वयं के वीएस कोड एक्सटेंशन बनाने की प्रक्रिया के बारे में बताएगा, प्रारंभिक सेटअप से लेकर दुनिया को उपयोग करने के लिए अपनी रचना प्रकाशित करने तक।
वीएस कोड एक्सटेंशन क्यों विकसित करें?
वीएस कोड एक्सटेंशन विकसित करने से व्यक्तिगत डेवलपर्स और संगठनों दोनों के लिए कई लाभ मिलते हैं:
- निजीकृत वर्कफ़्लो: अपनी कोडिंग शैली और परियोजना आवश्यकताओं से पूरी तरह मेल खाने के लिए संपादक को अनुकूलित करें।
- बढ़ी हुई उत्पादकता: दोहराए जाने वाले कार्यों को स्वचालित करें, बाहरी उपकरणों के साथ एकीकृत करें और अपनी विकास प्रक्रिया को सुव्यवस्थित करें।
- बढ़ा हुआ सहयोग: वर्कफ़्लो को मानकीकृत करने और कोड की गुणवत्ता में सुधार करने के लिए अपनी टीम या व्यापक समुदाय के साथ एक्सटेंशन साझा करें।
- सीखना और कौशल विकास: टाइपस्क्रिप्ट, नोड.जेएस और वीएस कोड एपीआई के साथ अनुभव प्राप्त करने से नए करियर के अवसर खुलते हैं।
- सामुदायिक योगदान: वैश्विक डेवलपर समुदाय के साथ अपने नवीन समाधान साझा करें और पारिस्थितिकी तंत्र में योगदान करें।
आवश्यक शर्तें
एक्सटेंशन डेवलपमेंट में गोता लगाने से पहले, सुनिश्चित करें कि आपने निम्नलिखित स्थापित कर लिया है:
- Node.js और npm (Node Package Manager): वीएस कोड एक्सटेंशन डेवलपमेंट नोड.जेएस पर बहुत अधिक निर्भर करता है। आधिकारिक Node.js वेबसाइट से नवीनतम एलटीएस संस्करण डाउनलोड और इंस्टॉल करें। npm स्वचालित रूप से Node.js के साथ स्थापित होता है।
- विज़ुअल स्टूडियो कोड: सुनिश्चित करें कि आपने वीएस कोड का नवीनतम संस्करण स्थापित कर लिया है।
- योमन और वीएस कोड एक्सटेंशन जनरेटर: योमन एक स्केफोल्डिंग उपकरण है जो एक्सटेंशन निर्माण प्रक्रिया को सरल बनाता है। npm का उपयोग करके इसे वैश्विक स्तर पर स्थापित करें:
npm install -g yo generator-code
अपना विकास परिवेश स्थापित करना
आवश्यक शर्तें होने के बाद, आप अपना विकास परिवेश स्थापित करने के लिए तैयार हैं:
- एक नई एक्सटेंशन परियोजना बनाएँ: अपना टर्मिनल खोलें और एक्सटेंशन जनरेटर शुरू करने के लिए निम्नलिखित कमांड चलाएँ:
- प्रश्नों के उत्तर दें: जनरेटर आपके एक्सटेंशन के बारे में कई प्रश्न पूछेगा। यहां सामान्य प्रश्नों और अनुशंसित उत्तरों का विवरण दिया गया है:
- आप किस प्रकार का एक्सटेंशन बनाना चाहते हैं? टाइपस्क्रिप्ट-आधारित एक्सटेंशन के लिए "नया एक्सटेंशन (टाइपस्क्रिप्ट)" चुनें, जो अनुशंसित दृष्टिकोण है।
- आपके एक्सटेंशन का नाम क्या है? अपने एक्सटेंशन के लिए एक वर्णनात्मक और अद्वितीय नाम चुनें। उदाहरण: "कोड स्पेल चेकर," "जावास्क्रिप्ट स्निपेट्स," "पायथन ऑटोकंप्लीट।"
- आपके एक्सटेंशन का पहचानकर्ता क्या है? यह आपके एक्सटेंशन के लिए एक अद्वितीय पहचानकर्ता है, आमतौर पर `प्रकाशक.एक्सटेंशन-नाम` प्रारूप में। एक प्रकाशक नाम चुनें (उदाहरण के लिए, आपका GitHub उपयोगकर्ता नाम या कंपनी का नाम)।
- आपके एक्सटेंशन का विवरण क्या है? आपके एक्सटेंशन के बारे में एक संक्षिप्त और जानकारीपूर्ण विवरण प्रदान करें।
- एक गिट भंडार प्रारंभ करें? संस्करण नियंत्रण के लिए एक गिट भंडार प्रारंभ करने के लिए "हाँ" चुनें।
- क्या आप कोड को लिंट करने के लिए ईएसएलिंट का उपयोग करना चाहते हैं? कोड शैली स्थिरता लागू करने के लिए "हाँ" चुनें।
- वीएस कोड में परियोजना खोलें: जनरेटर के पूरा होने के बाद, वीएस कोड में नव निर्मित परियोजना फ़ोल्डर खोलें।
yo code
परियोजना संरचना को समझना
एक्सटेंशन जनरेटर निम्नलिखित प्रमुख फ़ाइलों के साथ एक बुनियादी परियोजना संरचना बनाता है:
- `package.json`: इस फ़ाइल में आपके एक्सटेंशन के बारे में मेटाडेटा होता है, जिसमें इसका नाम, संस्करण, विवरण, निर्भरताएँ और सक्रियण घटनाएँ शामिल हैं।
- `tsconfig.json`: यह फ़ाइल टाइपस्क्रिप्ट कंपाइलर को कॉन्फ़िगर करती है।
- `.vscode/launch.json`: यह फ़ाइल आपके एक्सटेंशन के लिए डिबगर को कॉन्फ़िगर करती है।
- `src/extension.ts`: यह आपके एक्सटेंशन के लिए मुख्य प्रवेश बिंदु है। इसमें `activate` और `deactivate` फ़ंक्शन शामिल हैं।
- `README.md`: आपकी एक्सटेंशन का वर्णन, इसका उपयोग कैसे करें और कोई भी प्रासंगिक जानकारी प्रदान करने वाली एक मार्कडाउन फ़ाइल।
अपना पहला एक्सटेंशन लिखना
आइए एक साधारण एक्सटेंशन बनाकर शुरू करें जो कमांड निष्पादित होने पर "हेलो वर्ल्ड" संदेश प्रदर्शित करता है:
- `src/extension.ts` खोलें: इस फ़ाइल में `activate` फ़ंक्शन है, जिसे तब कहा जाता है जब आपका एक्सटेंशन सक्रिय होता है।
- `activate` फ़ंक्शन को संशोधित करें: मौजूदा कोड को निम्नलिखित से बदलें:
- स्पष्टीकरण:
- `vscode.commands.registerCommand('my-extension.helloWorld', ...)`: आईडी `my-extension.helloWorld` के साथ एक कमांड रजिस्टर करता है। यह कमांड वीएस कोड कमांड पैलेट में उपलब्ध होगा।
- `vscode.window.showInformationMessage('मेरे एक्सटेंशन से हेलो वर्ल्ड!')`: वीएस कोड विंडो में एक सूचना संदेश प्रदर्शित करता है।
- `context.subscriptions.push(disposable)`: कमांड को एक्सटेंशन की सदस्यता में जोड़ता है, यह सुनिश्चित करता है कि एक्सटेंशन निष्क्रिय होने पर यह ठीक से निपट जाए।
- `package.json` को संशोधित करें: कमांड को परिभाषित करने के लिए `contributes` अनुभाग में निम्नलिखित जोड़ें:
- स्पष्टीकरण:
- `"commands"`: आपके एक्सटेंशन द्वारा योगदान किए गए कमांड को परिभाषित करता है।
- `"command": "my-extension.helloWorld"`: कमांड आईडी निर्दिष्ट करता है जो `extension.ts` में उपयोग की गई आईडी से मेल खाता है।
- `"title": "हेलो वर्ल्ड"`: कमांड पैलेट में कमांड के लिए प्रदर्शन नाम सेट करता है।
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() {}
"contributes": {
"commands": [{
"command": "my-extension.helloWorld",
"title": "हेलो वर्ल्ड"
}]
}
अपने एक्सटेंशन का परीक्षण करना
अब आपके एक्सटेंशन का परीक्षण करने का समय आ गया है:
- F5 दबाएँ: यह आपके एक्सटेंशन के साथ एक नई वीएस कोड विंडो लॉन्च करेगा। यह "एक्सटेंशन डेवलपमेंट होस्ट" है।
- कमांड पैलेट खोलें: कमांड पैलेट खोलने के लिए `Ctrl+Shift+P` (या macOS पर `Cmd+Shift+P`) दबाएँ।
- "हेलो वर्ल्ड" टाइप करें: आपको कमांड पैलेट में सूचीबद्ध अपना कमांड देखना चाहिए।
- "हेलो वर्ल्ड" चुनें: कमांड पर क्लिक करने से यह निष्पादित होगा और वीएस कोड विंडो में "हेलो वर्ल्ड" संदेश प्रदर्शित होगा।
अपने एक्सटेंशन को डिबग करना
आपके एक्सटेंशन में समस्याओं की पहचान करने और ठीक करने के लिए डिबगिंग महत्वपूर्ण है। वीएस कोड उत्कृष्ट डिबगिंग समर्थन प्रदान करता है:
- ब्रेकप्वाइंट सेट करें: अपने कोड में ब्रेकप्वाइंट सेट करने के लिए लाइन नंबरों के बगल में संपादक गटर में क्लिक करें।
- F5 दबाएँ: यह डिबग मोड में एक्सटेंशन डेवलपमेंट होस्ट लॉन्च करेगा।
- अपने एक्सटेंशन को ट्रिगर करें: उस कमांड या क्रिया को निष्पादित करें जो उस कोड को ट्रिगर करता है जिसे आप डिबग करना चाहते हैं।
- चरों और कॉल स्टैक का निरीक्षण करें: वीएस कोड डिबगर आपके ब्रेकप्वाइंट पर निष्पादन को रोक देगा, जिससे आप चर का निरीक्षण कर सकते हैं, कोड के माध्यम से स्टेप कर सकते हैं और कॉल स्टैक की जांच कर सकते हैं।
वीएस कोड एपीआई के साथ काम करना
वीएस कोड एपीआई संपादक के साथ इंटरैक्ट करने के लिए इंटरफेस और कार्यों का एक समृद्ध सेट प्रदान करता है। यहां एपीआई के कुछ प्रमुख क्षेत्र दिए गए हैं:
- `vscode.window`: वीएस कोड विंडो के साथ इंटरैक्ट करने, संदेश प्रदर्शित करने, इनपुट बॉक्स दिखाने और पैनल प्रबंधित करने के लिए।
- `vscode.workspace`: फ़ाइलों, फ़ोल्डरों और कॉन्फ़िगरेशन सेटिंग्स सहित कार्यक्षेत्र को एक्सेस और हेरफेर करने के लिए।
- `vscode.commands`: कमांड को रजिस्टर और निष्पादित करने के लिए।
- `vscode.languages`: भाषा समर्थन प्रदान करने के लिए, जैसे सिंटैक्स हाइलाइटिंग, कोड कंप्लीशन और डायग्नोस्टिक्स।
- `vscode.debug`: डिबगर के साथ इंटरैक्ट करने के लिए।
- `vscode.scm`: गिट जैसी स्रोत नियंत्रण प्रबंधन प्रणालियों के साथ इंटरैक्ट करने के लिए।
उदाहरण: एक कोड स्निपेट एक्सटेंशन बनाना
आइए एक ऐसा एक्सटेंशन बनाएँ जो एक बुनियादी रिएक्ट कंपोनेंट बनाने के लिए एक कोड स्निपेट जोड़ता है:
- एक `snippets` फ़ोल्डर बनाएँ: अपनी परियोजना के रूट में `snippets` नामक एक नया फ़ोल्डर बनाएँ।
- एक स्निपेट फ़ाइल बनाएँ: `snippets` फ़ोल्डर के अंदर `react.json` नामक एक फ़ाइल बनाएँ।
- स्निपेट परिभाषा जोड़ें: `react.json` में निम्नलिखित JSON जोड़ें:
- स्पष्टीकरण:
- `"React Component"`: स्निपेट का नाम।
- `"prefix": "reactcomp"`: वह उपसर्ग जो स्निपेट को ट्रिगर करता है। `reactcomp` टाइप करने और `Tab` दबाने से स्निपेट डाला जाएगा।
- `"body"`: स्निपेट में कोड की पंक्तियों का प्रतिनिधित्व करने वाली तारों की एक सरणी।
- `${1:ComponentName}`: एक टैब स्टॉप जो आपको कंपोनेंट नाम को जल्दी से बदलने की अनुमति देता है।
- `"description"`: स्निपेट का विवरण।
- `package.json` को संशोधित करें: `contributes` अनुभाग में निम्नलिखित जोड़ें:
- स्पष्टीकरण:
- `"snippets"`: आपके एक्सटेंशन द्वारा योगदान किए गए स्निपेट को परिभाषित करता है।
- `"language": "javascriptreact"`: उस भाषा को निर्दिष्ट करता है जिसके लिए स्निपेट लागू है।
- `"path": "./snippets/react.json"`: स्निपेट फ़ाइल का पथ निर्दिष्ट करता है।
- अपना स्निपेट परीक्षण करें: एक `.jsx` या `.tsx` फ़ाइल खोलें और `reactcomp` टाइप करें। स्निपेट डालने के लिए `Tab` दबाएँ।
{
"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": "एक बुनियादी रिएक्ट कंपोनेंट बनाता है"
}
}
"contributes": {
"snippets": [{
"language": "javascriptreact",
"path": "./snippets/react.json"
}]
}
उन्नत एक्सटेंशन विकास तकनीकें
एक बार जब आप मूल बातें महारत हासिल कर लेते हैं, तो आप अधिक उन्नत एक्सटेंशन विकास तकनीकों का पता लगा सकते हैं:
- भाषा सर्वर प्रोटोकॉल (एलएसपी): किसी विशिष्ट भाषा के लिए उन्नत भाषा समर्थन प्रदान करने के लिए एलएसपी का उपयोग करें, जैसे कोड कंप्लीशन, डायग्नोस्टिक्स और रिफैक्टरिंग। लोकप्रिय एलएसपी कार्यान्वयन में पायथन, जावा और गो के लिए शामिल हैं।
- डिबगिंग एडेप्टर: विशिष्ट प्रोग्रामिंग भाषाओं या रनटाइम को डिबग करने के समर्थन के लिए कस्टम डिबगिंग एडेप्टर बनाएँ।
- वेबव्यू: वेबव्यू का उपयोग करके वीएस कोड के भीतर इंटरैक्टिव वेब-आधारित यूआई एम्बेड करें। यह आपको जटिल और नेत्रहीन रूप से आकर्षक एक्सटेंशन बनाने की अनुमति देता है।
- थीमिंग: वीएस कोड की उपस्थिति को बदलने के लिए कस्टम थीम बनाएँ। वीएस कोड मार्केटप्लेस पर कई लोकप्रिय थीम उपलब्ध हैं।
- कुंजी बाइंडिंग: कीबोर्ड शॉर्टकट पर विशिष्ट क्रियाओं को मैप करने के लिए कस्टम कुंजी बाइंडिंग को परिभाषित करें।
अंतर्राष्ट्रीयकरण और स्थानीयकरण (i18n और L10n)
वैश्विक दर्शकों तक पहुंचने के लिए, अपने एक्सटेंशन को अंतर्राष्ट्रीयकरण और स्थानीयकरण करने पर विचार करें। इसमें विभिन्न भाषाओं और क्षेत्रों का समर्थन करने के लिए अपने एक्सटेंशन को अनुकूलित करना शामिल है।
- बाह्य स्ट्रिंग्स: सभी उपयोगकर्ता-सामना करने वाली स्ट्रिंग्स को अलग-अलग संसाधन फ़ाइलों में ले जाएँ।
- वीएस कोड के i18n एपीआई का उपयोग करें: वीएस कोड उपयोगकर्ता के लोकेल के आधार पर स्थानीयकृत स्ट्रिंग्स लोड करने के लिए एपीआई प्रदान करता है।
- कई भाषाओं का समर्थन करें: विभिन्न भाषाओं के लिए संसाधन फ़ाइलें प्रदान करें।
- राइट-टू-लेफ्ट (आरटीएल) लेआउट पर विचार करें: यदि आपका एक्सटेंशन टेक्स्ट प्रदर्शित करता है, तो सुनिश्चित करें कि यह अरबी और हिब्रू जैसी आरटीएल भाषाओं का समर्थन करता है।
अपने एक्सटेंशन को प्रकाशित करना
एक बार जब आपका एक्सटेंशन तैयार हो जाता है, तो आप इसे दूसरों के उपयोग के लिए वीएस कोड मार्केटप्लेस पर प्रकाशित कर सकते हैं:
- एक एज़्योर डेवऑप्स संगठन बनाएँ: अपने एक्सटेंशन को प्रकाशित करने के लिए आपको एक एज़्योर डेवऑप्स संगठन की आवश्यकता होगी। यदि आपके पास नहीं है, तो एज़्योर डेवऑप्स वेबसाइट पर एक निःशुल्क खाता बनाएँ।
- `vsce` टूल स्थापित करें: वीएस कोड एक्सटेंशन मैनेजर (`vsce`) एक्सटेंशन को पैकेज और प्रकाशित करने के लिए एक कमांड-लाइन टूल है। npm का उपयोग करके इसे वैश्विक स्तर पर स्थापित करें:
- एक प्रकाशक बनाएँ: एक प्रकाशक एक पहचान है जो मार्केटप्लेस पर आपके एक्सटेंशन का स्वामी है। `vsce create-publisher` कमांड का उपयोग करके एक प्रकाशक बनाएँ। आपको एज़्योर डेवऑप्स से एक प्रकाशक नाम और एक व्यक्तिगत एक्सेस टोकन (पीएटी) प्रदान करने की आवश्यकता होगी।
- एक व्यक्तिगत एक्सेस टोकन (पीएटी) उत्पन्न करें: एज़्योर डेवऑप्स में, "उपयोगकर्ता सेटिंग्स" -> "व्यक्तिगत एक्सेस टोकन" पर जाएँ और "मार्केटप्लेस (प्रकाशित करें)" स्कोप के साथ एक नया पीएटी बनाएँ।
- अपने एक्सटेंशन को पैकेज करें: अपने एक्सटेंशन को `.vsix` फ़ाइल में पैकेज करने के लिए `vsce package` कमांड का उपयोग करें।
- अपने एक्सटेंशन को प्रकाशित करें: अपने एक्सटेंशन को मार्केटप्लेस पर प्रकाशित करने के लिए `vsce publish` कमांड का उपयोग करें। आपको अपना प्रकाशक नाम और अपना पीएटी प्रदान करने की आवश्यकता होगी।
npm install -g vsce
एक्सटेंशन विकास के लिए सर्वोत्तम अभ्यास
उच्च-गुणवत्ता और बनाए रखने योग्य वीएस कोड एक्सटेंशन बनाने के लिए इन सर्वोत्तम प्रथाओं का पालन करें:
- टाइपस्क्रिप्ट का उपयोग करें: टाइपस्क्रिप्ट स्थिर टाइपिंग प्रदान करता है और कोड रखरखाव में सुधार करता है।
- यूनिट टेस्ट लिखें: यह सुनिश्चित करने के लिए यूनिट टेस्ट लिखें कि आपका एक्सटेंशन सही ढंग से काम करता है।
- एक लिंटर का उपयोग करें: कोड शैली स्थिरता लागू करने के लिए ईएसएलिंट जैसे लिंटर का उपयोग करें।
- अपने कोड का दस्तावेजीकरण करें: अपने एक्सटेंशन के लिए स्पष्ट और संक्षिप्त दस्तावेज़ लिखें।
- त्रुटियों को शालीनता से संभालें: अपने एक्सटेंशन को क्रैश होने से रोकने के लिए उचित त्रुटि हैंडलिंग लागू करें।
- प्रदर्शन को अनुकूलित करें: वीएस कोड को धीमा करने से बचने के लिए अपने एक्सटेंशन के प्रदर्शन को अनुकूलित करें।
- वीएस कोड एपीआई दिशानिर्देशों का पालन करें: यह सुनिश्चित करने के लिए वीएस कोड एपीआई दिशानिर्देशों का पालन करें कि आपका एक्सटेंशन संपादक के साथ अच्छी तरह से एकीकृत हो।
- पहुंच क्षमता पर विचार करें: अपने एक्सटेंशन को विकलांग उपयोगकर्ताओं के लिए सुलभ बनाएँ।
सामुदायिक संसाधन
वीएस कोड एक्सटेंशन डेवलपमेंट के बारे में अधिक जानने के लिए यहां कुछ मूल्यवान संसाधन दिए गए हैं:
- वीएस कोड एक्सटेंशन एपीआई दस्तावेज़: वीएस कोड एक्सटेंशन एपीआई के लिए आधिकारिक दस्तावेज़।
- वीएस कोड एक्सटेंशन नमूने: नमूना एक्सटेंशन का एक संग्रह जो एपीआई की विभिन्न विशेषताओं को दर्शाता है।
- वीएस कोड मार्केटप्लेस: मौजूदा एक्सटेंशन खोजने और उनके कोड से सीखने के लिए वीएस कोड मार्केटप्लेस ब्राउज़ करें।
- स्टैक ओवरफ्लो: वीएस कोड एक्सटेंशन डेवलपमेंट से संबंधित प्रश्न पूछें और उत्तर खोजें।
- GitHub: ओपन-सोर्स वीएस कोड एक्सटेंशन का अन्वेषण करें और समुदाय में योगदान करें।
निष्कर्ष
वीएस कोड एक्सटेंशन विकसित करना आपके कोडिंग वातावरण को अनुकूलित करने, उत्पादकता बढ़ाने और वैश्विक डेवलपर समुदाय के साथ अपने समाधान साझा करने का एक शक्तिशाली तरीका है। इस व्यापक गाइड का पालन करके, आप एक्सटेंशन डेवलपमेंट की कला में महारत हासिल कर सकते हैं और नवीन उपकरण बना सकते हैं जो आपके और दूसरों के लिए वीएस कोड अनुभव को बढ़ाते हैं। समुदाय को अपनाने, ओपन-सोर्स परियोजनाओं में योगदान करने और वीएस कोड एक्सटेंशन डेवलपमेंट की हमेशा विकसित होने वाली दुनिया को लगातार सीखने और तलाशने के लिए याद रखें। शुभकामनाएँ और खुश कोडिंग!