موضوع مقاله: تکمیل کد هوشمند | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # تکمیل کد هوشمند | مقدمه: این قابلیت معمولاً در میانه کلیدزنی از طریق پنجره‌های بازشو (یا پاپ‌آپ) فعال می شود و به ارائه با پاسخ به پرسش‌هایی درباره پارامترهای توابع و راهنمایی در مورد خطاهای نحوی می‌پردازد. | ## بخش 1: تکمیل کد هوشمند | نرم‌افزارهای مدرن تکمیل کد عموماً از سیستم‌های هوش مصنوعی مولد برای پیش‌بینی خطوط کد استفاده می‌کنند. تکمیل کد و ابزارهای مرتبط، نقش مستندسازی و رفع ابهام در نام‌های متغیر، تابع و متد را ایفا می‌کنند و از تحلیل ایستا کمک می‌گیرند. مروری کلی تکمیل کد هوشمند، مشابه سایر سیستم‌های تکمیل خودکار، روشی راحت برای دسترسی به توضیحات توابع – به‌ویژه فهرست پارامترهای آن‌ها – به‌شمار می‌رود. این قابلیت با کاهش میزان تایپ و همچنین رفع نیاز به حفظ کردن نام‌ها، سرعت توسعه نرم‌افزار را بالا می‌برد. زیرا با توجه به موقعیت کاربر در کد و همچنین حوزه فعال، مستنداتِ تعاملی برای بسیاری از نمادها (یعنی متغیرها و توابع) بصورت پویا در قالب ابزارهای راهنما ظاهر می‌شود. تکمیل کد هوشمند از یک پایگاه داده درون‌حافظه‌ای که به‌صورت خودکار ساخته می‌شود استفاده می‌کند. در این پایگاه، کلاس‌ها، نام متغیرها و سایر ساختارهایی که در کد تعریف یا ارجاع داده شده‌اند، نگه‌داری می‌شوند. وقتی کاربر یکی از این کاراکترهای نشانه را بلافاصله پس از نام یک شی (که دارای اعضای در دسترس مانند متغیرها یا توابع درونی است) تایپ می‌کند، IntelliSense پیشنهادهای خود را در یک کادر بازشو به نمایش می‌گذارد. کاربر می‌تواند با فشردن کلیدهای تکمیل‌کننده عبارت (مانند یا ) یا نشانه‌های خاص زبان (مانند نقطه‌ویرگول در ++C) پیشنهاد داده شده را بپذیرد یا اینکه به تایپ ادامه دهد. این قابلیت همچنین در زبان‌هایی که از برنامه‌نویسی شیءگرا پشتیبانی می‌کنند، به برنامه‌نویس اجازه می‌دهد یک تابع را از میان چندین تابع جلوبار انتخاب کند. | ## بخش 2: تکمیل کد هوشمند | برخی نرم‌افزارهای ویرایش کد، با بهره‌گیری از پروتکل سرور زبان این تکمیل کد هوشمند را ارائه می‌دهند. تاریخچه تحقیقات پیرامون تکمیل کد هوشمند در سال ۱۹۵۷ و با غلط‌گیرهای املایی تصاویر بیت‌مپ تهیه شده از روی دست‌خط پیوسته و و همچنین استفاده در جست‌وجوی رکوردها در پایگاه‌های داده با وجود ورودی نادرست (با غلظ املایی) آغاز شد. در سال ۱۹۶۱، لز ارنست که سرپرستی این تحقیقات نوظهور را بر عهده داشت، لازم دید که نخستین غلط‌گیر املایی را طراحی کند که به فهرستی از ۱۰٬۰۰۰ واژهٔ قابل قبول دسترسی داشت. رالف گورین، دانشجوی تحصیلات تکمیلی زیر نظر ارنست، نخستین برنامه غلط‌گیر واقعی را به‌صورت یک نرم‌افزار (نه صرفاً پژوهش) برای متون عمومی انگلیسی نوشت. روش کار این برنامه، جست‌وجوی فهرست واژگان برای پیدا کردن حالت‌های صحیح ممکن (که فقط در یک حرف یا جابه‌جایی دو حرف کنار هم تفاوت داشتند) و نمایش نتایج به کاربر بود. همان‌طور که بیشتر برنامه‌های SAIL عمومی بودند، او نیز SPELL را در دسترس عموم قرار داد و به سرعت از طریق آرپانت در سراسر جهان پراکنده شد. پشتیبانی در ویرایشگرها و محیط‌های توسعه ویژوال استودیو IntelliSense نام پیاده‌سازی شرکت مایکروسافت برای تکمیل کد است که بیشتر در ویژوال استودیوی شناخته می‌شود. اولین بار در سال ۱۹۹۶، با عرضه نسخه پیش‌نمونه‌ای برای ویژوال بیسیک 5.0 که عملاً پیش‌درآمدی برای این زبان بود، به یکی از محصولات اصلی از مایکروسافت تبدیل شد. در ابتدا، محیط ویژوال بیسیک بستری برای آزمایش این فناوری بود؛ اما IntelliSense در همان بازه زمانی ویژوال استودیو 97 به ویژوال فاکس‌پرو و ویژوال سی پلاس‌پلاس نیز اضافه شد (یک نسخه پس از مشاهدهٔ اولیه در ویژوال بیسیک). این کاستی‌ها (که از زمان عرضهٔ نسخهٔ ۹۷ با انتقاد بسیاری از توسعه‌دهندگان C++ روبه‌رو بود) تا حد زیادی در محصولات .NET برطرف شد. | ## بخش 3: تکمیل کد هوشمند | این نسخه از توانایی‌های قدرتمندتر درون‌کاوی و مستندسازی کد در .NET بهره می‌گیرد. از ویژوال استودیو ۲۰۰۵ به بعد، IntelliSense به‌صورت پیش‌فرض وقتی کاربر شروع به تایپ می‌کند، فعال می‌شود و دیگر نیازی به وارد کردن کاراکترهای ویژه نیست (البته می‌توان این رفتار را غیرفعال کرد). محیط توسعه یکپارچه می‌تواند موضوعات فراتر از آنچه توسعه‌دهنده در حال تایپ است را حدس بزند، تا حدی که ساختارهای بسیار ابتدایی زبان مانند و را نیز در فهرست پیشنهاد قرار می‌دهد. انتظار می‌رود این ابزار که ابتدا فقط برای C# در دسترس بود، در نسخه‌های آینده ویژوال استودیو به‌صورت پیش‌فرض گنجانده شود. ویژوال استودیو ۲۰۲۲ شامل قابلیت‌های هوش مصنوعی نظیر گیت‌هاب کوپایلوت است که می‌تواند بر اساس وضعیت زمینه و موقعیت کدهای اطراف، مجموعه کاملی از کد را به‌طور خودکار پیشنهاد دهد. سایر محصولات مایکروسافت که از IntelliSense بهره می‌گیرند عبارت‌اند از مایکروسافت اکسپرشن وب، مایکروسافت فرانت‌پیج، مایکروسافت اسمال بیسیک، محیط‌های ویژوال بیسیک برای برنامه‌ها در مجموعه محصولات مایکروسافت آفیس، ویژوال استودیو کد و بسیاری دیگر. استودیو مدیریت مایکروسافت اس‌کیوال سرور 2008 نیز برای دستورهای SQL دارای ویژگی تکمیل خودکار است. اکلیپس محیط توسعهٔ اکلیپس نیز ابزارهای تکمیل کد دارد که همراه خود برنامه ارائه می‌شوند. کاربر می‌تواند با کمک کلیدهای جهت و فشردن کلید تکمیل، هنگامی که تابع عضو موردنظر انتخاب شد، گزینه انتخابی را تایید کند. وقتی کاربر نام یک متغیر را تایپ می‌کند، این قابلیت حین تایپ، پیشنهادهایی برای تکمیل نام متغیر ارائه می‌دهد. | ## جمع‌بندی | در ویژوال استودیو، این پنجره کل مدل شیء دامنه برنامه را که برای توسعه‌دهنده در دسترس است، نشان می‌دهد.