مترجم: حبیب الله علیخانی
منبع:راسخون



 

Code Completion and Templates ( تکمیل شدن کد و قالب ها )

این بخش شامل چند ویژگی netbeans است : code completion ، code templates ، file templates. همه ی این ویژگی ها به این مربوط می شوند که بازدهی و صرفه جویی در وقتتان افزایش پیدا کند.
code completion به شما اجازه می دهد که نام کلاس، واسط (interface)، پکیج، فیلد یا تابع را بدون اینکه نام آنرا کامل تایپ کنید، وارد کنید.
Code templates بلوکی از متن یا کد است که می تواند به طور اتوماتیک ، فقط با تایپ چند کاراکتر به فایل تان اضافه شود . file templates قالب فایل است که برای فایل درست و بی عیب از محتوا که می تواند به ما در دوباره استفاده کردن و استانداردسازی کمک کند.

Code completion

به محض اینکه شما در ادیتور چیزی تایپ می کنید، یک پنچره pop-upباز می شود و یک لیست حساس به متن از امکانات را نشان می دهد. و وقتی که کاراکتر های بیشتری تایپ می کنید، لیست برای نمایش آن آیتمی که با آنچه شما تایپ کردید مطابقت داشته باشد، فیلتر می شود. این کار کد نویسی را سریعتر و آسانتر می کند.
نظر با اینکه فراموش نکنید که جاوا case-sensitive است.
برای پیکربندی code completion از مسیر زیر می رویم: تب code completion< Tools > Options > Editor
بخش code completion شامل 7 check box است ، که آنها را معرفی می کنیم:
Auto Popup Completion Window : اگر تیک این گزینه را بر دارید، زمانی که تایپ می کنید پنجره ی پاپ آپ (popup ) code completion باز نمی شود (پنجرههای PopUp به پنجرههای کوچکی گفته میشود که بر روی پنجره فعلی باز میشوند و معمولاً حاوی یک پیغام، تبلیغ یا پنجره مربوط به کامنتها هستند) . شما می توانید آنرا با فشار دادن Ctrl+Spacebar باز کنید.
به عنوان مثال : اگر Sy را در ادیتور تایپ کنیم ( S با حروف بزرگ ) و Ctrl+Spacebar را بزنیم یک popup باز می شود که ما می توانیم System را در آن انتخاب کنیم.
Auto Popup Documentation Window : اگر این گزینه را تیک بزنیم هنگام تایپ وقتی Ctrl+Spacebar را می زنیم یک پنجره توضیحات هم مشاهده می شود.
به عنوان مثال : اگر Sy را در ادیتور تایپ کنیم ( S با حروف بزرگ ) و Ctrl+Spacebar را بزنیم علاوه بر اینکه یک popup باز می شود که ما System را از آن انتخاب می کنیم ، بالای آن یک پنجره توضیحات هم مشاهده می شود.
Display Documentation Next To Completion : پنجره توضیحات بعد از تکمیل شدن کد ظاهر شود.
Insert Single Proposals Automatically : با انتخاب این گزینه ، زمانیکه فقط یک امکان کامل شدن برای expression جاری وجود داشته باشد، پنجره ی code completion دیده نمی شود و به طور اتوماتیک کد وارد می شود.
( Statement : به هر خط از کدی که ما می نویسیم که دربرگیرنده دستوری است یک Statement گفته می شود. Expression: اگر یک Statement حاوی محاسبات ریاضیاتی باشد و بالتبع نتیجه ای را در بر داشته باشد به آن Expression می گوییم. )
به عنوان مثال : وقتی تایپ کنیم System.current ، و کلید enter را بزنیم System.currentTimeMillis(); را در ادیتور سورس خواهیم دید.
Case Sensitive Code Completion : این گزینه، آیتم ها را از پنجره ی code completion بر اساس حالت حروف بزرگ یا کوچک بودن کاراکتری که تایپ شده، فیلتر می کند.
Show Deprecated Members In Code Completion : اگر تیک این گزینه را بر دارید، کلاسهای مناسب نیستند را در پنجره ی code completion فیلتر می کند. اگر تیک داشته باشد آیتمی که مناسب نیست را نشان می دهد با این تفاوت که روی آن خط می زند مانند تصویر زیر:
نشان می دهد که روی متد runFinalizersOnExit(boolean b) خط کشیده . این متد در (ورژن) JDK I با استفاده از netbeans مناسب نیست.اما اگر ورژن پایینتر داشته باشید ممکن است مناسب باشد.
Insert Closing Brackets Automatically : اگر این ویژگی فعال باشد، بعد از اینکه شما اولین آکولاد چپ } ، پرانتزباز ) ، کوتیشن " ، براکت چپ ] ، را تایپ کردید، ادیتور به طوراتوماتیک دومی را وارد می کند و می بندد.

