تحسين أداء VS Code: دليلك الشامل لضبط Visual Studio Code واختيار أفضل الإضافات
تحسين أداء VS Code: دليلك الشامل لضبط Visual Studio Code واختيار أفضل الإضافات
يُعد Visual Studio Code (أو VS Code اختصاراً) بيئة تطوير متكاملة (IDE) خفيفة الوزن ومصممة ببراعة، حيث يقدم مجموعة أساسية من الميزات القوية التي يمكن توسيعها بشكل كبير عبر الإضافات (Extensions). ومع ذلك، مع تزايد عدد الإضافات التي تقوم بتثبيتها، يتأثر الأداء حتماً. هل سبق لك أن قمت بتقييم أداء إضافة قبل تثبيتها؟ وماذا تفعل إذا أصبح تشغيل VS Code بطيئاً بشكل ملحوظ؟ يبدو أن هذا الموضوع لا يحظى باهتمام كبير، مما يشير إلى أن الكثيرين قد لا يدركون أهميته.
في هذا المقال، سأشرح العوامل التي تؤثر على أداء الإضافات، وسأقدم تقييماً لأداء بعض الإضافات الشائعة. بعد ذلك، سأوضح كيفية تدقيق أداء مجموعة الإضافات الحالية لديك، وسأقدم نصائح عامة لتحسين الأداء لضمان تجربة تطوير سلسة وفعالة.
الحد الأدنى من متطلبات الأجهزة والبرامج لتشغيل VS Code
قبل الخوض في تفاصيل الإضافات، دعنا نتحدث بإيجاز عن الحد الأدنى من المتطلبات لتشغيل VS Code. بشكل عام، أي جهاز كمبيوتر تم شراؤه في السنوات القليلة الماضية بمواصفات متواضعة يجب أن يكون قادراً على تشغيل VS Code دون أي مشاكل.
متطلبات الأجهزة
الحد الأدنى من متطلبات الأجهزة التي أوصي بها هي:
- معالج بسرعة 1.6 جيجاهرتز أو أسرع.
- ذاكرة وصول عشوائي (
RAM) بسعة 1 جيجابايت على الأقل. - مساحة تخزين على القرص الصلب (
Disk Space) بسعة 200 ميجابايت على الأقل.
أنظمة التشغيل المدعومة
تم اختبار VS Code بنجاح على أنظمة التشغيل التالية:
OS X Yosemiteوالإصدارات الأحدث.Windows 7(مع.NET Framework 4.5.2)،8.0،8.1، و10(بنيتي 32 بت و 64 بت).Linux(Debian):Ubuntu Desktop 14.04،Debian 7.Linux(Red Hat):Red Hat Enterprise Linux 7،CentOS 7،Fedora 23.
بناءات مجتمعية غير رسمية لأجهزة Raspberry Pi و Chromebooks
أطلق المطور Jay Rodgers مشروعاً مفتوح المصدر يقوم بإنشاء بناءات ليلية (nightly builds) من VS Code لأجهزة Raspberry Pi و Chromebooks. لقد قمت بصيانة هذا المشروع لعدة سنوات، وقد توسع من توفير الملفات الثنائية (binaries) لأجهزة Pi ليشمل توفير الدعم والأدوات اللازمة لتشغيل VS Code على أجهزة ARM منخفضة المواصفات التي قد لا تدعمه بخلاف ذلك، مثل أجهزة Chromebooks (التي تشكل حوالي 60% من الأجهزة في المدارس حالياً). إذا كنت ترغب في تجربته بنفسك، يمكنك اتباع التعليمات التي وضعها Jay، فقد بذل جهداً كبيراً لجعل العملية بسيطة قدر الإمكان.
ليست كل الإضافات متساوية في الجودة والأداء

