محرر Monaco هو محرر الرمز المميز بالكامل من VS Code. تحقق من مستندات VS Code لمشاهدة بعض الميزات المدعومة.

جرب المحرر وشاهد أمثلة مختلفة في ملعبنا التفاعلي.
يعد الملعب هو أفضل طريقة للتعرف على كيفية استخدام المحرر ، وهو الميزات الدعم ، لتجربة إصدارات مختلفة وإنشاء أمثلة قابلة للتكرار الحد الأدنى لتقارير الأخطاء.
> npm install monaco-editor
سوف تحصل على:
/esm : إصدار ESM من المحرر (متوافق مع EG WebPack)/dev : AMD مجمعة ، غير مصغرة/min : AMD مجمعة ، ومُعجّلة/min-maps : خرائط المصدر minmonaco.d.ts : يحدد هذا واجهة برمجة التطبيقات للمحرر (هذا ما هو موجود بالفعل ، كل شيء آخر يعتبر خاصًا وقد ينفصل عن أي إصدار). يوصى بالتطوير مقابل إصدار dev ، وفي الإنتاج لاستخدام إصدار min .
يشتهر محرر Monaco بكونه محرر النصوص الذي يعمل على Power VS Code. ومع ذلك ، فهو أكثر دقة قليلا. هناك حاجة إلى بعض الفهم الأساسي للمفاهيم الأساسية لاستخدام محرر Monaco بشكل فعال.
النماذج في قلب محرر موناكو. هذا ما تتفاعل معه عند إدارة المحتوى. يمثل النموذج ملفًا تم فتحه. يمكن أن يمثل هذا ملفًا موجودًا على نظام الملفات ، لكن ليس من الضروري ذلك. على سبيل المثال ، يحمل النموذج محتوى النص ، ويحدد لغة المحتوى ، ويتتبع تاريخ تحرير المحتوى.
يتم تحديد كل نموذج بواسطة URI. هذا هو السبب في أنه من غير الممكن أن يكون لدى نموذجين نفس URI. من الناحية المثالية عندما تمثل المحتوى في محرر Monaco ، يجب أن تفكر في نظام ملفات افتراضية يطابق الملفات التي يقوم المستخدمون بتحريرها. على سبيل المثال ، يمكنك استخدام file:/// كمسار أساسي. إذا تم إنشاء نموذج بدون URI ، فسيكون URI هو inmemory://model/1 . يزيد الرقم مع إنشاء المزيد من النماذج.
المحرر هو مستخدم يواجه عرض النموذج. هذا هو ما يتم توصيله بـ DOM وما يراه المستخدمون بصريًا. تعرض عمليات المحرر النموذجية نموذجًا أو إدارة حالة العرض أو تنفيذ الإجراءات أو الأوامر.
يقدم مقدمو الخدمات ميزات محرر ذكية. على سبيل المثال ، يتضمن ذلك معلومات الإكمال والتحوم. ليس هو نفسه ، ولكن في كثير من الأحيان يخطط لميزات بروتوكول خادم اللغة.
يعمل مقدمو الخدمات على النماذج. تعتمد بعض الميزات الذكية على ملف URI. على سبيل المثال ، لكي يحل TypeScript الواردات ، أو لـ JSON Intellisense لتحديد مخطط JSON الذي يجب تطبيقه على أي نموذج. لذلك من المهم اختيار URIS النموذجية.
غالبًا ما تنفذ العديد من الكائنات ذات الصلة Monaco طريقة .dispose() . تهدف هذه الطريقة إلى تنفيذ عمليات التنظيف عندما لم تعد هناك حاجة إلى مورد. على سبيل المثال ، سيقوم استدعاء model.dispose() بإلغاء تسجيله ، مما يؤدي إلى تحرير URI لطراز جديد. يجب التخلص من المحررين لتحرير الموارد وإزالة مستمعي النماذج.
monaco.d.ts .إنشاء مشكلات في هذا المستودع لأي شيء يتعلق بمحرر موناكو. يرجى البحث عن القضايا الحالية لتجنب التكرارات.
❓ ما هي العلاقة بين VS Code ومحرر Monaco؟
يتم إنشاء محرر Monaco مباشرة من مصادر VS Code مع بعض الحشوات حول الخدمات التي يحتاجها الرمز لجعلها تعمل في متصفح الويب خارج منزلها.
❓ ما هي العلاقة بين إصدار VS Code ونسخة محرر Monaco؟
لا أحد. محرر Monaco هو مكتبة ويعكس مباشرة رمز المصدر.
❓ لقد كتبت تمديدًا لـ VS Code ، هل ستعمل على محرر Monaco في متصفح؟
لا.
ملاحظة: إذا كان الامتداد يعتمد بالكامل على LSP وإذا تم تأليف خادم اللغة في JavaScript ، فسيكون ذلك ممكنًا.
❓ لماذا جميع عمال الويب هؤلاء ولماذا يجب أن أهتم؟
تقوم خدمات اللغة بإنشاء عمال الويب لحساب الأشياء الثقيلة خارج موضوع واجهة المستخدم. لا يكلفهم أي شيء من حيث النفقات العامة للموارد ويجب ألا تقلق كثيرًا بشأنهم ، طالما أن تصلهم إلى العمل (انظر أعلاه في حالة النطاق المتقاطع).
❓ ما هو هذا loader.js . هل يمكنني استخدام require.js ؟
إنه محمل AMD الذي نستخدمه في VS Code. نعم.
❓ أرى التحذير "لا يمكن إنشاء عامل ويب". ماذا علي أن أفعل؟
لا يسمح HTML5 بصفحات محملة في file:// لإنشاء عمال الويب. يرجى تحميل المحرر بخادم ويب على http:// أو https:// schemes.
❓ هل يدعم المحرر في متصفحات الهاتف المحمول أو أطر تطبيقات الويب المحمولة؟
لا.
❓ لماذا لا يدعم المحرر القواعد النحوية؟
monaco-editor ، vscode-oniguruma و vscode-textmate للحصول على دعم قواعد TM في المحرر. نحن نرحب بالمساهمات من المجتمع! يرجى الاطلاع على المساهمة للحصول على تفاصيل كيف يمكنك المساهمة بفعالية ، وكيف يمكنك تشغيل المحرر من المصادر وكيف يمكنك تصحيح المشكلات وإصلاحها.
اعتمد هذا المشروع رمز سلوك المصدر المفتوح Microsoft. لمزيد من المعلومات ، راجع مدونة الشهادة الأسئلة الشائعة أو الاتصال بـ [email protected] مع أي أسئلة أو تعليقات إضافية.
مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.