Packages (Imports) :

وقتی با package ها کار می کنید، گاهی اوقات برای تعریف سلسله مراتب کلاسها ترکیبات طولانی از متن داریم. به عنوان مثال بعضی ار شرکت ها از دستورات پکیج زیر استفاده می کند :

com.mycompany.mydivision.myorganization.thisproduct.database;
com.mycompany.mydivision.myorganization.thisproduct.model;
com.mycompany.mydivision.myorganization.thisproduct.view;

یا

com.mycompany.product.client;
com.mycompany.product.server;
com.mycompany.product.server.threads;
com.mycompany.product.server.db;

درج نام package ها به سورس کد مشکل نیست اما حفظ کردن آنها خسته کننده است، اینجاست که code completion مفید واقع می شود.
به عنوان مثال : در ادیتور کلمه ی import را وارد می کنیم، بعد از اولین package ، Ctrl+Spacebar را می زنیم، لیستی از نام package بعدی را نشان می دهد. بر اساس package اول که آنرا انتخاب کردیم code completion نام کلاسها و پکیج ها را نشان می دهد. که در مثال مورد نظر وقتی پکیج java را انتخاب می کنیم، لیست به صورت زیر می شود:

Methods (متدها) :

بیشترین استفاده از code completion با متدها است. وقتی که می خواهید به متد های استاتیک یا غیر استاتیک رجوع کنید این پنجره سعی می کند که به شما کمک کند. یک ویژگی هوشمند netbeans ، تکمیل کد متد های استاتیک است.
در ادیتور String را تایپ کنید و Ctrl+Spacebar را بزنید که لیستی از پیشنهادات را نشان می دهد. یک چیز جالب این است که وقتی نام کلاس را تایپ می کنید، آیتم های پنجره code completion فقط اعضای استاتیک و متد های کلاس String هستند.
اجازه بدهید یک مثال که شامل هم آیتم استاتیک و هم غیر استاتیک را ببینیم:
کد مقابل را در ادیتور وارد کنید String MyString = "some string";
سپس در خط بعد متغییر MyString را تایپ کنید و Ctrl+Spacebar را بزنید .
لیستی که ظاهر می شود هم آیتم استاتیک و هم آیتم غیر استاتیک را می بینید :

Class Members

پنجره ی code completion می تواند همچنین گروه کلاسها را نشان دهد.
به عنوان مثال کد زیر را وارد می کنیم :
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
با تایپ Re با زدن Ctrl+Spacebar از popup باز شده ResultSet را انتخاب می کنیم:
بعد از آن گروهی از کلاسهای استاتیک را می بینید:

Constructors ( سازنده ها )

همچنین زمانیکه شما یک نمونه از یک object را می سازید و یک constructor یا سازنده ای که نیاز دارید را انتخاب می کنید می توانید از Code completion استفاده کنید.
به عنوان مثال تصویر زیر code completion را برای java.lang.string نشان می دهد که تعدادی سازنده را لیست کرده:

super and this

شما همچنین می توانید بعد از super و this از code completion استفاده کنید.
برای مثال کد زیر را وارد کنید:

public class MyMain {
private String firstName;
public void setFirstName(String firstName) {
} }

اگر درون متد setFirstName this را تایپ کنید و Ctrl+Spacebar را بزنید از لیست باز شده به سرعت می توانید گروه متغییر firstName را بدون اینکه املای دقیق آن را بدانید یا آنرا کامل تایپ کنید انتخاب کنید :

Code Templates (قالب کد)