يتم تحميل الإضافات وتفريغها في ظروف مختلفة، ويحدد مؤلف الإضافة هذه الشروط. يتم تحديد ذلك من خلال Activation Events (أحداث التنشيط)، والتي سنتناولها لاحقاً بالتفصيل. لا يوجد أي مؤشر واضح في المحرر يوضح ما إذا كانت الإضافة نشطة أم لا. فكيف نعرف متى تكون الإضافة نشطة؟
تُكتب معظم الإضافات بلغة TypeScript، ولكن يمكن أيضاً كتابتها بلغة JavaScript. يمكن للإضافات أن تتضمن وحدات Node كاعتمادات (dependencies). يمكنك تجميع ملفات المصدر (source files) وتصغيرها (minify) في ملف واحد إذا رغبت في ذلك. توصي وثائق VS Code بالقيام بذلك لتحسين أوقات التحميل، لكن العديد من الإضافات لا تتبع هذه التوصية. تؤثر هذه الخيارات بشكل مباشر على أدائها.
غالباً ما تكون الإضافات مشاريع جانبية مفتوحة المصدر يكتبها المطورون. لذا، فإن جودة الكود والصيانة ستختلف بشكل كبير. حتى الإضافات التي تكتبها مايكروسوفت ليست محصنة تماماً ضد هذه العيوب، لكنها أقل عرضة للمعاناة منها.
معايير اختيار الإضافات: ما يجب أن تبحث عنه
تتحدث معظم قوائم الإضافات عن الميزات الرائعة فقط، وتتجاهل الجوانب الأخرى الهامة. إذا كان هناك شيء مميز، يجب أن نعرف أيضاً عن وقوده وعوادمه! 🧑💻 بعض المعايير التي أقترحها تتضمن النظر إلى الكود المصدري (source code). لا تدع ذلك يثبط عزيمتك؛ فجمع الحقائق الرئيسية يستغرق بضع دقائق فقط، وسأوضح لك كيف!
هل الميزة التي أحتاجها متاحة بالفعل في VS Code؟
لقد أوضحت في مقال سابق بعنوان "VS Code: you don't need that extension" أنك لا تحتاج إلى العديد من الإضافات الشائعة. يمكنك الرجوع إلى وثائق VS Code للتحقق من ميزة معينة قبل البحث عن إضافة.
هل تحتوي الإضافة على الميزات التي أحتاجها؟
استشر صفحة الإضافة على Visual Studio Marketplace لمعرفة ذلك. تأكد من أن الإضافة تلبي احتياجاتك الأساسية دون تحميل ميزات غير ضرورية.
متى يتم تحميل الإضافة وتنشيطها؟
سأناقش هذا بالتفصيل في قسم أحداث التنشيط (Activation Events). تحتاج إلى فحص ملف package.json الخاص بالكود المصدري لمعرفة ذلك مسبقاً. يمكنك أيضاً تشغيل الأمر Developer: Startup Performance لرؤية أحداث التنشيط للإضافات المثبتة. سأناقش هذا بشكل أوسع في قسم كيفية تدقيق الأداء.
هل الموارد محسّنة؟
تحتاج إلى فحص الكود المصدري لمعرفة ما إذا كانت الإضافة تستخدم أداة تجميع (bundler). يمكنك التحقق من ملف package.json لمعرفة ما إذا كان قسم scripts يحتوي على خطوة ما قبل البناء (pre-build step) للتجميع. ملف الإضافة VSIX هو أرشيف مضغوط لملفات الكود والقائمة في السوق. غالباً ما يضم المطورون ملفات غير ضرورية. يوجد ملف .vscodeignore لاستبعاد الملفات. يؤثر عدد الملفات التي يحتوي عليها ملف VSIX على وقت التنشيط البارد (cold activation time).
وقت التنشيط البارد هو أول تشغيل للإضافة بعد تثبيتها، ويميل إلى أن يكون أبطأ من الأوقات الأخرى. أعتقد أن هذا يرجع إلى فك ضغط ملف VSIX وتخزينه مؤقتاً. هذا ما تبدو عليه إضافة Vetur عند فتحها باستخدام 7Zip:

هل تم الإبلاغ عن أي مشاكل أداء مؤخراً ولم يتم حلها؟
يمكنك الكشف عن هذه المشاكل عن طريق تدقيق أداء الإضافة. تحتاج أيضاً إلى التحقق من قسم المشاكل (issues) في مستودع Git الخاص بالمشروع.
هل يحتوي الكود على اختبارات؟
ستكون الإضافة أكثر عرضة للأخطاء (bugs) بدون اختبارات. تحتاج إلى فحص الكود المصدري لمعرفة ما إذا كانت هناك اختبارات موجودة.
هل يتم صيانتها بنشاط؟
يقدم قسم Project Details في صفحة الإضافة نظرة عامة على نشاط مستودع Git العام. في بعض الحالات، قد تكون الإضافة "مكتملة"، وبالتالي لا تكون الصيانة اعتباراً مهماً. ومع ذلك، بالنسبة لمعظم الإضافات، الصيانة النشطة ضرورية لضمان التوافق والأمان.

