CLion News: إصدار 2020.1 ، IDE لمدة خمس سنوات ، سؤال وجواب عبر الإنترنت

مرحبا يا هابر!

أريد أن أقول اليوم أنه من الصعب اختيار من أين أبدأ. لذا أولاً ، سأحاول بإيجاز كل أهم:

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


  2. بالأمس ، حدث أول إصدار كبير للمنتج هذا العام - CLion 2020.1 . في ذلك ، دعمنا لهجة CUDA ، وأعاد كتابة تحليل Dataflow إلى Clang ، وعلمنا IDE للعمل مع جامعي Clang-cl و IAR ، كما قمنا أيضًا بإجراء العديد من التحسينات والتصحيحات الأخرى.
  3. على مدى الأشهر القليلة الماضية ، أصبح فريقنا حزينًا جدًا بدون مؤتمرات ومعارض ذات صلة ، حيث يسعدنا دائمًا أن نكون في مواقف الشركة ونتواصل كثيرًا مع مستخدمينا والمجتمع ككل. لذلك ، قررنا تنظيم جلسة أسئلة وأجوبة عبر الإنترنت مع الفريق - جلسة CLION Ask Me Anything (AMA) . ستعقد الجلسة يوم 7 مايو في الوقت الحقيقي ، ويلزم تحديد موعد أولي. انضم واسأل أي أسئلة حول المنتج!

الآن لنتحدث أكثر عن كل هذه الأحداث.

كليون - خمسة!


إن نمو الأطفال أمر يثير الدهشة دائمًا وغالبًا ما يكون غير متوقع للآباء. القصة هي نفسها مع المنتج - يبدو أننا بالأمس فقط أطلقنا الإصدار المبكر والعد التنازلي للإصدار 1.0 ، واليوم نحتفل بالفعل بموعد مستدير. لدى CLion الآن أكثر من 200 ألف مستخدم شهريًا ، بما في ذلك فرق من شركات مثل BMW و NASA و Tencent و Tesla وغيرها الكثير ، وبالطبع التعاون مع Google و Android Studio.

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

أدوات ICPC النهائي

الإثارة مع كل إصدار جديد ، المسؤولية تجاه عدد كبير من مستخدمينا ، وحدة الفريق الذي يقوم بعمل رائع - كل هذا يربكنا ، ويسعدنا مشاركة أول ذكرى سنوية صغيرة لنا مع مجتمع هبر بأكمله! نأمل أن تكون قد استمتعت بالفيلم ؛)

كليون 2020.1


قد لا تكون الأكبر على مقياس فترة الخمس سنوات الماضية ، لكننا بالتأكيد أصدرنا إصدارًا هامًا أمس. لنتحدث عن أهم التغييرات:

  • دعم لهجة CUDA.
  • للمطورين المضمنين ، دعم مترجم IAR والمكونات الإضافية للتكامل مع PlatformIO.
  • التكامل المحدث مع أدوات Clang - ترحيل DFA إلى Clangd ، وتحسين الإكمال التلقائي ، والعمل عن قرب مع Clang-Tidy و ClangFormat.
  • للمطورين على Windows - دعم مترجم Clang-cl و مصحح الأخطاء الافتراضي.
  • قيم المعلمات الافتراضية في تغيير إعادة هيكلة التوقيع.
  • تكوينات بدء التشغيل وتصحيح الأخطاء بشكل أكثر ملاءمة ، بما في ذلك إعادة توجيه المدخلات ودعم ماكرو IDE.
  • تحديثات المنسق وتحسينات المحرر والمزيد.

كودا


يدعم CLion الآن لهجة CUDA C / C ++. يشمل الدعم:

  • المحلل اللغوي الصحيح (لاستبعاد الرمز "الأحمر" والتشغيل غير الصحيح لمحلل الشفرة) ؛
  • تسليط الضوء ومجموعة متنوعة من الإجراءات الذكية ، مثل التنقل وعرض الوثائق ؛
    وثيقة سريعة كودا
  • معالج محدث لإنشاء مشاريع جديدة - الآن يحتوي على قالب لمشاريع CUDA ؛

    مشروع كودا الجديد
  • دعم امتدادات ملفات CUDA (.cu / .cuh) ؛
  • أهداف CMake الخاصة لـ CUDA - سيعرض مربع حوار إضافة ملف جديد الآن لإضافته ليس فقط إلى الأهداف المناسبة التي تم إنشاؤها بواسطة أوامر CMake المعتادة ، ولكن أيضًا خاصًا بـ CUDA ( cuda_add_executable/ cuda_add_library) ؛

    تضيف CUDA إلى الأهداف
  • وحتى الإكمال التلقائي لأقواس الزاوية لمكالمات kernel:

    استكمال CUDA

ملاحظة: للاختبارات ولقطات الشاشة ، تم استخدام مشروع CUDA هذا مع GitHub: ClaraGenomicsAnalysis .