قالب کد ویژگی اجالب IDE های جاوا است. آنها اجازه می دهند که بتوانید بلوکی از کد یا متن را با تایپ تعداد کمی کاراکتر، به طور اتوماتیک وارد کنید. این ویژگی شبیه code completion است با این تفاوت که بجای اینکه یک کلاس یا یک package یا یک نام متد را وارد کند ، می تواند چندین خط از کد یا چندین فراخوانی متد را همزمان وارد کند.
در ابتدا به خاطر آوردن کلمات اختصاری برای code template ای که می خواهید مشکل است اما بعدا, با کار کردن در netbeans می توانید یاد بگیرید( دست کم آنهایی که مهم تر هستند).
با استفاده از code template ازپیش تعریف شده که netbeans می دهد، می توانید code template (قالب کد) دلخواهتان را بسازید.
به عنوان مثال :
با تایپ Sout و زدن دکمه Tab ( در بعضی از ورژن ها spacebar) به صورت زیر بسط می یابد:

System.out.println("");

با تایپ serr و زدن دکمه Tab به صورت زیر بسط می یابد:

System.err.println("");

کلمات اختصاری دیگری هم هستند که اهمیت کمتری دارند مانند:
با تایپ pu و زدن دکمه Tab، کلمه public تایپ می شود.
با تایپ re و زدن دکمه Tab، کلمه return تایپ می شود.
با تایپ trycatch و زدن دکمه Tab، به صورت زیر بسط می یابد:

try {
} catch (Exception exception) {
}

با تایپ ifelse و زدن دکمه Tab، به صورت زیر بسط می یابد:

if (Boolean.TRUE)
{
}
else
{
}

با تایپ fori و زدن دکمه Tab، به صورت زیر بسط می یابد:

for (int i = 0; i < arr.length; i++)
{
String string = args[i];
}

Customizing Templates

از مسیر زیر می توانیم code template خودمان را اضافه کنیم یا تغییر دهیم :
Tools >options > editor > tab code template

File Templates

File template شبیه code template است که بلوکی از کد های پیش ساخته را ارائه می دهد.
از آنجاییکه code template برای ارائه یک یا چند خط بکار می رود ، یک file template یک فایل کامل از کد را ارائه می دهد. یک file template شامل اجزایی است که با تکه های مختلف metadata جمع آوری شده ، وقتی که درخواست می دهید که یک فایل از آن نوع ساخته شود.
این کار به دلایل مختلفی سودمند است. اول اینکه، هر بار که می خواهید فایلی بسازید، این کار شما را از چندین بار، تایپ متن رها می کندو در وقت صرفه جویی می شود. دلیل دوم استاندارد سازی آن است.
فرض کنید می خواهید یک فایل HTML را به پروژه خود اضافه کنید کارهای زیر را انجام می دهید:
> New > Other روی پروژه کلیک راست کرده
در پنجره فایل که باز شده از قسمت categories ، Other و از قسمت file type ، HTML File را انتخاب می کنیم:
بعد نام فایل را وارد می کنیم و finish می کنیم.
فایلی با بدنه زیر ایجاد می شود:
برای کار با file template می توانید از مسیر زیر بروید وtemplate ها را مدیریت کنید:

Tools > templates

تمپلیت ها درفولدر ها مرتب شده اند، شبیه دسته بندی ای که New File Wisard ارائه می کرد.
برای مثال HTML را از فولدر Web انتخاب می کنیم. تمپلیتی درست شبیه فایل HTML خالی که در قبل ساختیم باز می شود.(البته open in Editor در این پروژه فعال نمی شود و اگر پروژه برای web باشد فعال می شود.)
سپس از فولدر java ، Java Class را انتخاب می کنیم و بعد Open in Editor را کلیک می کنیم ، template file ای که باز می شود شبیه کلاسی که در حالت عادی با New File wizard می سازیم نیست.
به تگ های ${user} و ${name} توجه کنید. اینها در New File wizard بر اساس مقادیر سیستم در IDE و مقادیری که در ویزارد وارد می کنید جایگزین می شوند. ${package}; با نام پکیجی که اختصاص می دهیم و با نام کلاسی که اختصاص می دهیم جایگزین می شوند.