أحداث التنشيط (Activation Events): فهم متى تعمل إضافاتك
أحداث التنشيط هي الأحداث التي تؤدي إلى تنشيط الإضافة. إنها تحدد الشروط لتحميل الإضافة وتفريغها. يعلن مؤلف الإضافة عن هذه الأحداث في حقل activationEvents ضمن ملف package.json (Extension Manifest). هناك مجموعة واسعة من أحداث التنشيط للاختيار من بينها. يمكن للإضافة الاستماع إلى العديد من أحداث التنشيط للحصول على نطاق أكثر تحديداً.
يوضح هذا الرسم البياني التسلسلي (Sequence Diagram) ما يحدث عند تشغيل VS Code. إنه يمنحك فكرة عن التسلسل الزمني للأحداث التي تحدث، والتي تؤثر على متى يمكنك التفاعل مع المحرر واستخدام إضافات معينة.
الآن، سأستعرض أهم أحداث التنشيط، بدءاً من النطاق الأوسع وصولاً إلى النطاق الأضيق.
حدث بدء التشغيل (Startup event) – النطاق الأوسع: *
سيقوم حدث التنشيط * بتنشيط الإضافة عند بدء تشغيل VS Code. ستكون هذه الإضافات نشطة دائماً، مما يؤثر بشكل مباشر على وقت بدء تشغيل VS Code.
"activationEvents": [
"*"
]
تقدم وثائق VS Code النصيحة التالية:
لضمان تجربة مستخدم نهائية رائعة، يرجى استخدام حدث التنشيط هذا في إضافتك فقط عندما لا يعمل أي مزيج آخر من أحداث التنشيط في حالة الاستخدام الخاصة بك.
في رأيي، يجب أن تكون هناك حالة خاصة جداً لمنح إضافة هذا النطاق الواسع. من الأفضل استخدام onStartupFinished على الأقل.
إضافات شائعة تستخدم حدث التنشيط هذا: ES Lint (11 مليون تثبيت)، Live Server (7.4 مليون تثبيت)، GitLens (6.5 مليون تثبيت)، Beautify (5.4 مليون تثبيت)، Bracket Pair Colorizer (3.6 مليون تثبيت)، Git History (2.9 مليون تثبيت)، Settings Sync (2 مليون تثبيت)، indent-rainbow (1.1 مليون تثبيت).
حدث الانتهاء من بدء التشغيل (onStartupFinished event)
سيتم تنشيط هذه الإضافة في وقت ما بعد بدء تشغيل VS Code. هذا يشبه حدث التنشيط *، لكنه لن يبطئ بدء تشغيل VS Code بشكل مباشر.
"activationEvents": [
"onStartupFinished"
]
إضافات شائعة تستخدم حدث التنشيط هذا: Prettier (8.5 مليون تثبيت).
حدث اللغة (onLanguage event)
سيتم تنشيط هذه الإضافة كلما تم فتح ملف بلغة معينة.
"activationEvents": [
"onLanguage:json",
"onLanguage:markdown",
"onLanguage:typescript"
]
يأخذ حدث onLanguage قيمة معرف اللغة (language identifier). يمكنك الإعلان عن أي عدد تريده من اللغات.
إضافات شائعة تستخدم حدث التنشيط هذا: معظم الإضافات في فئة "Programming Languages" في Visual Studio Code Marketplace تحتوي على إدخال onLanguage إلى جانب أحداث تنشيط أخرى، Vetur (5.6 مليون تثبيت – نشط لـ Vue فقط)، YAML (4.3 مليون تثبيت – نشط لـ YAML فقط)، Better Comments (1.1 مليون تثبيت – نشط للغات المدعومة فقط).
حدث احتواء مساحة العمل (workspaceContains event)
سيتم تنشيط هذه الإضافة كلما فتحت مجلداً يحتوي على ملف واحد على الأقل يطابق نمط glob معين.
"activationEvents": [
"workspaceContains:**/package.json"
]
حدث الأمر (onCommand event)
سيتم تنشيط هذه الإضافة كلما قمت باستدعاء أمر معين.
"activationEvents": [
"onCommand:vscode-docker.compose.down",
"onCommand:vscode-docker.compose.restart",
"onCommand:vscode-docker.compose.up",
...
]
أحداث تنشيط أخرى
يمكنك قراءة القائمة الكاملة لأحداث التنشيط في الوثائق المرجعية.
هل تحدد الإضافات نطاقاً محدداً باستمرار؟
للأسف لا! تستخدم العديد من الإضافات حدث التنشيط * بشكل مفرط. إليك كيف أقوم بتقييم تعريف النطاق لبعض الإضافات التي استخدمتها:
- الجيد:
Vetur،YAML،Better Comments. هذه الإضافات تحدد نطاقها بدقة للغات أو السياقات التي تخدمها. - السيئ:
Prettier: سيكون من الأفضل أن تستهدف اللغات التي تدعمها فقط بدلاً من التنشيط الواسع.Markdown All in One: تكون نشطة عندما يكون ملفmarkdownمفتوحاً، أو عندما تحتوي مساحة العمل على ملفREADME.md. يبدو لي أن الحالة الأخيرة غير ضرورية، حيث أن معظم المشاريع تحتوي على ملفREADMEولكن نادراً ما يتم تعديله، مما يجعل الإضافة نشطة بشكل دائم تقريباً. - القبيح: جميع الإضافات التي تستخدم حدث التنشيط
*المذكورة أعلاه. هذه الإضافات تؤثر سلباً على أداء بدء التشغيل بشكل لا مبرر له.
تأثير التجميع (Bundling) على أداء الإضافات

