इस प्रोजेक्ट के बारे में
Monaco Editor VS Code का पूर्ण-विशेषताओं वाला कोड एडिटर है, जिसे ब्राउज़र में चलने वाली लाइब्रेरी के रूप में पैकेज किया गया है। इसे npm पर `monaco-editor` के रूप में प्रकाशित किया जाता है और यह एक ESM बिल्ड (webpack जैसे बंडलर्स के साथ संगत) के साथ-साथ पिछड़ी संगतता के लिए रखा गया एक पुराना AMD बिल्ड भी भेजता है। संस्करणित सार्वजनिक सतह `monaco.d.ts` में वर्णित है; बाकी सब कुछ निजी माना जाता है और रिलीज़ के बीच बदल सकता है।
मुख्य अवधारणाएँ:
- मॉडल खोली गई सामग्री का प्रतिनिधित्व करते हैं: वे टेक्स्ट रखते हैं, भाषा निर्धारित करते हैं, और संपादन इतिहास ट्रैक करते हैं। एक मॉडल का वास्तविक फ़ाइल से मेल खाना आवश्यक नहीं है।
- URI मॉडल की पहचान करते हैं, इसलिए दो मॉडल एक URI साझा नहीं कर सकते। बिना URI के बनाए गए मॉडल को जनरेटेड `inmemory://model/N` URI मिलते हैं। सार्थक URI चुनना महत्वपूर्ण है क्योंकि कुछ स्मार्ट सुविधाएँ (उदाहरण के लिए TypeScript import resolution या JSON schema selection) फ़ाइल URI पर निर्भर करती हैं।
- एडिटर DOM से जुड़े उपयोगकर्ता-सामने वाले दृश्य हैं; वे एक मॉडल प्रदर्शित करते हैं, दृश्य स्थिति प्रबंधित करते हैं, और क्रियाएँ या कमांड निष्पादित करते हैं।
- प्रोवाइडर स्मार्ट एडिटर सुविधाएँ प्रदान करते हैं जैसे पूर्णता और होवर जानकारी, अक्सर Language Server Protocol क्षमताओं से मेल खाते हुए।
- कई ऑब्जेक्ट सफाई के लिए `.dispose()` उजागर करते हैं; एक मॉडल को नष्ट करने से उसका URI मुक्त हो जाता है, और संसाधनों व श्रोताओं को मुक्त करने के लिए एडिटरों को नष्ट किया जाना चाहिए।
स्थानीयकरण मुख्य एडिटर स्क्रिप्ट से पहले मेल खाती nls स्क्रिप्ट (उदाहरण के लिए `esm/nls.messages.de.js`) लोड करके संभाला जाता है। README सुविधाओं को आज़माने, संस्करणों का परीक्षण करने और न्यूनतम प्रतिकृतियाँ बनाने के लिए एक इंटरैक्टिव प्लेग्राउंड, साथ ही पूर्ण एकीकरण नमूने, API दस्तावेज़, एकीकरणकर्ताओं के लिए एक पहुँच मार्गदर्शिका, और नई भाषाओं के लिए टोकनाइज़र बनाने हेतु एक Monarch प्लेग्राउंड की ओर संकेत करता है।
FAQ स्पष्ट करता है कि Monaco VS Code स्रोतों से शिम्स के साथ उत्पन्न होता है ताकि यह ब्राउज़र में चल सके, कि इसका संस्करण VS Code के संस्करण का अनुसरण नहीं करता है, और VS Code एक्सटेंशन आम तौर पर इसमें तब तक काम नहीं करते जब तक वे JavaScript भाषा सर्वर के साथ पूरी तरह से LSP-आधारित न हों। भाषा सेवाएँ वेब वर्कर्स का उपयोग करती हैं; `file://` पर लोड किए गए पृष्ठ वर्कर्स नहीं बना सकते, इसलिए एडिटर को http या https पर परोसा जाना चाहिए। मोबाइल ब्राउज़र और मोबाइल वेब ऐप फ्रेमवर्क समर्थित नहीं हैं, और TextMate व्याकरण अंतर्निर्मित नहीं हैं (एक अलग सामुदायिक परियोजना monaco-editor को vscode-oniguruma और vscode-textmate के साथ जोड़ती है)। परियोजना MIT लाइसेंस प्राप्त है और सामुदायिक योगदान का स्वागत करती है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.