منصوبے کے بارے میں
موناکو ایڈیٹر وی ایس کوڈ کا مکمل فیچر والا کوڈ ایڈیٹر ہے، جسے لائبریری کے طور پر پیکیج کیا گیا ہے جو براؤزر میں چلتا ہے۔ اسے npm پر `monaco-editor` کے نام سے شائع کیا جاتا ہے اور اس میں ایک ESM بلڈ (webpack جیسے بنڈلرز کے ساتھ مطابقت رکھتا ہے) شامل ہے، نیز ایک پرانی AMD بلڈ جو کہ پس ماندہ مطابقت (backwards compatibility) کے لیے رکھی گئی ہے۔ ورژن شدہ عوامی سطح کی تفصیلات `monaco.d.ts` میں بیان کی گئی ہیں؛ باقی سب کچھ نجی سمجھا جاتا ہے اور ریلیز کے درمیان تبدیل ہو سکتا ہے۔
بنیادی تصورات:
- ماڈلز کھلے ہوئے مواد کی نمائندگی کرتے ہیں: یہ متن رکھتے ہیں، زبان کا تعین کرتے ہیں، اور ترمیم کی تاریخ کو ٹریک کرتے ہیں۔ ایک ماڈل کو کسی حقیقی فائل سے مطابقت رکھنے کی ضرورت نہیں ہوتی۔
- URIs ماڈلز کی شناخت کرتے ہیں، لہذا دو ماڈلز ایک ہی URI شیئر نہیں کر سکتے۔ بغیر URI کے بنائے گئے ماڈلز کو جنریٹڈ `inmemory://model/N` URIs دیے جاتے ہیں۔ معنی خیز URIs کا انتخاب اہم ہے کیونکہ کچھ اسمارٹ فیچرز (مثلاً TypeScript امپورٹ ریزولیوشن یا JSON اسکیما سلیکشن) فائل URI پر منحصر ہوتے ہیں۔
- ایڈیٹرز DOM سے منسلک صارف کی نظر آنے والی ویوز ہیں؛ یہ ایک ماڈل کو ظاہر کرتے ہیں، ویو اسٹیٹ کا انتظام کرتے ہیں، اور ایکشنز یا کمانڈز کو نافذ کرتے ہیں۔
- پرووائیڈرز اسمارٹ ایڈیٹر فیچرز جیسے کہ کمپلیشن اور ہوور انفارمیشن فراہم کرتے ہیں، جو اکثر Language Server Protocol کی صلاحیتوں سے مطابقت رکھتے ہیں۔
- بہت سے آبجیکٹس صفائی کے لیے `.dispose()` ظاہر کرتے ہیں؛ ماڈل کو ڈسپوز کرنے سے اس کا URI آزاد ہو جاتا ہے، اور ایڈیٹرز کو ریسورسز اور لسنرز کو آزاد کرنے کے لیے ڈسپوز کیا جانا چاہیے۔
لوکلائزیشن اس طرح کی جاتی ہے کہ مین ایڈیٹر اسکرپٹ سے پہلے مطابقت پذیر nls اسکرپٹ (مثلاً `esm/nls.messages.de.js`) لوڈ کیا جائے۔ README فیچرز آزمانے، ورژنز کا ٹیسٹ کرنے، اور کم از کم ری پروڈکشنز بنانے کے لیے ایک انٹرایکٹو پلے گراؤنڈ، نیز مکمل انٹیگریشن نمونے، API دستاویزات، انٹیگریٹرز کے لیے رسائی گائیڈ، اور نئی زبانوں کے لیے ٹوکنائزرز بنانے کے لیے Monarch پلے گراؤنڈ کی طرف اشارہ کرتا ہے۔
FAQ یہ واضح کرتا ہے کہ موناکو کو وی ایس کوڈ کے سورسز سے شمز کے ساتھ تیار کیا گیا ہے تاکہ یہ براؤزر میں چل سکے، کہ اس کا ورژن وی ایس کوڈ کے ورژن سے مطابقت نہیں رکھتا، اور کہ وی ایس کوڈ ایکسٹینشنز عموماً اس میں کام نہیں کرتے جب تک کہ وہ مکمل طور پر LSP پر مبنی نہ ہوں اور ان کے ساتھ JavaScript لینگویج سرور موجود نہ ہو۔ لینگویج سروسز ویب ورکرز کا استعمال کرتی ہیں؛ `file://` کے ذریعے لوڈ کیے گئے صفحات ورکرز نہیں بنا سکتے، لہذا ایڈیٹر کو http یا https کے ذریعے سرور کیا جانا چاہیے۔ موبائل براؤزرز اور موبائل ویب ایپ فریم ورکس سپورٹ نہیں ہیں، اور TextMate گرامرز بلٹ ان نہیں ہیں (ایک الگ کمیونٹی پروجیکٹ monaco-editor کو vscode-oniguruma اور vscode-textmate کے ساتھ جوڑتا ہے)۔ یہ پروجیکٹ MIT لائسنس یافتہ ہے اور کمیونٹی کے تعاون کا خیرمقدم کرتا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.