🔖Snippet или фрагмент кода
Автор: Александр Михновец
Часть 1. Что такое Snippet или фрагмент кода?
Набирая код, очень часто приходится повторять однотипные действия – например набирать по буквам Console.WriteLine();
Со временем начинаем замечать подсказки для быстрого введения кода, которое предлагает IntelliSense
Параметры IntelliSense включены по умолчанию. Чтобы отключить их, перейдите в раздел Сервис > Параметры > Текстовый редактор > Все языки и снимите флажок Сведения о параметрах или Автоматический список участников, если вы не хотите использовать функцию Списка участников.


Потом узнаем, что есть комбинация клавиш для быстрого написания Console.WriteLine(); - cw и 2 раза клавиша Tab, и дело идет гораздо быстрее.

У Microsoft Visual Studio есть целый комплект сниппетов – часто встречающихся комбинаций клавиш для быстрого ввода. Найти их перечень можно в Средства – Диспетчер фрагментов кода или набрав сочетание Ctrl+K, Ctrl+B





Здесь представлены все стандартные сниппеты, которые есть для языка C#.
Т.е. набрав сочетание клавиш, указанное выше, например, for и нажав 2 раза клавишу Tab
Основной скелет цикла for появится в коде и его останется только заполнить:

Обратите внимание, что часть кода, которую надо заменить – сразу подсвечивается. Использование snippet’ов сокращает в разы время набора часто повторяющихся фрагментов кода.
Часть 2. Создаем свой Snippet или фрагмент кода
Освоившись с применением snippet начинаем понимать, что стандартных маловато будет. И нам срочно нужен фрагмент кода для Console.ReadLine(); которого нет в перечне.
Открываем диспетчер фрагментов кода:
![]()
Выбираем папку Visual C#:

Копируем путь к папке:
Переходим в указанное место через Проводник / Total Commander / или что там у Вас для этого:

Копируем cw.snippet в новую папку cr, где будем изменять файл под себя. Переименовываем файл в cr.snippet и открываем в текстовом редакторе:
В строчке
<Code Language="csharp"><![CDATA[$SystemConsole$.WriteLine($end$);]]>заменяемWriteнаReadи переносим$end$за точку с запятой. Получаем такую запись:<Code Language="csharp"><![CDATA[$SystemConsole$.ReadLine();$end$]]>В
<Title>cw</Title>меняем на<Title>cr</Title>В
<Shortcut>cw</Shortcut>меняем на<Shortcut>cr</Shortcut>В
<Description>Фрагмент кода для Console.WriteLine</Description>меняем на
<Description>Фрагмент кода для Console.ReadLine</Description>Авторство
<Author>Microsoft Corporation</Author>меняем на себя любимого<Author>IJunior</Author>
Осталось импортировать новый snippets в Microsoft visual studio.
Средства – Диспетчер фрагментов кода или сочетание Ctrl+K, Ctrl+B:

Язык CSharp, расположение MyCodeSnippets, кнопка Импорт.
Указываем путь к нашему созданному файлу и нажимаем кнопку Открыть.
Переходим в Microsoft Visual Studio, запускаем проект и вводим cr и 2 раза клавишу Tab

Часть 3. Модифицируем стандартный Snippet или Фрагмент кода
Меня не устраивает стандартный snippet cw для Console.WriteLine(), т.к. все время использую интерполяцию. Делать новый фрагмент кода ради добавления в него Console.WriteLine($””) не имеет смысла, поэтому будем модифицировать стандартный snippet.
Для начала сделаем резервное копирование стандартного сниппета cw на случай, если что-то пойдет не так.
Переходим к месту хранения сниппетов и копируем его оттуда в свою отдельную папку резервных копий и папку для препарирования.

Так выглядел код до модификации:
Так после модификации:
Единственной загвоздкой было выведение знака $, который воспринимался, как внутренняя команда. Пришлось сделать для него отдельный литерал.
Добавил строчки:
Изменил:
<Code Language="csharp"><![CDATA[$SystemConsole$.WriteLine($end$);]]>
На
<Code Language="csharp"><![CDATA[$SystemConsole$.WriteLine($Interpolation$"$end$");]]>
Часть 4. Примеры горячих клавиш для фрагментов кода
сс -
Console.Clear();cr -
Console.ReadLine();crk -
Console.ReadKey();cw -
Console.WriteLine($"");cww -
Console.WriteLine($"{}");
Last updated
Was this helpful?