إنشاء قوالب في IDE Jetbrains

الدخول


اليوم أريد أن أقدم عرضًا تعليميًا صغيرًا للنماذج في WBS من Jetbrains. سيتم تنفيذ الأمثلة أدناه في Java في Intellij IDEA ، ولكن آلية الإنشاء هي نفسها للغات ومنتجات الشركة الأخرى. أعتقد أن جميع المبرمجين في IDE يستخدمون القوالب المضمنة. على سبيل المثال ، عندما تكتب fori ، اضغط على TAB أو ENTER وستحصل على حلقة for تحتاج فيها إلى تحديد اسم المتغير وحالته ، ويتم إنشاء باقي الكود لك.

for (int i = 0; i < ; i++) { } 

أو sout -> System.out.println () ، مألوف لجميع المبرمجين جافا. لذلك ، يدعم Intellij إنشاء قوالب الكود الخاصة به. والمثير للدهشة ، أنني لم أجد تقريبًا أي معلومات باللغة الروسية وقليلًا جدًا من اللغة الإنجليزية (نظرًا لوجود وثائق جيدة) عندما صادفت هذه الميزة ، على الرغم من أنها تسرع بشكل كبير وتساعد في التطوير. والآن ، عندما وصلوا ، قررت كتابة مقالة قصيرة حول هذا الموضوع. ربما سيساعد المبرمجين ذوي الخبرة الصغيرة ، فهم أنفسهم قادرون على اكتشاف كل شيء أو يستخدمونه منذ فترة طويلة ، ولكن أعتقد أنه مناسب تمامًا لأي شخص آخر. لذلك دعونا نبدأ.

إنشاء قالب


للبدء ، لنقم بتقديم مثال بسيط ، على سبيل المثال ، ثابت المسجل. انتقل إلى الإعدادات -> المحرر -> قوالب حية . هنا يمكنك عرض مجموعات جاهزة من القوالب وإنشاء الخاصة بك - عن طريق النقر فوق علامة الجمع في الجزء الأيمن من اللوحة. يمكنك أيضًا إنشاء قالب منفصل ، ثم ستتم إضافته إلى مجموعة المستخدمين. بعد النقر ، ستظهر نافذة أدناه ، حيث تحتاج إلى إدخال الاختصار والأوصاف والنص الفعلي للقالب. سيكون هناك أيضًا نقش تحذيري " لا يوجد سياق قابل للتطبيق " والزر تعريف بجواره ، والنقر على الذي سنرى فيه قائمة السياقات المحتملة - HTML ، XML ، Java ، Javascript ، CSS ، إلخ. يحتوي البعض على عناصر فرعية ، على سبيل المثال ، في Java ، هي القدرة على استخدام القالب بطريقة أو في تعليق أو على مستوى الفصل الدراسي أو في مكان آخر أو في كل مكان في وقت واحد. لنأخذ حزمة جافا بأكملها كمثال.

سنكتب السجل كاختصار ، إليك سطرًا مثل هذا:

 private static final Logger LOGGER = Logger.getLogger($CLASS_NAME$.class.getName()); 

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

مثال:

 public class CodeTemplates { private static final Logger LOGGER = Logger.getLogger(CodeTemplates.class.getName()); } 

الميزات والميزات:


1. عند إنشاء القوالب ، يوجد متغير رئيسي $ END $ يشير إلى مكان المؤشر عند إنشاء القالب (بشكل افتراضي ، في نهاية رمز القالب).

 System.out.println($END$); 

2. المتغير الرئيسي الثاني هو $ SELECTION $ . إذا كان موجودًا في القالب الخاص بك ، فسيظهر في قائمة Surround With ( Ctrl + Alt + T ). هذا ضروري إذا كنت ترغب في التفاف التعليمات البرمجية الخاصة بك.

 System.out.println("$SELECTION$"); 

لنفترض أن لديك كلمة أو جملة ، على سبيل المثال TEST - يمكنك وضع المؤشر في نهاية الكلمة ، والضغط على Ctrl + Alt + T ، ومن بين النماذج التي يمكنك اختيارها ، ثم اتضح:

 System.out.println("TEST"); 

ملاحظة: لكتلة من التعليمات البرمجية أو النص ، حدده أولاً.

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

 @Table(name = "$TABLE NAME$") 

في Extensions ، حدد CapitalizeAndUnderscore (String) ، فقط بدلاً من String نصف أنفسنا className:

capitalizeAndUnderscore(className)

مثال:

 @Table(name = "CODE_TEMPLATES") public class CodeTemplates { ... } 

ملاحظة:
يمكنك أيضًا كتابة قيمك الخاصة في حقل "الامتدادات" ، كما هو الحال في الإدخال ، لكني لا أرى النقطة ، لأنه يمكنك القيام بذلك في حقل القيمة الافتراضية.

4. من الممكن أيضًا استيراد ( File -> Import Settings ) وتصدير قوالب ( File -> Export Settings ) والإعدادات الأخرى في شكل ملفات jar. نظرًا لأنه يتم تصدير القوالب كملفات xml ، يمكنك اختياريًا الانتقال إلى دليل .IntelliJIdea $ VERSION $ / config / templates وإضافة xml الخاص بك هناك. في هذه الحالة ، تحتاج إلى تحديد مجموعة من القوالب في الملف ، وإلا فلن تراها في القائمة. إذا لم تحدد مجموعة ، فيمكن إضافة قوالب فردية إلى أحد الملفات الموجودة كخيار - user.xml.
مثال user.xml مع المسجل والجدول :
 <templateSet group="user"> <template name="log" value="private static final Logger LOGGER = Logger.getLogger($CLASS_NAME$.class.getName());" description="Logger Template" toReformat="false" toShortenFQNames="true"> <variable name="CLASS_NAME" expression="className()" defaultValue="" alwaysStopAt="true" /> <context> <option name="JAVA_DECLARATION" value="true" /> </context> </template> <template name="tb" value="@Table(name = "$TABLE_NAME$")" description="" toReformat="false" toShortenFQNames="true"> <variable name="TABLE_NAME" expression="capitalizeAndUnderscore(className)" defaultValue="" alwaysStopAt="true" /> <context> <option name="JAVA_CODE" value="true" /> </context> </template> </templateSet> 


الخلاصة


آمل أن تكون مقالة اليوم مفيدة وستساعد في تسريع تطوير أولئك الذين لم يستخدموا نماذجهم بعد.

ملاحظة: إذا كنت ترغب في ذلك ، يمكنك كتابة المكونات الإضافية الخاصة بك لـ IDE ، بما في ذلك ملحقات القوالب.

التصحيحات أو الإضافات هي موضع ترحيب.

رابط للوثائق الرسمية: هنا
شكرا جستبوريس

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


All Articles