سئلنا لماذا ركزنا كثيرًا على CUDA ، وليس على مناطق محددة أخرى ، مثل Qt. باختصار ، بالطبع ، نود دعم جميع أنواع مشاريع C / C ++ في IDE. ولكن في ظروف الموارد المحدودة ، يجب عليك الاختيار والتركيز بدلاً من ذلك على دعم القدرات الأكثر شمولاً. لهجات مثل CUDA ، إذا لم يتم دعمها "خارج الصندوق" ، تؤدي إلى رمز أحمر وأخطاء محلل التعليمات البرمجية ومشكلات أخرى تتعلق بالقدرات الأساسية لـ IDE. على عكس Qt ، حيث يتعامل المحلل اللغوي العام مع الرمز ويفتقر إلى بعض الميزات المحددة.

للمطورين المضمنين


نواصل دعم مطوري الأنظمة المضمنة. من خلال التعاون مع IAR Systems AB ، تمكنا من الحصول على تراخيص الشراكة وإضافة دعم مترجم IAR إلى CLion. في السابق ، لم نتمكن من قراءة المعلومات من المترجم بشكل صحيح ولم يتم تحميل هذه المشاريع بشكل صحيح في CLion. كل شيء يعمل الآن!

مترجم Iar

تجدر الإشارة إلى أنه لاستخدام المترجم ، تحتاج إلى استخدام سلسلة أدوات MinGW. و هنا يمكنك أن تجد بعض النصائح حول كيفية استخدام CMake مع IAR جزءا لا يتجزأ من طاولة العمل.

سنستمر في العمل مع IAR Systems AB ، ونأمل أن يحظى CLion يومًا ما بدعم مصحح الأخطاء الخاص بهم.

منذ إصدار CLion الأول ، تحدثنا مع صانعي PlatformIO، نظام بيئي فريد لبدء المشاريع بسرعة للأنظمة المدمجة. على سبيل المثال ، ساعدت الكثيرين في بدء المشروع الأول على Arduino. بالنسبة لإصدار 2020.1 ، قمنا بجمع ، وإن كان PlatformIO أساسيًا إلى حد ما ، ولكنه مفيد للمكون الإضافي CLion . فرصته الأكثر أهمية هي إنشاء مشروع لـ PlatformIO استنادًا إلى CMake ، ما عليك سوى تحديد هذا النوع من المشاريع في معالج إنشاء مشاريع جديدة:

البرنامج المساعد

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

تحديث تكامل أداة Clang


كما تعلمون بالفعل ، فإننا ننقل بنشاط المزيد والمزيد من الميزات إلى محرك اللغة القائم على Clangd. أولاً ، للحصول على دعم سريع لميزات اللغة الجديدة وتكييف إجراءات IDE لهم ، وثانيًا ، في بعض الحالات لتحسين أداء المحرر (ليس في كل مكان ، لسوء الحظ ، يعد Clangd أداة عالمية).

في إصدار 2020.1 ، خصصنا الكثير من الوقت لإصلاحات الإكمال التلقائي المستندة إلى Clangd (ظهرت في الإصدار 2019.3). وبعد أن قررت أن نتائج هذا النهج جيدة جدًا ، قاموا بتشغيل الوضع الافتراضي حيث يتم أخذ خيارات الإكمال التلقائي بالكامل من Clangd. يمكنك تمكين الوضع المختلط للعملية مرة أخرى في الإعدادات:

الانتهاء Clangd

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

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

DFA صحيح دائمًا

الآن يعمل كل شيء على Clangd. ونأمل أن يؤدي ذلك إلى تحسين أداء تحليلات التعليمات البرمجية في مشروعاتك. لسوء الحظ ، كان علينا غالبًا أن ننصح المستخدمين بإيقاف تشغيل تحليل DFA خصيصًا لتحسين أداء المحرر. إذا كانت هذه هي حالتك ، فنقترح عليك إعادة تشغيل المحلل. سننتظر ملاحظاتك في الدعم الفني والمتعقب .

لأعلى ، يجب أن تلاحظ أدوات Clang التحسينات في دعم Clang-Tidy و ClangFormat:

  • عند العثور على ملف تكوين .clang-tidy في المشروع ، يقوم CLion تلقائيًا بتعطيل إعدادات Clang-Tidy في IDE ويتحول إلى استخدام ملف التكوين هذا. السلوك مدفوع بالتخصيص.
  • .clang-format CLion ClangFormat . ClangFormat, , CLion , .

Windows


إذا كان من السهل جدًا اختيار سلسلة أدوات CLion على Linux و macOS (نأخذ إما GCC أو Clang) ، فهناك على Windows العديد من الخيارات التي ليس من السهل اكتشافها: Cygwin ، MinGW / Mingw-w64 ، WSL ، Visual Studio. في الوقت نفسه ، غالبًا ما يتم استخدام مترجمين مختلفين داخل كل سلسلة أدوات. لقد سئلنا لفترة طويلة عن إمكانية استخدام Clang على Windows. وفي CLion 2020.1 ، أصبح من الممكن أخذ Clang-cl (إما من موقع LLVM الرسمي ، أو مع أدوات Visual Studio) واستخدامها داخل سلسلة أدوات Visual Studio:

Clang-cl

بالمناسبة ، هل لاحظت المصحح المحدد افتراضيًا في مربع الحوار هذا؟ يتم تضمين نفس المصحح المستند إلى LLDB لسلسلة أدوات Microsoft Visual C ++ التي يقوم فريقنا بتطويرها والتي قدمناها العام الماضي في الإصدار الجديد بشكل افتراضي! ومع ذلك ، إذا كنت تريد أيضًا استخدام دعم Native Visualizers ، فلا تزال بحاجة إلى تمكينه بشكل صريح في الإعدادات: Settings | البناء والتنفيذ والنشر | طرق عرض بيانات المصحح | تمكين أجهزة عرض NatVis لـ LLDB.

توقيع إعادة الهيكلة


من بين العديد من عمليات إعادة البناء في CLION ، يبرز Change Signature (Ctrl + F6 على نظامي التشغيل Windows و Linux ، ⌘F6 على نظام macOS). يسمح لك بتغيير اسم الوظيفة ونوع الإرجاع وقائمة المعلمات. وبذلك ، يقوم IDE بتحديث جميع استخدامات الوظيفة من أجل الحفاظ على صحة التعليمات البرمجية. ولكن ماذا لو قمت بإضافة معلمة جديدة؟ في السابق ، كان CLion يضع قيمة افتراضية للنوع في جميع الاستخدامات (إن وجدت) - 0للأرقام nullptrوالمؤشرات. الآن ، من الإصدار 2020.1 ، أصبح من الممكن تحديد القيمة التي سيحلها CLion لاستخدام الوظيفة مباشرة في مربع حوار إعادة البناء:

تغيير التوقيع
إذا لم تحدد أي شيء ، فسيكون السلوك كما كان من قبل.

تكوينات بدء التشغيل وتصحيح الأخطاء


جعلت التحسينات الصغيرة العديدة لتكوينات بدء التشغيل وتصحيح الأخطاء في CLion أكثر قابلية للاستخدام.

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

ثانيًا ، بالنسبة للتكوينات مثل CMake و Custom Build و Gradle Native Applications ، يمكنك الآن استخدام وحدات الماكرو ومتغيرات المسار. بمساعدتهم ، يمكنك الوصول إلى العديد من القيم المفيدة:

وحدات ماكرو IDE

وأخيرًا ، ظهر خيار إعادة توجيه إدخال البرنامج في هذه الأنواع من التكوينات. بالاشتراك مع وحدات الماكرو موجه / FilePrompt ، فإنه لا يسمح فقط بإعادة توجيه الإدخال إلى البرنامج من ملف ، ولكن أيضًا لإظهار مربع حوار لتحديد ملف لإدخاله في بداية التكوين:

إعادة توجيه الإدخال

تحديثات المنسق ، تحسينات المحرر ، والمزيد


تجدر الإشارة إلى بعض التحسينات في النقاط الفرعية المختلفة في الأنظمة الفرعية المختلفة:

  • إعدادات تسمية منفصلة لحقول الهيكل وحقول الفئة.
  • أبرزت القدرة على طي كتل التعليمات البرمجية مع #pragma region/ #pragma endregion.
  • لا يمكن استدعاء نافذة عرض الوثائق الآن بالاختصار فقط ، ولكن يمكن أيضًا رؤيتها ببساطة عن طريق تمرير مؤشر الماوس فوق رمز الاهتمام.
  • الخط الافتراضي في IDE هو الآن JetBrains Mono ، وهو خط أحادي المسافة من JetBrains مصمم خصيصًا للمطورين للمساعدة في تحسين قراءة التعليمات البرمجية.
  • سمة الضوء الافتراضية هي نفسها الآن على جميع المنصات الثلاثة - IntelliJ Light.
  • يمكن تقسيم الجلسات النهائية إلى عدة أفقياً أو عمودياً. وبالتالي ، يمكن رؤية عدة جلسات في وقت واحد في علامة تبويب واحدة.
  • من منصة IntelliJ ، تم إدخال التحسينات أيضًا في التكامل مع أنظمة التحكم في الإصدارات .

clion اسألني أي شيء


من المقرر عقد جلسة أسئلة وأجوبة عبر الإنترنت مع المطورين من فريق CLion في 7 مايو. يحضر الجلسة أعضاء الفريق المسؤولون عن الأنظمة الفرعية التالية:

  • C C++, Clangd, C++ CLion.
  • .
  • .
  • ( , ClangFormat).
  • .
  • .
  • .

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

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

كليون
محرك لتطوير الفريق

All Articles