يمكن أن يكون للتجميع تأثير كبير جداً! يتحدث John Papa عن هذا في مقاله "Is Your VS Code Extension Slow? Here's How to Speed it Up!"، حيث يكشف عن نتائج إصلاح شامل لإضافتين من إضافات مايكروسوفت:
Azure Account: قلل التجميع وقت التنشيط بنسبة 50%. كما تم تقليل حجم الإضافة من 6.2 ميجابايت إلى 840 كيلوبايت من خلال التجميع واستبعاد المزيد من الملفات (في ملف.vscodeignore).Docker: قلل التجميع وقت التنشيط من 3.5 ثانية إلى أقل من ثانيتين.
بالإضافة إلى ذلك، يجب الأخذ في الاعتبار وقت التنشيط البارد (cold activation time)، والذي يميل إلى أن يكون أبطأ من الأوقات الأخرى (وقت التنشيط الدافئ warm activation time). فقد انخفض وقت التنشيط البارد لإضافة Docker من 20 ثانية مذهلة إلى ثانيتين فقط بفضل التجميع.
يمكنك تحسين إضافتك المفضلة عن طريق طرح هذه المشكلة على مؤلف الإضافة. يشرح دليل المستخدم Bundling Extensions User Guide كيفية القيام بذلك.
كيفية تدقيق أداء إضافاتك في VS Code
يمكنك تشغيل الأمر Developer: Show Running Extensions للحصول على الإحصائيات الأساسية حول الإضافات قيد التشغيل. يقوم هذا الأمر بفرز الإضافات من الأطول إلى الأقصر في وقت التنشيط. يُطلق على الوقت اسم "Startup Activation" إذا تم تحميل الإضافة عند بدء التشغيل. كما ترى من لقطة الشاشة، فإنه يعطي أيضاً تحذيرات حول مشاكل الأداء.

كما ذكرنا سابقاً، من الجدير بالذكر أن وقت التنشيط البارد (أول مرة يتم فيها تشغيل الإضافة) ووقت التنشيط الدافئ (التشغيل الثاني وما بعده) يمكن أن يختلفا كثيراً. لهذا السبب، يجب أن تستند في تقييم الأداء النموذجي للإضافة على التشغيل الثاني.
يمكنك تدقيق أداء بدء التشغيل عن طريق تشغيل الأمر Developer: Startup Performance. يفتح هذا الأمر مستنداً يحتوي على إحصائيات مفصلة حول مواضيع مثل معلومات النظام (system info)، علامات الأداء (performance marks)، إحصائيات تنشيط الإضافات (extension activation stats)، إحصائيات المحمل (loader stats) للوحدات النمطية، والمزيد.

النتائج خاصة بالمشروع الحالي وأي ملفات مفتوحة عند تنفيذ الأمر. يقدم قسم Extension Activation Stats نظرة عامة أكثر تفصيلاً على أداء الإضافات. إنه مفيد جداً لرؤية أحداث التنشيط دون الحاجة إلى فحص الكود المصدري للإضافة.

