रिवर्स इंजीनियरिंग का उपयोग करके आप वीएससीओडी में एक नई भाषा जोड़ सकते हैं। आप एक जावास्क्रिप्ट प्लगइन के रूप में टाइपस्क्रिप्ट को कैसे कार्यान्वित किया जाता है और यह पाइप के माध्यम से node.exe के साथ कैसे संचार करता है, इस पर एक नज़र डाल सकते हैं। लेकिन यह एक कठिन बात है क्योंकि यह सब कुछ दस्तावेज के बिना आ रहा है मैं यहां वास्तव में एक छोटा सा दस्तावेज प्रदान करूंगा:
आप प्लगइन्स फ़ोल्डर C:\Users\USER\AppData\Local\Code\app-0.3.0\resources\app\plugins
में एक नई प्लगइन परिभाषित कर सकते हैं।
टाइपस्क्रिप्ट प्लगइन फ़ोल्डर की प्रतिलिपि बनाएँ और अपनी नई भाषा में सभी फ़ाइलों में उल्लिखित फ़ाइल एक्सटेंशन और भाषा नामों का नाम बदलें, ताकि आपकी नई प्लगइन का उपयोग किया जा सके जब एक .mylang फ़ाइल खोली जाती है।
typescriptServiceClient.js
में आप देखते हैं कि एक बच्चे की प्रक्रिया काटा जा रहा है और इसका stdout
new WireProtocol.Reader
के साथ जोड़ा गया है। अपने mylanguage.exe
को बांधें (आपको संभवतः उस exe को अपने आप लिखने की आवश्यकता होगी)। वीएससीओडी पूछता है कि अधिक भाषा विशिष्ट जानकारी प्राप्त करने के लिए बाइनरी।
typescriptMain.js
में आपको भाषा के लिए सुविधा पंजीकरण मिल गया है। पर monaco.Modes.DeclarationSupport.register
को छोड़कर प्रत्येक कॉल को हटाएं।
अब वीएससीओडी में एक निर्देशिका खोलें जिसमें .mylang फ़ाइलें हैं और उनमें से एक को CTRL+P + FileName
के माध्यम से खोलें। पहचानकर्ता पर राइट क्लिक करें और Go to Definition
चुनें। VSCode अब अपनी exe को stdin के माध्यम से इस तरह के अनुरोध भेजता है
{"seq":1,"type":"request","command":"definition","arguments":{"file":"d:/Projects/MyProj/Source/MyFile.mylang","line":45,"offset":9}}
VSCode उम्मीद इस तरह एक जवाब:
Content-Length: 251
[LINE BREAK]
{ "seq" : 1, "type" : "response", "command" : "definition", "request_seq" : 1, "success" : true, "body" : [{ "file" : "d:/Projects/MyProj/Source/MyOtherFile.mylang", "start" : { "line" : 125, "offset" : 3 }, "end" : { "line" : 145, "offset" : 11} }] }
सब कुछ काम करता है VSCode MyOtherFile.mylang खोलने के लिए और में 124 लाइन के लिए कर्सर सेट हो जाएगा स्तंभ 3.
अपनी खुद की ;-) पर यह प्रयास करें
के लिए चेक GitHub पर मैड्स Kristensen की वेब अनिवार्य भंडार पथ को बदलने की जरूरत होगी। –
यह वीएस के लिए है, लेकिन वीएस कोड के लिए नहीं। –
क्षमा करें, मुझे आपके प्रश्न का वह हिस्सा याद आया। ~ AppData \ Local \ Code \ app-0.1.0 \ संसाधन \ app \ plugins निर्देशिका में भाषा प्लगइन्स हैं, आप उनका उपयोग कर सकते हैं। –