CLion 2019.1: ClangFormat ، إبراز الكود من خلال Clangd ، عرض الذاكرة ، الدعم الأولي للميكروكونترولر

مرحبا يا هبر!

لدى فريق CLion الكثير من الأخبار الجيدة - لقد انتقل بنجاح جزء من فريق سانت بطرسبرغ ، مع زملائه الآخرين ، إلى مكتب جديد ، انضم إلينا مطورو رائعون ، والأهم من ذلك ، في اليوم الآخر ، أصدرنا أول تحديث كبير هذا العام ، CLion 2019.1 !

ذهب العمل في الإصدار الجديد على عدة جبهات في وقت واحد:

  • تحسينات على دعم لغة C ++ : تسليط الضوء على الشفرة من خلال Clangd ، والتحسينات في إعادة الاستخراج وإعادة التسمية ، التحقق من إمكانية إعلان وظيفة عضو في الفصل ثابتة.
  • المزيد من الخيارات في أسلوب كتابة التعليمات البرمجية : التكامل مع ClangFormat ، ودعم أنماط التسمية المتغيرة في C / C ++ ، ودعم أنماط مختلفة لحراس الرأس.
  • الميزات الجديدة والتحسينات من مصحح الأخطاء : عرض حالة الذاكرة - عرض الذاكرة - للمؤشرات ، وعرض رمز تفكيكها في حالة LLDB ، وتسريع عمل التصحيح خطوة بخطوة.
  • كليون للميكروكونترولر ، الخطوات الأولى.
  • القدرة على إنشاء أهداف بناء وتكوينات لإطلاق / تصحيح الأخطاء في CLion ، والتي لا ترتبط بأي حال من الأحوال بنموذج المشروع.
  • العمل مع لغات البرمجة الأخرى بأحرف سلسلة في C / C ++.
  • سمات مرئية جديدة وميزات النظام الأساسي الأخرى.

إطلاق CLion 2019.1

اقرأ المزيد عن هذه الابتكارات وغيرها أدناه. لتجربة ميزات وتحسينات جديدة ، قم بتنزيل الإصدار المجاني لمدة 30 يومًا من CLion من موقعنا على الويب .

دعم لغة C ++


Clangd


كما تعلمون بالفعل ، يوجد في CLion أداتان لدعم لغة C ++ - واحدة خاصة بها بالكامل ، والثانية مبنية على Clangd. انهم يعملون معا ، واستكمال بعضها البعض وتبادل المعلومات اللازمة. في الوقت نفسه ، إذا سمح الأداء ومعايير الاكتمال الوظيفي ، فإننا نحاول الآن نقل الأدوات الذكية للعمل مع رمز C ++ في CLion إلى أداة تستند إلى Clangd. نحن لا نتحدث عن إعادة تنظيم الكود حتى الآن ، ولكن تم تسليط الضوء على الكود في 2019.1 بالفعل على أساس Clangd. هذا تحسن كبير في استجابة المحرر.

بعد قليل من الإصدارات ، قمنا بتحويل CLion إلى أداة تستند إلى Clangd عند عرض الأخطاء في المحرر. الآن يظهر نص الخطأ بمزيد من التفاصيل. هذا مفيد ، على سبيل المثال ، عند تصحيح الأخطاء المتعلقة بزيادة التحميل على الوظائف:

أخطاء رنين

يضاف إلى ذلك القدرة على حساب موضع الإصلاح المحتمل (الإصلاح السريع) أيضًا من خلال Clangd. يتم توفير الإصلاح نفسه مباشرة بواسطة أداة CLion الخاصة.

مجال آخر مثير للاهتمام في عملنا هو كتابة اختبارات جديدة على أداة تحليل رمز Clangd. بدءًا من CLion 2019.1 ، سيخبرك فحص جديد لرمز C ++ بموعد إعلان وظيفة عضو في الفصل ثابتة:

فحص عضو ثابت

بالمناسبة ، يمكن العثور على إدارة إعدادات هذه الأداة البديلة في Clangd في الإعدادات / التفضيلات | اللغات والأطر | C / C ++ | Clangd.

أداة تحليل رمز مخصص


