أعلن المنجمون عن إصدار أسبوع في JetBrains ، وقد تضاعف عدد مشاركات المدونة ثلاث مرات! في الواقع ، هذا أيضًا منشور نشر ، لذلك إذا شاركت في EAP ، فأنت تعرف كل شيء بالفعل.
إذا لم يكن الأمر كذلك ، تأكد من التحقق من ذلك ، لأنه في هذا الإصدار ليس لدينا فقط تحليل تغطية الشفرة مع الاختبارات وعرض الشفرة المفككة ، ولكن أيضًا دعم DSL لروبي والعديد من الأشياء الأخرى المثيرة للاهتمام!

سريع
دعم اللغة
بدأت بدعم Swift 5.1:
- SE-0242 : توليف القيم الافتراضية للمهيئ ذي العضو.
- SE-0254 : اشتراكات ثابتة وفئة.
- SE-0068 : توسيع Swift
Self
لأعضاء الفصل وأنواع القيم. - SE-0260 : تطور المكتبات من أجل ABIs المستقرة.
- SE-0258 : أغلفة الممتلكات
بينما في هذه العملية ، يمكن الاطلاع على درجة الاستعداد هنا .
رمز قابلة للطي
هل إغلاق قابلة للطي:

الخلفية
لا يمكنك فقط أخذ سطر من التعليمات البرمجية وإبرازها دون معرفة الكيانات المحددة التي نتعامل معها. لذلك ، تسليط الضوء الكامل لا يمكن تحقيقه إلا بعد الإنشاء الكامل للذاكرة المؤقتة. لكننا نعرف الكلمات الأساسية للغة مقدمًا ويمكننا تسليط الضوء عليها - الآن يتم تمييزها في Swift ، حتى إذا لم تنتهي الفهرسة باستخدام التخزين المؤقت:

تعداد عنصر الجيل
نواصل توسيع نطاق " إنشاء من الاستخدام" : يمكنك الآن إنشاء عنصر تعداد من استخدامه في التعليمات البرمجية ، وذلك ببساطة عن طريق الضغط على ⌥⏎:

استخدام البحث
يبحث البحث عن استخدامات في AppCode عن تصميمات تعليمات برمجية محددة (المتغيرات والفئات والوظائف وأساليب الفصل وما إلى ذلك) - وهذا يتيح لك تضييق نطاق البحث مقارنة بالنص الكامل. حتى وقت قريب ، بالنسبة لـ Swift ، عرضنا فقط مكان استخدام تصميم معين. في 2019.2 ، قمنا بتطبيق مجموعة من الاستخدامات حسب النوع ، لذلك يمكننا الآن أن نفهم بسرعة أيضًا كيف نستخدم متغيرًا أو دالة أو فئة:

دمج خطوط الكود
لا شيء خاص ، يمكنك الآن لصق إعلان وتهيئة المتغير باستخدام Join Lines ( ⌃⇧J
):

واردات السيارات
هناك مثل هذا النظام بناء - BUCK . يستخدم نظام إنشاء BUCK افتراضيًا خرائط الرأس ، التي أضفنا دعمًا لها قبل عام ، ولكن لم يكن لدينا وقت لرميها في واردات السيارات. نتيجة لذلك ، بعد الضغط على ⌥⏎ ، تم إدخال مسار طويل إلى الرأس ، وهو أمر غير ضروري على الإطلاق. الآن هذا لا يحدث ، الآن كل شيء صحيح.
التصحيح
عرض رمز تفكيكها
قام زملاؤنا من CLion بتعيين تعيين رمز مفكك لل LLDB في الإصدار 2019.1 ، وقمنا بإعادة استخدامه بشكل خلاق في هذا الإصدار:

إكمال تلقائي
شيء مفيد آخر تم إنشاؤه أصلاً في CLion هو الإكمال التلقائي لأوامر مصحح الأخطاء في وحدة التحكم LLDB بالضغط على ⇥ (كما في وحدة التحكم العادية):

اختبار تحليل رمز التغطية
فعلت أخيرا ، وحسنا. لقد حددنا تكوين الاختبار ، ثم انقر فوق Run With Coverage ، واتركه لإنهاء الاختبارات ، ونحن سعداء بالنتيجة:

إلى اليسار في المحرر توجد نتائج التغطية:

بالضغط على مؤشر اللون ، يتم عرض لوحة مع عدد المكالمات في هذا القسم من الكود والإجراءات المفيدة:

يتم عرض إحصاءات التغطية لفترة وجيزة في عرض المشروع ، وبمزيد من التفصيل في نافذة منفصلة:

بناء وتشغيل وتصحيح واختبار أثناء الفهرسة
فهرسة وبناء مخابئ ليست عملية سريعة ، وخاصة في المشاريع الكبيرة وخاصة الفهرسة الأولى. ومع ذلك ، يمكنك القيام ببعض الإجراءات مع المشروع أثناء استمراره ، على سبيل المثال ، إنشاء أو تشغيل التطبيق.
لفترة طويلة ، تم حظر هذه الإجراءات بالنسبة لنا ، لأنه من أجل الاستخدام العادي لتكوين الإطلاق ، كان من الضروري أولاً إنشاء ذاكرة تخزين مؤقت على المشروع. في الواقع ، هذا ليس ضروريًا للغاية ، لذلك ، في الإصدار 2019.2 ، قمنا بفرض قيود حاسمة على إنشاء تكوينات التشغيل من التخزين المؤقت ، والآن يمكنك تجميع المشروع أو تشغيله أو تصحيحه أو اختباره فور افتتاحه:

التكامل
TextMate البرنامج المساعد
غالبًا ما يُطلب منهم إضافة دعم لبعض اللغات التي ليست هي اللغة الرئيسية لـ AppCode. في بعض الأحيان نقوم بذلك إذا أدركنا أن العديد من المستخدمين يحتاجون إليه حقًا ، لذلك في مرحلة ما سحبنا جزءًا من WebStorm لأنفسنا ، حتى يكون المطورون على React Native و PhoneGap مرتاحين للعمل مع HTML / CSS / JavaScript.
ثم جاء المكوّن الإضافي لـ Markdown ، لأن أي README يحتاج إلى أن يكون قادرًا على التحرير بسهولة وبسرعة. هناك أيضًا مكون إضافي لبرنامج AppleScript تم إنشاؤه بواسطة أحد الزملاء لمجرد أنه مهتم بكتابة دعم اللغة.
ولكن لا يمكنك حشر الضخامة ، وبالتالي لا يمكننا تطبيق الدعم لجميع اللغات. على سبيل المثال ، في تطوير iOS ، غالبًا ما يتم العثور على DSLs المصنوعة على Ruby (CocoaPods و Fastlane configs). في البداية ، بدا الطلب وكأنه "تشغيل دعم Ruby بأكمله" ، ولكن في الواقع لا يتم تحرير هذه التكوينات في كثير من الأحيان ، ولا يبدو سحب نصف RubyMine بسببها أمرًا معقولًا. في الوقت نفسه ، عدم وجود دعم ليس جيدًا أيضًا.
في هذا الإصدار ، قام الزملاء من WebStorm بتضمين التثبيت الافتراضي مكونًا إضافيًا يدعم حزم TextMate ، مما يوفر مجموعة بسيطة من اللغات لإبراز وإنجاز تلقائي. لقد اتبعنا مثالهم ، والآن لدينا أيضًا هذا:

نظرًا لبعض التناقضات في دعم Fastlane من جانب هذه الحزم نفسها ، يظل مبدأ التكوين لـ Ruby DSL كما هو (ومع ذلك ، يمكنك المساعدة في تصحيح هذا الموقف).
شل البرنامج النصي المساعد
البرامج النصية شائعة في المشاريع ، لذلك قمنا بتضمين دعم لتحريرها:

نافذة الالتزام
بتعبير أدق ، لم تعد هناك نافذة منفصلة - أصبحت الآن جزءًا من علامة تبويب التغييرات المحلية:

هذه هي النهاية. اكتب جميع الأسئلة والاقتراحات هنا في التعليقات - سنكون سعداء بالإجابة!
فريق AppCode