يمكنك أن ترى أن VS Code يقوم بتحميل إضافاته "الأساسية" الخاصة بـ Git و Emmet وعدد قليل من الإضافات الأخرى عند بدء التشغيل أيضاً. ⚠️ لا تريد أن تصبح قائمة الإضافات التي يتم تحميلها عند بدء التشغيل طويلة جداً!
بطاقة تقييم لبعض الإضافات الأكثر شيوعاً
سأركز هنا على الإضافات التي استخدمتها بنفسي. لا أريد التكهن بشأن الإضافات التي لم أستخدمها فعلياً.
ESLint
ESLint هي الأداة الأكثر شيوعاً للتحليل الثابت (static analysis) لـ JavaScript و TypeScript. تسلط الضوء على المشاكل في المحرر بخطوط حمراء متعرجة.
- المؤلف:
Microsoft. - عدد التثبيتات: 11 مليون.
- تقييم السوق: 4.3/5 (156 تقييماً).
- الميزات الأساسية: الإبلاغ عن مشاكل بناء الجملة (
syntax problems). القدرة على إصلاح بعض المشاكل تلقائياً. - أحداث التنشيط: عند بدء التشغيل (
*). قد يتم تغييرها إلىonStartupFinishedفي الإصدار التالي. راجع هذه المشكلة المفتوحة للحصول على شرح لسبب هذا الاختيار. - هل الموارد محسّنة: نعم.
- حجم الملف: 133 كيلوبايت.
- وقت التنشيط على نظامي: 39 مللي ثانية.
- مجموعة الاختبارات: تبدو أساسية جداً. مجرد اختبار بسيط لأنماط
glob. - صيانة نشطة: نعم.
- إضافات بديلة:
JS Hint،TS Lint.
ESLint هي إضافة قوية. الأداء ممتاز، لكن من المخيب للآمال أنها تُحمّل عند بدء التشغيل. إذا كان هذا يزعجك، يمكنك تجربة JS Hint (التي كتبها نفس المطور) لـ JavaScript، و TS Lint لـ TypeScript. أو يمكنك عمل "fork" للمشروع وتغييره بنفسك! يتم صيانتها بنشاط، لكنها لا تحتوي على مجموعة اختبارات كبيرة.
التقييم: 8/10
Prettier – Code Formatter
Prettier هي أداة تنسيق كود ذات رأي محدد (opinionated code formatter). تدعم حالياً اللغات التالية: JavaScript، TypeScript، Flow، JSX، JSON، CSS، SCSS، Less، HTML، Vue، Angular، GraphQL، Markdown، YAML.
- المؤلف:
Prettier. - عدد التثبيتات: 8.5 مليون.
- تقييم السوق: 3.8/5 (204 تقييمات).
- الميزات الأساسية: تنسيق الكود.
- أحداث التنشيط:
onStartupFinished. - هل الموارد محسّنة: نعم.
- حجم الملف: 2.1 ميجابايت.
- وقت التنشيط على نظامي: 286 مللي ثانية.
- مجموعة الاختبارات: نعم. التغطية تبدو جيدة.
- صيانة نشطة: نعم.
- إضافات بديلة:
Beautify.
يقوم Prettier بعمل رائع في تبسيط تنسيق الكود. الأداء جيد، ولكن ربما يمكن تحسينه. إنه يقع في الجانب الأبطأ من طيف التنشيط. نطاق التنشيط واسع جداً؛ سيكون من الأفضل استهداف اللغات المدعومة فقط. واجهت مشكلة في تنسيق Markdown، لذلك لا أستخدمه لتنسيق Markdown حالياً. هذه أمور يمكن تغييرها بسهولة.
التقييم: 7.5/10
Live Server
Live Server يطلق خادم تطوير محلياً لتقديم معاينة حية لملفات HTML و SVG.
- المؤلف:
Retwick Dey. - عدد التثبيتات: 7.5 مليون.
- تقييم السوق: 4.5/5 (269 تقييماً).
- الميزات الأساسية: معاينة حية لـ
HTMLوSVG. - أحداث التنشيط: عند بدء التشغيل (
*). - هل الموارد محسّنة: لا.
- حجم الملف: 2.5 ميجابايت.
- وقت التنشيط على نظامي: 2513 مللي ثانية.
- مجموعة الاختبارات: نعم. اختبارات أساسية.
- صيانة نشطة: لا. آخر التزام (
commit) كان قبل عام. يبحث مؤلف الإضافة عن مُصان جديد. - إضافات بديلة: لم أجد بديلاً مباشراً!
عندما تعمل، فإنها إضافة مريحة للاستخدام. لكن الأداء ضعيف ولم تعد تُصان. أوصي بأن تصبح أنت المصان الجديد وتقوم بتحسينها، أو أن تبحث عن إضافة أخرى للقيام بالمهمة.
التقييم: 5/10
GitLens
يساعد GitLens في تصور تأليف الكود واستكشاف مستودعات Git.
- المؤلف:
Eric Amodio. - عدد التثبيتات: 6.5 مليون.
- تقييم السوق: 4.86/5 (387 تقييماً).
- الميزات الأساسية: تصور تأليف الكود بلمحة. عروض غنية للمستودعات في الشريط الجانبي.
- أحداث التنشيط: عند بدء التشغيل (
*). - هل الموارد محسّنة: نعم.
- حجم الملف: 1.5 ميجابايت.
- وقت التنشيط على نظامي: 35 مللي ثانية.
- مجموعة الاختبارات: لا.
- صيانة نشطة: نعم، لكن النشاط الأخير منخفض. آخر التزام كان قبل 4 أشهر.
- إضافات بديلة: لا يوجد.
GitLens فكرة جيدة ويمكن أن تكون مفيدة للحصول على رؤى حول قاعدة الكود. إنها مكتوبة بشكل جيد وأداؤها ممتاز. لقد استخدمت فقط ميزة "blame annotations"، ولكن هناك الكثير من الميزات وخيارات التكوين (135 إعداداً فردياً!). توجد إعدادات لتمكين كل ميزة، وهو نهج جيد جداً. يمكنك تشغيل وإيقاف codelens بسهولة. كان هناك ركود في النشاط مؤخراً. لا أعرف ما إذا كان هذا وضعاً مؤقتاً أم لا. لذا، من الصعب معرفة مدى جودة دعم الإضافة في المستقبل. يوفر المؤلف تفاصيل لدعمه.
التقييم: 9/10
Vetur
دعم لغة Vue.
- المؤلف:
Pine Wu. - عدد التثبيتات: 5.6 مليون.
- تقييم السوق: 4.5/5 (117 تقييماً).
- الميزات الأساسية: تمييز بناء الجملة (
Syntax highlighting). إكمال تلقائي ذكي (Intellisense). تنسيق الكود (Code Formatting). - أحداث التنشيط:
onLanguage:vue. - هل الموارد محسّنة: لا.
- حجم الملف: 70.6 ميجابايت.
- وقت التنشيط على نظامي: 252 مللي ثانية. ومع ذلك، إحصائية "
Finish Activate" هي 3943 مللي ثانية! - مجموعة الاختبارات: نعم.
- صيانة نشطة: نعم.
- إضافات بديلة: لا يوجد بديل واضح. يمكن تنسيق الكود باستخدام
Prettier.
Vetur هي الإضافة الأساسية لتطوير تطبيقات Vue في VS Code. تمييز بناء الجملة، الإكمال التلقائي الذكي، والمراجع عند التمرير (hover references) رائعة لتطوير Vue. حجم الإضافة ضخم جداً. الأداء متقلب قليلاً. يستغرق الأمر 4 ثوانٍ على الأقل على جهازي لإنهاء التنشيط، وهو أطول بكثير من ميزات لغة JavaScript المدمجة. هناك أيضاً تأخير ملحوظ في الإكمال التلقائي لبناء جملة JavaScript. يعمل المطورون على تجميع الإضافة حالياً في هذه المشكلة، لذا نأمل أن يكون هناك تحسن في الأداء قريباً. 🤞
التقييم: 7/10
Settings Sync
Settings Sync يقوم بمزامنة الإعدادات باستخدام GitHub Gist.
- المؤلف:
Shan Khan. - عدد التثبيتات: 2 مليون.
- تقييم السوق: 4.61/5 (638 تقييماً).
- الميزات الأساسية: مزامنة الإعدادات.
- أحداث التنشيط: عند بدء التشغيل (
*). - هل الموارد محسّنة: نعم.
- حجم الملف: 1.2 ميجابايت.
- وقت التنشيط على نظامي: 2513 مللي ثانية.
- مجموعة الاختبارات: نعم.
- صيانة نشطة: لا. آخر التزام كان قبل عام.
- إضافات بديلة: هذه ميزة مدمجة في
VS Code.
كانت هذه إضافة متميزة. مزامنة إعدادات المحرر بالكامل عبر الأجهزة مفيدة للغاية. منذ يوليو 2020، أصبحت نفس الوظيفة ميزة مدمجة في VS Code لهذا الغرض بالذات. الفرق الرئيسي هو أن هذه الإضافة تحفظ إعداداتك في gist، والذي لديك خيار مشاركته مع الآخرين أيضاً. وقت التنشيط بطيء جداً. هل هذا البطء مبرر؟ من الصعب تحديد ذلك. تخميني هو أن الميزة المدمجة ستقوم بعمل أفضل في النهاية لأنها تحظى بدعم مايكروسوفت. يبدو أن الإضافة لم تعد مدعومة.
التقييم: 8/10
Markdown All in One
Markdown All in One تلبي الكثير من احتياجاتك في Markdown.
- المؤلف:
Yu Zhang. - عدد التثبيتات: 1.7 مليون.
- تقييم السوق: 4.8/5 (90 تقييماً).
- الميزات الأساسية: تحرير بنمط التبديل (
Toggle-style editing). جدول المحتويات (Table of contents). - أحداث التنشيط:
onLanguage:markdown،onCommand:markdown.extension.printToHtmlBatch،workspaceContains:README.md. - هل الموارد محسّنة: نعم.
- حجم الملف: 4.1 ميجابايت.
- وقت التنشيط على نظامي: 195 مللي ثانية.
- مجموعة الاختبارات: نعم.
- صيانة نشطة: نعم.
- إضافات بديلة:
Marky Markdown.
إنها إضافة قوية وأداؤها ممتاز. تحتوي على الكثير من الميزات لذوقي الشخصي. بالنسبة للكثيرين، من الجذاب أن يكون لديهم كل ما قد يرغبون فيه في إضافة واحدة. يبدو لي أن حدث التنشيط workspaceContains:README.md هو تضمين غير ضروري. معظم مشاريعي تحتوي على ملف README، لكنني نادراً ما أقوم بتحريرها. لذا بالنسبة لي، هذا يشبه جعل الإضافة نشطة دائماً. منطق جدول المحتويات غير عادي بعض الشيء. كانت لديه بعض المشاكل مع الإيجابيات الكاذبة (false positives) في الماضي. لا أعرف ما إذا تم حلها بالكامل. يمكن تقليل حجم ملف الإضافة عن طريق استبعاد لقطات شاشة README من حزمة الإضافة.
التقييم: 8/10
نصائح عامة لتحسين أداء VS Code
استخدم نظام تشغيل 64 بت
إذا قمت بالترقية إلى إصدار 64 بت من نظام التشغيل، يمكنك توسيع مقدار الذاكرة الافتراضية (VM) المتاحة لـ VS Code من 2 جيجابايت إلى 4 جيجابايت. هذا يمكّن VS Code من التعامل مع أعباء عمل أكبر بكثير عندما تكون الذاكرة الافتراضية مطلوبة.
تعطيل استعادة حالة المشروع عند بدء التشغيل
يقوم VS Code تلقائياً باستعادة حالة المشروع من الجلسة السابقة. هذا يمكن أن يطيل الأوقات التي يستغرقها تحميل المشروع. يمكنك تعطيل بعض إعدادات الاستعادة لتسريع وقت التحميل:
Workbench › Editor: Restore View State: ممكّن افتراضياً.Files: Restore Undo Stack: ممكّن افتراضياً.Workbench: Startup Editor: يتحكم في المحرر الذي يظهر عند بدء التشغيل. الافتراضي هوwelcome page. يمكنك تعيين هذا إلىnoneلمنع ظهور أي محرر عند بدء التشغيل.
تعطيل الميزات المكلفة التي تؤثر على أداء التحرير
بعض الميزات، على الرغم من فائدتها، يمكن أن تستهلك موارد كبيرة وتؤثر على سرعة المحرر:
Minimap:Editor › Minimap: Enabled. ممكّن افتراضياً.Word wrap:Editor: Word Wrap. معطل افتراضياً.CodeLens:Editor: CodeLens. ممكّن افتراضياً.Format on Save:Editor: Format On Save. معطل افتراضياً.Format on Paste:Editor: Format On Paste. معطل افتراضياً.
تعطيل الإضافات لمساحة عمل معينة
يمكنك تعطيل إضافة لمساحة عمل (مشروع) معينة. من المرجح أن ترغب في القيام بذلك للإضافات التي تعمل دائماً. على سبيل المثال، لمشروع Java، لن تحتاج إلى ESLint! يمكنك أيضاً اتباع النهج المعاكس: تعطيل إضافة عالمياً، وتمكينها فقط لعدد محدد من المشاريع.