تعد إنتاجية المحرر واحدة من أهم أولوياتنا. بالإضافة إلى العديد من التحسينات الصغيرة ، تجدر الإشارة في هذا الإصدار إلى تحسن كبير في وقت الفهرسة الأولي للمشروع. لا يحدث هذا دائمًا ، ولكن في الحالات التي تستخدم فيها نفس المكتبات لمشاريعك: يمكن لـ CLion أن تلاحظ ذلك تلقائيًا وتعيد استخدام رموز هذه المكتبات لمشروع مفتوح جديد يستخدمها. عندما يتعلق الأمر STL أو Boost ، فإن التحسينات ملحوظة للغاية!

تتمثل خططنا لهذا العام في زيادة دقة ودقة إعادة بيع المباني الخاصة بنا لـ C ++. لقد بدأنا بأكثرها أساسية - إعادة تسمية واستخراج. بالنسبة إلى Extract ، قمنا بإصلاح العديد من الحالات التي تبين أن نتيجة إعادة بيعها غير صحيحة بسبب مؤهلات مساحة الاسم التي تم اعتبارها بشكل غير صحيح (على سبيل المثال ، std:: ، تخصص القوالب وأسماء الأنواع التي تم تجاوزها (الأسماء المستعارة للنوع).

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

إعادة تسمية الطبقة

وبالمناسبة ، سأتحدث بعد قليل عن القدرة على تعيين أنماط حراس الرأس. لذلك ، إذا كان حارس الرأس المستخدم في الملف يتبع قالب النمط المحدد وفي نفس الوقت اسم الملف المعاد تسميته ، فسيقوم CLion أيضًا بتحديث حماية الرأس!

أساليب الترميز


في الإصدار 2019.1 ، أضفنا القدرة على التبديل إلى ClangFormat لتنسيق التعليمات البرمجية في CLion. لا يشمل هذا الإجراء التنسيق نفسه فقط ( Ctrl+Alt+L على نظام التشغيل Windows / Linux أو ⌥⌘L على نظام التشغيل ⌥⌘L ) أو التنسيق التلقائي عند طباعة التعليمات البرمجية ، ولكن أيضًا الالتزام المسبق بالتنسيق عند إنشاء رمز باستخدام أدوات CLion ، عند إعادة بناء وتطبيق الإصلاحات (إصلاحات سريعة). بشكل عام ، أينما يقوم IDE بتنسيق الرمز ، سيتم استدعاء ClangFormat.

يمكنك التبديل إلى ClangFormat على مستوى العالم - في الإعدادات / التفضيلات | محرر | رمز النمط. ويمكنك فقط لمشروع معين. علاوة على ذلك ، إذا تم العثور على ملف تكوين .clang في المشروع ، فستعرض CLion التبديل إلى ClangFormat باستخدام ملف التكوين هذا:

ClangFormat

يمكن العثور على مزيد من التفاصيل على مدونتنا (باللغة الإنجليزية).

تسمية المتغيرات والأنواع والشخصيات الأخرى في التعليمات البرمجية هي مشكلة معقدة ، وأحيانًا فلسفية. ولكن في عالم البرمجة (لتحسين قابلية قراءة التعليمات البرمجية) ، تم اختراع أساليب التسمية لفترة طويلة. هناك نمط LLVM ، وهناك كيو تي ، وهناك جوجل. لذلك ، في إعدادات إعدادات CLION / تفضيلات | محرر | رمز النمط | يحتوي C / C ++ الآن على علامة تبويب جديدة - اصطلاح التسمية ، حيث يمكنك اختيار أحد الأساليب المحددة مسبقًا أو تخصيصها الخاصة بك عن طريق تعيين نمط التسمية لأنواع مختلفة من الأحرف (وحدات الماكرو والوظائف العامة وأعضاء الفصل والمعاملات والمتغيرات المحلية وما إلى ذلك). سيتم استخدام الاصطلاح المحدد في جميع إجراءات IDE - إنشاء الكود ، وإعادة التنظيم ، والتصحيح التلقائي ، وما إلى ذلك. بالإضافة إلى ذلك ، إذا كنت ترغب في مراقبة تنفيذ قواعد التسمية بدقة أكبر ، فيمكنك تمكين الاختيار غير المتسق الجديد للتسمية ، والذي سيظهر أسماء لا تتطابق مع القواعد ، و سيقترح خيار إعادة تسمية:

تسمية الاتفاقية

في نفس علامة التبويب ، يمكنك العثور على إعدادات نمط حراس الرأس التي ذكرتها أعلاه:

حراس الرأس

بالمناسبة ، إذا كنت تفضل استخدام #pragma ، #pragma فقط بضبط القالب لملفات الرأس الجديدة في الإعدادات / التفضيلات | محرر | ملف ورمز قوالب.

المصحح


عرض عرض الذاكرة


لقد حصلنا أخيرًا على عرض الذاكرة في المصحح. في الإصدار الحالي ، يمكنك رؤية الذاكرة حسب المؤشر: ما عليك سوى النقر فوق أي نقطة في لوحة Variables أثناء تصحيح الأخطاء وطلب عرض الذاكرة ( Ctrl+Enter على نظام Windows / Linux ، ⌘Enter على macOS). وإذا كانت علامة تبويب عرض الذاكرة مفتوحة أثناء تصحيح الأخطاء خطوة بخطوة ، فبإمكانك رؤية التغييرات المميزة في الذاكرة فيه:

عرض الذاكرة

من المخطط بالفعل إجراء تغييرات في واجهة المستخدم / UX للإصدار التالي ، ولكن أولاً أود جمع تعليقات من المستخدمين. لذا اكتب!

التفكيك في حالة LLDB


يتم الآن تقسيم رمز المجمّع حسب الوظيفة ، والأهم من ذلك ، أنه لا يظهر فقط في حالة GDB ، ولكن أيضًا لـ LLDB!

مفكك LLDB

ومع ذلك ، تجدر الإشارة إلى أن شفرة المجمّع لا تزال تظهر فقط في الحالات التي لا توجد فيها رموز مصدر للدالة. ما يسمى تفكيك على وضع الطلب غير معتمد حتى الآن.

خطوة بخطوة أداء التصحيح


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

كتم المتغيرات

كليون للميكروكونترولر


Ilya Motor ( elmot ) كتب بالفعل هنا على Habré عن المكون الإضافي الخاص به لتكامل CLion مع STM32CubeMX ودعم مصحح أخطاء OpenOCD. في نهاية العام الماضي ، انضم إليا إلى فريقنا وتمكّن بالفعل من تحديث المكون الإضافي بشكل كبير ونقله داخل CLion.

التكامل Cubemx

يمكن العثور على منشور مدونة كبير ومفصل على المكون الإضافي المحدث على مدونتنا . سوف أصف هنا أهم شيء يمكن القيام به الآن:

  • في مربع الحوار "مشروع جديد" ، يمكنك إنشاء مشروع STM32CubeMX ( .ioc ).
  • مباشرة من CLion ، قم بتشغيل STM32CubeMX للمشروع لتحديث إعدادات متحكم وإنشاء رمز للمشروع.
  • ستقوم CLion بإنشاء ملف CMake الصحيح للعمل مع هذا المشروع.
  • سيقترح CLion اختيار ملف تكوين للأجهزة (تهيئة اللوحة).
  • لتصحيح الأخطاء باستخدام OpenOCD ، تحتاج إلى إنشاء تكوين من النوع الخاص "OpenOCD Download and Run". بالنسبة لمشروع STM32CubeMX ، ستقوم CLion بإنشاء واحدة بمفردها. بعد تحديد جميع الإعدادات ، يمكنك تصحيح الأخطاء على متحكم مباشرة من CLion!

لدى Ilya العديد من الخطط الطموحة ، لذلك ملاحظاتك مهمة للغاية بالنسبة لنا. لذلك ، إذا كنت مهتمًا بالتطوير للأنظمة المدمجة في CLion ، فإننا ننتظر منك التعليقات!

تصميم أهداف مستقلة وتكوينات


منذ بعض الوقت ، تم توسيع قائمة نماذج التصميم المدعومة في CLion بواسطة Gradle C ++ وقاعدة بيانات التجميع. كانت هناك مشكلات في هذا الأخير ، لأن التنسيق لا يتضمن معلومات حول تجميع المشروع بأكمله ، لذلك لم يكن التجميع ، ولا إطلاق ، أو تصحيح المشروع في حالة قاعدة بيانات التحويل البرمجي ممكنة. نعم ، وفي حالة نموذج مشروع CLion المشهور ، قد ترغب في بعض الأحيان في الحصول على هدف يتم تجميعه ببساطة بواسطة فريق ما في المحطة.

الآن لمثل هذه الحالات ، هناك "أهداف مخصصة" (إعدادات / تفضيلات | إنشاء ، تنفيذ ، نشر | أهداف بناء مخصص) وتكوينات تشغيل / تصحيح مخصص (تشغيل | تحرير التكوينات ...). في حالة الهدف ، تحتاج إلى تعيين معلمات الأدوات الخارجية (الأدوات الخارجية) ، والتي سيتم استخدامها عند تجميع وتنظيف المشروع:

أهداف مخصصة

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

التكوين مخصص

اللغة المحقونة


هل لديك سلسلة أحرف في التعليمات البرمجية الخاصة بك تحتوي على استعلام SQL أو رمز HTML أو تعبير عادي؟ إذا كان الأمر كذلك ، فمن المؤكد أنك ترغب في إبراز الكود داخل الحرفي على الأقل وفقًا لأصله. الان ممكن! يمكنك تضمين لغة أخرى مؤقتًا في سلسلة حرفية عن طريق الضغط على Alt+Enter وتحديد خيار "Inject language or reference". الآن نختار اللغة التي نحتاجها ، وفي الآونة الأخيرة ، في السلسلة الحرفية المعتادة ، يظهر تسليط الضوء على اللغة المحددة ، وكذلك جميع الإجراءات الخاصة. المثال الأكثر وضوحا هو التعبيرات العادية والقدرة على التحقق من السلاسل للتأكد من توافقها مباشرة في IDE:

اللغة المحقونة

وأكثر من ذلك بكثير


عادةً لا يتم إنشاء المنتجات في JetBrains بواسطة فريق صغير واحد ، ولكن بواسطة فريق النظام الأساسي ذي الصلة بأكمله. لذلك ، تحصل CLion على ميزات من IntelliJ IDEA و WebStorm و AppCode و DataGrip و PyCharm ، إلخ. في هذا الإصدار ، تتضمن هذه التحسينات ما يلي:

  • عرض جميع الأماكن في رمز المشروع حيث قام المطور بإجراء بعض التغييرات أو مجرد قراءة التعليمات البرمجية - المواقع الحديثة المنبثقة ( Shift+Ctrl+E على Win / Lin ، ⇧⌘E على ⇧⌘E ).
  • إنشاء سمات جديدة لـ IDE ، بالإضافة إلى الإضاءة القياسية والظلام (Darcula) والتباين (High-Contrast). يمكن العثور على أمثلة لهذه المكونات الإضافية وبرنامج تعليمي خطوة بخطوة في وثائقنا .
  • يتحدث عن الإضافات. إذا كتبت في Rust ، فربما تعلم أن هناك مكون إضافي IntelliJ Rust. في CLion ، يتضمن إصدارها دعم الشحن ومصحح الأخطاء. ومع الإصدار الجديد ، يحتوي المكون الإضافي على أدوات لإنشاء ملفات تعريف التعليمات البرمجية على Linux و macOS ، والقدرة على الإكمال التلقائي للحروف التي لم يتم استيرادها بعد ، بالإضافة إلى تحسينات أخرى.

هذا كل شيء الآن. شكرا لك إذا قرأت حتى النهاية!

عرض


حسنًا ، والفيديو التقليدي حول الميزات الجديدة في CLion 2019.1 (باللغة الإنجليزية):


أسئلة ، رغبات ، تقارير الأخطاء والأفكار فقط تعبر عن التعليقات! سنكون سعداء للرد.

فريق JetBrains CLion الخاص بك
محرك لتطوير

Source: https://habr.com/ru/post/ar445646/


All Articles