Пошаговое руководство. Создание фрагмента кода в Visual Studio
Фрагменты кода — это предварительно подготовленные фрагменты кода, готовые к вставке в приложение. Вы можете повысить производительность и надежность с помощью фрагментов кода, чтобы сократить время, затраченное на ввод повторяющегося кода или поиск примеров.
Вы можете создать собственные фрагменты кода и добавить их в фрагменты кода, которые Visual Studio уже включает. В этой статье описывается, как создать фрагмент кода всего за несколько шагов. Вы создаете XML-файл, заполняете соответствующие элементы и добавляете код в файл. При необходимости можно использовать параметры замены и ссылки на проекты. Затем вы импортируете фрагмент кода в установку Visual Studio.
создание фрагмента кода
Откройте Visual Studio и нажмите кнопку "Продолжить без кода" на начальном экране.
В строке меню выберите "Файл>нового файла" или введите CTRL+N.
В диалоговом окне "Создать файл" выберите XML-файл и нажмите кнопку "Открыть".
Вставьте следующий базовый шаблон фрагмента кода в редактор кода.
<?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title></Title> </Header> <Snippet> <Code Language=""> <![CDATA[]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
Введите заголовок Square Root в элемент фрагмента
Title
кода.В атрибуте Language элемента заполните фрагмент CSharp для фрагмента
Code
кода C# или VB для Visual Basic.Совет
Чтобы просмотреть все доступные языковые значения, см. статью "Атрибуты" в справочнике по схеме фрагментов кода.
Добавьте следующий фрагмент кода
CDATA
в раздел внутриCode
элемента.Для C#:
<![CDATA[double root = Math.Sqrt(16);]]>
Для Visual Basic:
<![CDATA[Dim root = Math.Sqrt(16)]]>
Примечание.
Невозможно указать, как форматировать или отступы строк кода в
CDATA
разделе фрагмента кода. Языковая служба автоматически форматирует вставленный код.Сохраните фрагмент в любом месте как SquareRoot.snippet.
Импорт фрагмента кода
Чтобы импортировать фрагмент кода в установку Visual Studio, выберите диспетчер фрагментов кода инструментов>или нажмите клавиши CTRL+K, B.
В диспетчере фрагментов кода нажмите кнопку "Импорт".
Перейдите к расположению фрагмента кода, выберите его и нажмите кнопку "Открыть".
В диалоговом окне импорта кода выберите папку "Фрагменты кода" в правой области. Выберите Готово, затем выберите ОК.
В зависимости от языка кода фрагмент копируется в одно из следующих расположений:
%USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual C#\My Code Snippets%USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual Basic\My Code Snippets
%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets
Протестируйте фрагмент, открыв проект C# или Visual Basic. Открыв файл кода в редакторе, выполните одно из следующих действий:
- В строке меню Visual Studio нажмите кнопку "Изменить>IntelliSense>Insert Snippet".
- Щелкните правой кнопкой мыши и выберите фрагмент>вставить фрагмент из контекстного меню.
- На клавиатуре нажмите клавиши CTRL+K, X.
Откройте фрагменты кода и дважды щелкните фрагмент кода с именем Square Root. Код фрагмента вставляется в файл кода.
Поля Description и ярлыков
Поле описания содержит дополнительные сведения о фрагменте кода при просмотре в диспетчере фрагментов кода. Ярлык — это тег, который можно ввести для вставки фрагмента кода.
Чтобы изменить фрагмент кода, откройте файл фрагмента кода из одного из следующих расположений в зависимости от языка кода:
- %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual C#\My Code Snippets/SquareRoot.snippet
- %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual Basic\My Code Snippets/SquareRoot.snippet
- %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets/SquareRoot.snippet
- %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets/SquareRoot.snippet
Совет
Так как вы редактировать файл в каталоге, где Visual Studio помещал его, не нужно повторно использовать его в Visual Studio.
Добавьте
Author
иDescription
Shortcut
элементы вHeader
элемент и заполните их.Убедитесь, что элемент выглядит примерно так, как показано
Header
в следующем примере, и сохраните файл.<Header> <Title>Square Root</Title> <Author>Myself</Author> <Description>Calculates the square root of 16.</Description> <Shortcut>sqrt</Shortcut> </Header>
Откройте диспетчер фрагментов кода Visual Studio Code и выберите фрагмент кода. В правой области обратите внимание, что поля "Описание", "Автор" и "Ярлык " теперь заполняются.
Чтобы проверить ярлык, откройте проект, который вы использовали ранее, введите sqrt в редакторе и нажмите клавишу TAB один раз для Visual Basic или дважды для C#. Код фрагмента должен быть вставлен.
Параметры замены
Возможно, пользователь заменит части фрагмента кода. Например, может потребоваться, чтобы пользователь заменил имя переменной на используемое в текущем проекте.
Возможны два типа замен: литералы и объекты.
Используйте элемент Литерала, чтобы определить замену кода, полностью содержащегося в фрагменте кода, который можно настроить после вставки в код. Например, строковое или числовое значение.
Используйте элемент Object для идентификации элемента, который требует фрагмент кода, но, вероятно, определен за пределами фрагмента кода. Например, экземпляр объекта или элемент управления.
Элемент в файле SquareRoot.snippet можно использоватьLiteral
, чтобы пользователи могли легко изменить число, чтобы вычислить квадратный корень.
В файле SquareRoot.snippet измените
Snippet
элемент следующим образом:<Snippet> <Code Language="CSharp"> <![CDATA[double root = Math.Sqrt($Number$);]]> </Code> <Declarations> <Literal> <ID>Number</ID> <ToolTip>Enter the number you want the square root of.</ToolTip> <Default>16</Default> </Literal> </Declarations> </Snippet>
Обратите внимание, что литеральная замена получает идентификатор.
Number
Вы ссылаетесь на этот идентификатор в фрагменте кода, окружив его$
символами, как показано ниже.<![CDATA[double root = Math.Sqrt($Number$);]]>
Сохраните файл фрагмента.
Откройте проект и вставьте фрагмент.
После вставки фрагмента кода редактируемый литерал выделяется для замены. Наведите указатель мыши на замещающий параметр, чтобы увидеть подсказку для значения.
Совет
Если в фрагменте кода есть несколько заменяемых параметров, можно нажать клавишу TAB , чтобы перейти от одного параметра к другому, чтобы изменить значения.
Импорт пространства имен
Фрагмент кода можно использовать для добавления директивы using
(C#) или оператора Imports
(Visual Basic), включив элемент Imports. Для проектов .NET Framework вы можете добавить ссылку на проект с помощью элемента References.
В следующем XML-коде показан фрагмент кода, который использует метод File.Exists
в System.IO
пространстве имен и поэтому определяет элемент Import для импорта System.IO
пространства имен.
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>File Exists</Title>
<Shortcut>exists</Shortcut>
</Header>
<Snippet>
<Code Language="CSharp">
<![CDATA[var exists = File.Exists("C:\\Temp\\Notes.txt");]]>
</Code>
<Imports>
<Import>
<Namespace>System.IO</Namespace>
</Import>
</Imports>
</Snippet>
</CodeSnippet>
</CodeSnippets>
Связанный контент
- Справочные материалы по схеме XML кода IntelliSense в Visual Studio см . в справочнике по схеме фрагментов кода.
- Сведения о создании фрагментов в Visual Studio Code см. в статье "Создание собственных фрагментов".