إنشاء مجموعات إضافات
يمكنك تحديد دليل بديل للإضافات من سطر الأوامر كما يلي:
code --extensions-dir <dir>
لذا، إذا كنت ترغب في استخدام مجموعات مختلفة من الإضافات، يمكنك ذلك. يمكنك إضافة اختصار لسطح المكتب لهذا الغرض، أو اسم مستعار (alias) لتشغيله بانتظام من سطر الأوامر. شيء واحد يجب أن تضعه في الاعتبار هو المزامنة. إذا قمت بمزامنة إضافاتك بين الأجهزة، فقد ترغب في استبعاد بعض الإضافات من المزامنة. وإلا، فقد تفسد مجلدك عن طريق الخطأ عند التبديل. من الناحية المثالية، لا يجب أن تحتاج إلى القيام بذلك.
تعطيل جميع الإضافات لجلسة واحدة
يمكنك بدء تشغيل VS Code مع تعطيل جميع إضافات المستخدم من سطر الأوامر. هذا مفيد جداً لتشخيص المشاكل أو للحصول على تجربة خالية من التشتت!
code --disable-extensions
استكشاف أخطاء الأداء وإصلاحها
تجربة بطء أو شاشة فارغة
يواجه VS Code أحياناً مشاكل مع تسريع الأجهزة لوحدة معالجة الرسوميات (GPU) على بعض الأنظمة. يمكنك معرفة ما إذا كانت هذه هي الحالة عن طريق تعطيل تسريع GPU:
code --disable-gpu
لتعيين هذا بشكل دائم، اتبع الخطوات التالية:
- افتح لوحة الأوامر (
Command Palette) (Ctrl+Shift+P). - شغل الأمر
Preferences: Configure Runtime Arguments. - سيفتح هذا الأمر ملف
argv.jsonلتكوين وسائط وقت التشغيل (runtime arguments). قد ترى بعض الوسائط الافتراضية هناك بالفعل. - أضف
"disable-hardware-acceleration": true. - أعد تشغيل
VS Code.
ظهور رسالة "[Unsupported]" تشير إلى تلف التثبيت
يقوم VS Code بإجراء فحص في الخلفية عند بدء التشغيل للتحقق مما إذا كنت قد قمت بتغيير أي من ملفات المصدر الخاصة به. إذا كانت هذه هي الحالة، فسترى النص [Unsupported] في شريط العنوان. أحد أسباب هذه المشكلة يمكن أن يكون برنامج مكافحة الفيروسات. قد يكون VS Code قد تم عزله عن طريق الخطأ، أو تم حذف ملفات منه بواسطة برنامج مكافحة الفيروسات (انظر المشكلة رقم 94858). تحقق من إعدادات برنامج مكافحة الفيروسات الخاص بك لمنع ذلك. لحل هذه الحالة، يمكنك إعادة تثبيت VS Code. سيؤدي هذا إلى استبدال الملفات المعدلة وإسكات التحذير.
الخلاصة التقنية
لا ينبغي أن تضطر إلى التنازل عن الأداء للحصول على الميزات التي تحتاجها. النهج الأكثر عملية هو إضافة الإضافات التي تحتاجها بشكل تدريجي. قم ببعض البحث في كل مرة واختبر الإضافة. وقبل أن تدرك ذلك، سيكون لديك مجموعة رائعة من الإضافات التي تعمل بكفاءة عالية. إن فهم كيفية تأثير الإضافات على أداء VS Code، وكيفية تدقيق هذا الأداء، يمنحك القوة للتحكم في بيئة التطوير الخاصة بك وتحسينها باستمرار. تذكر، المحرر السريع هو محرر منتج.