Сніппети (code snippets) - це невеликі фрагменти тексту, які можна вставляти в основний код програми, а потім налаштовувати відповідно до його вимог. Вони не дозволяють генерувати закінчені додатки або цілі файли на відміну від шаблонів проекту і елементів управління. Замість цього вони використовуються для вставки часто використовуваних структур або заплутаних блоків програм, які важко запам'ятати. У цій статті ми покажемо, як, використовуючи сніппети, можна значно збільшити ефективність кодування.
аналоги сніпетів
Багато презентатора часто використовують цю можливість, щоб швидко вставляти великі блоки коду при створенні програм в ході презентацій.
Це найпростіша форма сніпетів в системі Visual Studio, але її простота означає обмежені функціональні можливості, зокрема, не можна модифікувати і розділяти фрагменти коду з іншими користувачами. Проте даний метод роботи з невеликими фрагментами коду в деяких ситуаціях може виявитися корисним, щоб забезпечити їх швидке використання.
Тепер розглянемо набагато корисніший спосіб вставки блоків коду в файл: сніппети. Вони записуються в окремих XML-файлах разом зі змінними параметрами, що полегшують настройку сниппета для конкретного завдання. Сніппети є частиною технології IntelliSense і значно спрощують пошук і вставку блоків коду в текст програми. Сніппети на мові VB також дозволяють додавати посилання на складання і і вставляти інструкції імпорту.
Крім того, користувач може створювати свої власні сніппети і зберігати їх в тій же самій бібліотеці. Оскільки кожен сниппет зберігається в спеціальному файлі XML, їх можна використовувати спільно з іншими розробниками. Сніппети можна вставляти в наступні частини програми:
Тіло члена класу. Ця частина коду призначена для сніпетів, які вставляються в уже певний член класу, наприклад в метод.
Використання фрагментів в мові C #
В результаті система Visual Studio відкриє список Insert Snippet, як показано на малюнку нижче. Коли користувач прокручує цей список і встановлює курсор миші на його елементи, на екрані з'являється підказка, в якій міститься короткий опис сниппета і вказується його скорочене ім'я для вставки в програму.
На малюнку нижче показаний результат вибору сниппета Automatically Implemented Property (скорочено prop). Досить часто вийшов код потрібно модифікувати. Фрагменти тексту, які зазвичай можна змінювати (змінні для заміни), виділяються підсвічуванням.
Для того щоб приховати підсвічування змінних в сніпеті, можна продовжити редагування або натиснути клавішу
Використання фрагментів в мові VB
Сніппети в мові VB мають додаткові можливості в порівнянні зі сниппета в мові C #, наприклад, вони можуть автоматично додавати в проект посилання на збірки, а також вставляти інструкції імпорту в файл, який містить компільований код.
комбінація клавіш
Клацання правою кнопкою миші і вибір команди Insert Snippet з контекстного меню.
Вибір команди Edit -> IntelliSense -> Insert Snippet.
В системі VB є ще один спосіб, за допомогою якого можна відкрити список Insert Snippet List: просто ввести знак питання (?) І натиснути клавішу
Наприклад, пройдемо по ієрархії і вставимо сниппет Draw a Pie Chart:
Якщо після вставки сниппет містить змінні для заміни, користувач може вставити їх значення, а потім переміщатися між ними, натискаючи клавішу
Оточення коду за допомогою сниппета
Остання дія по рефакторингу, доступне в мові C # (і в мові VB за допомогою надбудови CodeRush Xpress) - можливість оточити сніпетів існуючий блок коду. Наприклад, для того щоб занурити існуючий блок коду в умовний блок "try-catch", досить натиснути правою кнопкою миші і вибрати команду Surround With або вибрати блок коду і натиснути клавіші
У відповідь відкриється список Surround With, що містить сніппети, доступні для оточення вибраного рядка коду:
Бібліотека Code Snippets Manager
Code Snippets Manager - це головна бібліотека фрагментів в системі Visual Studio. Для доступу до неї необхідно вибрати команду Tools -> Code Snippet Manager або натиснути комбінацію клавіш
Коли бібліотека Code Snippets Manager відкривається в перший раз, в ній відобразяться доступні сніппети на мові HTML, хоча за допомогою списку Language користувач може сам задати потрібну мову програмування. На малюнку нижче показаний екран дисплея при редагуванні проекту на мові C #. Ієрархічна структура за замовчуванням копіює безліч папок на персональному комп'ютері, але в міру того як користувач буде додавати файли зі сниппета з різних місцях, нові сніппети будуть розподілятися по відповідних папках.
Якщо розробнику необхідно включити в бібліотеку цілий файл фрагментів, наприклад, для того щоб імпортувати сніпети розроблені в компанії, досить клацнути на кнопці Add. В результаті відкриється діалогове вікно, в якому можна вибрати потрібну папку. Папки, додані за допомогою такого способу, вставляються в вершину ієрархії - на рівні основних груп фрагментів, заданих за замовчуванням. Однак користувач може додавати папки, що містять підпапки, які будуть додані в це дерево в якості дочірніх вузлів.
Видалити папку дуже просто, навіть небезпечно просто. Досить вибрати вузол дерева, який потрібно видалити, і клацніть на кнопці Remove. В результаті цей вузол, всі його дочірні вузли і сніппети будуть видалені з бібліотеки Code Snippets Manager, причому вікно підтвердження при цьому не відкривається. Якщо користувач зробив це випадково, то краще за все клацнути на кнопці Cancel і відкрити діалогове вікно знову. Якщо користувач вніс зміни, які він хоче зберегти, то досить виконати всі дії, описані вище. Однак шукати місце для папки, випадково видаленої зі списку фрагментів, заданих за замовчуванням, може виявитися стомлюючим заняттям.
Сніппети, інстальовані разом з системою Visual Studio, розташовані глибоко в ієрархії папок інсталяції. За замовчуванням бібліотека фрагментів при запуску під управлінням 32-бітової системи Windows інсталюється для мови VB в папці:
і для мови C # в папці:
(Якщо використовується 64-бітова система Windows, то рядок% program files% слід замінити рядком% program files (x86)%). Окремі файли сніпетів можна імпортувати в бібліотеку за допомогою кнопки Import. Перевага цього методу над використанням кнопки Add полягає в тому, що в цьому випадку користувач отримує можливість вказати місце кожного сниппета в структурі бібліотеки.
створення фрагментів
Одним з переваг програми Snippet Editor є зручне представлення структури будь-якого файлу сніпетів, існуючого в системі. Завдяки цьому користувач може переглядати сніппети, встановлені в системі Visual Studio за замовчуванням, щоб зрозуміти, як краще створити свої власні сніппети.
Користувач може перейти до цікавого для його сніпетів і двічі клацнути на його імені, щоб він відкрився в вікні Editor. На малюнку показаний показаний просто сниппет behaviour. Чотири панелі містять всю інформацію про це сніпеті.
Для того щоб продемонструвати, наскільки просто програма Snippet Editor створює власні сніппети користувача, перейдемо до наступної вправи, в якому створимо сниппет, для бібліотеки ASP.NET AJAX.
Запускаємо програму Snippet Editor і створюємо новий сниппет. Для цього вибираємо в дереві призначену папку, клацаємо на ній двічі і вибираємо команду Add New Snippet з контекстного меню.
У відповідь на запрошення вводимо ім'я сниппета і клацаємо на кнопці ОК. Двічі клацаємо на новому елементі, щоб відкрити вікно Editor. Зверніть увагу на те, що сниппет не відкривається автоматично в вікні Editor - не заміните властивості іншого сниппета помилково!
Тепер в першу чергу редагуємо поля Title, Description і Shortcut:
У вікні Editor вставляємо код, необхідний для створення простого Ajax-запиту за допомогою бібліотеки jQuery.
Натискаємо кнопку Save.