Пошаговое руководство. Создание фрагмента кодаWalkthrough: Create a code snippet

Фрагмент кода можно создать всего в несколько шагов.You can create a code snippet with only a few steps. Все, что необходимо сделать, — это создать XML-файл, заполнить соответствующие элементы и добавить в него код.All you need to do is create an XML file, fill in the appropriate elements, and add your code to it. При необходимости вы можете использовать параметры замены и ссылки на проект.You can optionally make use of replacement parameters and project references. Импортируйте фрагмент в папку установки Visual Studio с помощью кнопки Импорт в диспетчере фрагментов кода (Сервис > Диспетчер фрагментов кода).Import the snippet to your Visual Studio installation by using the Import button in the Code Snippets Manager (Tools > Code Snippets Manager).

Шаблон фрагментаSnippet template

Ниже приведен XML-код простого шаблона фрагмента:The following XML is the basic snippet template:

<?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>

Создание фрагмента кодаCreate a code snippet

  1. Создайте XML-файл в Visual Studio и добавьте показанный выше шаблон.Create a new XML file in Visual Studio and add the template shown above.

  2. Введите заголовок фрагмента в элементе Заголовок.Fill in the title of the snippet in the Title element. Используйте заголовок Square Root (Квадратный корень).Use the title Square Root.

  3. Укажите язык фрагмента кода в атрибуте Language элемента Code.Fill in the language of the snippet in the Language attribute of the Code element. Для C# используйте C# , для Visual Basic — VB, а для C++ — CPP.For C#, use CSharp, for Visual Basic, use VB, and for C++, use CPP.

    Совет

    Чтобы просмотреть все доступные значения языка, просмотрите раздел об атрибутах элементов кода на странице Справочник по схеме фрагментов кода.To see all the available language values, browse the Code element attributes section on the Code snippets schema reference page.

  4. Добавьте код фрагмента в раздел CDATA внутри элемента Code.Add the snippet code in the CDATA section inside the Code element.

    Для C#:For C#:

    <Code Language="CSharp">
        <![CDATA[double root = Math.Sqrt(16);]]>
    </Code>
    

    Либо для Visual Basic:Or for Visual Basic:

    <Code Language="VB">
        <![CDATA[Dim root = Math.Sqrt(16)]]>
    </Code>
    

    Примечание

    Для строк кода в разделе CDATA фрагмента кода нельзя указать отступы или форматирование.You can't specify how lines of code in the CDATA section of a code snippet should be indented or formatted. Языковая служба автоматически форматирует вставленный код.Upon insertion, the language service formats the inserted code automatically.

  5. Сохраните фрагмент как SquareRoot.snippet (его можно сохранить в любом месте).Save the snippet as SquareRoot.snippet (you can save it anywhere).

Импорт фрагмента кодаImport a code snippet

  1. Вы можете импортировать фрагмент в установку Visual Studio с помощью диспетчера фрагментов кода.You can import a snippet to your Visual Studio installation by using the Code Snippets Manager. Чтобы открыть его, выберите Сервис > Диспетчер фрагментов кода.Open it by choosing Tools > Code Snippets Manager.

  2. Нажмите кнопку Импорт.Click the Import button.

  3. Перейдите к папке, в которой был сохранен фрагмент кода в предыдущей процедуре, выделите его и нажмите кнопку Открыть.Go to the location where you saved the code snippet in the previous procedure, select it, and click Open.

  4. Откроется диалоговое окно Импорт фрагмента кода, в котором будет предложено выбрать место добавления фрагмента (из вариантов в правой области).The Import Code Snippet dialog opens, asking you to choose where to add the snippet from the choices in the right pane. Один из вариантов должен быть Мои фрагменты кода.One of the choices should be My Code Snippets. Выберите его и нажмите кнопку Готово, а затем — кнопку ОК.Select it and click Finish, then OK.

  5. В зависимости от языка кода фрагмент копируется в одно из следующих расположений:The snippet is copied to one of the following locations, depending on the code language:

    %USERPROFILE%\Documents\Visual Studio 2017\Code Snippets\Visual C#\My Code Snippets%USERPROFILE%\Documents\Visual Studio 2017\Code Snippets\Visual C#\My Code Snippets
    %USERPROFILE%\Documents\Visual Studio 2017\Code Snippets\Visual Basic\My Code Snippets%USERPROFILE%\Documents\Visual Studio 2017\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 C#\My Code Snippets
    %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets

  6. Протестируйте фрагмент, открыв проект C# или Visual Basic.Test your snippet by opening a C# or Visual Basic project. Открыв файл кода в редакторе, выберите пункты Фрагменты > Вставить фрагмент в контекстном меню, а затем щелкните Мои фрагменты кода.With a code file open in the editor, choose Snippets > Insert Snippet from the right-click menu, then My Code Snippets. Вы должны увидеть фрагмент с именем Square Root.You should see a snippet named Square Root. Дважды щелкните его.Double-click it.

    Код фрагмента вставляется в файл кода.The snippet code is inserted in the code file.

Поля Description и ярлыковDescription and shortcut fields

  1. Поля Description предоставляют дополнительные сведения о вашем фрагменте кода при просмотре в диспетчере фрагментов кода.Description fields give more information about your code snippet when viewed in the Code Snippets Manager. Ярлык — это тег, который пользователи могут вводить для вставки фрагмента.The shortcut is a tag that users can type in order to insert your snippet. Измените добавленный фрагмент, открыв файл %USERPROFILE%\Documents\Visual Studio 2017\Code Snippets\[Visual C# или Visual Basic]\My Code Snippet\SquareRoot.snippet.Edit the snippet you have added by opening the file %USERPROFILE%\Documents\Visual Studio 2017\Code Snippets\[Visual C# or Visual Basic]\My Code Snippet\SquareRoot.snippet.
  1. Поля Description предоставляют дополнительные сведения о вашем фрагменте кода при просмотре в диспетчере фрагментов кода.Description fields give more information about your code snippet when viewed in the Code Snippets Manager. Ярлык — это тег, который пользователи могут вводить для вставки фрагмента.The shortcut is a tag that users can type in order to insert your snippet. Измените добавленный фрагмент, открыв файл %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\[Visual C# или Visual Basic]\My Code Snippet\SquareRoot.snippet.Edit the snippet you have added by opening the file %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\[Visual C# or Visual Basic]\My Code Snippet\SquareRoot.snippet.

Совет

Так как вы изменяете файл в том каталоге, куда его поместила система Visual Studio, вам не нужно заново импортировать его в Visual Studio.Since you're editing the file in the directory where Visual Studio placed it, you don't need to reimport it to Visual Studio.

  1. Добавьте элементы Author и Description в элемент Header и заполните их.Add Author and Description elements to the Header element, and fill them in.

  2. Элемент Header должен выглядеть примерно так:The Header element should look something like this:

    <Header>
        <Title>Square Root</Title>
        <Author>Myself</Author>
        <Description>Calculates the square root of 16.</Description>
    </Header>
    
  3. Откройте диспетчер фрагментов кода и выберите фрагмент кода.Open the Code Snippets Manager and select your code snippet. В правой области обратите внимание на то, что поля Description и Author теперь заполнены.In the right pane, notice that the Description and Author fields are now populated.

    Описание фрагмента кода в диспетчере фрагментов кода

  4. Чтобы добавить ярлык, добавьте элемент Shortcut внутрь элемента Header:To add a shortcut, add a Shortcut element within the Header element:

    <Header>
       <Title>Square Root</Title>
       <Author>Myself</Author>
       <Description>Calculates the square root of 16.</Description>
       <Shortcut>sqrt</Shortcut>
     </Header>
    
  5. Сохраните файл фрагмента еще раз.Save the snippet file again.

  6. Чтобы протестировать ярлык, откройте использованный ранее проект, введите sqrt в редакторе и нажмите клавишу TAB (один раз для Visual Basic или два раза для C#).To test the shortcut, open the project you used previously, type sqrt in the editor and press Tab (once for Visual Basic, twice for C#).

    Код фрагмента должен быть вставлен.The snippet code is inserted.

Параметры заменыReplacement parameters

Возможно, вам нужно предоставить пользователю возможность заменять части фрагмента кода.You may want parts of a code snippet to be replaced by the user. Например, может потребоваться, чтобы пользователь заменил имя переменной на используемое в текущем проекте.For example, you might want the user to replace a variable name with one in their current project. Возможны два типа замен: литералы и объекты.You can provide two types of replacements: literals and objects. Элемент Literal используется для определения замещающего элемента для отрывка кода, который полностью заключен во фрагмент, но, скорее всего, будет изменен после вставки в код (например, строка или числовое значение).Use the Literal element to identify a replacement for a piece of code that is entirely contained within the snippet but will likely be customized after it's inserted into the code (for example, a string or numeric value). Элемент Object используется для определения элемента, который необходим во фрагменте кода, но, скорее всего, будет определен вне самого фрагмента (например, экземпляр объекта или элемент управления).Use the Object element to identify an item that's required by the code snippet but is likely to be defined outside of the snippet itself (for example, an object instance or a control).

  1. Чтобы пользователь мог легко заменить число, квадратный корень которого требуется вычислить, измените элемент Snippet в файле SquareRoot.snippet следующим образом:To enable the user to easily replace the number to calculate the square root of, modify the Snippet element of the SquareRoot.snippet file as follows:

    <Snippet>
      <Code Language="CSharp">
        <![CDATA[double root = Math.Sqrt($Number$);]]>
      </Code>
      <Declarations>
        <Literal>
          <ID>Number</ID>
          <ToolTip>Choose the number you want the square root of.</ToolTip>
          <Default>16</Default>
        </Literal>
      </Declarations>
    </Snippet>
    

    Обратите внимание, что замещающему литералу назначен идентификатор (Number).Notice that the literal replacement is given an ID (Number). На этот идентификатор указывает ссылка в фрагменте кода путем заключения его в символы $:That ID is referenced from within the code snippet by surrounding it with $ characters:

    <![CDATA[double root = Math.Sqrt($Number$);]]>
    
  2. Сохраните файл фрагмента.Save the snippet file.

  3. Откройте проект и вставьте фрагмент.Open a project and insert the snippet.

    После вставки фрагмента кода редактируемый литерал выделяется для замены.The code snippet is inserted and the editable literal is highlighted for replacement. Наведите указатель мыши на замещающий параметр, чтобы увидеть подсказку для значения.Hover over the replacement parameter to see the tooltip for the value.

    Подсказка для параметра замены фрагмента кода в Visual Studio

    Совет

    Если в фрагменте имеется несколько заменяемых параметров, можно нажать клавишу TAB, чтобы переходить от одного к другому для изменения значений.If there's more than one replacable parameter in a snippet, you can press Tab to navigate from one to the other to change the values.

Импорт пространства именImport a namespace

Фрагмент кода можно использовать для добавления директивы using (C#) или оператора Imports (Visual Basic), включив элемент Imports.You can use a code snippet to add a using directive (C#) or Imports statement (Visual Basic) by including the Imports element. Для проектов .NET Framework вы можете добавить ссылку на проект с помощью элемента References.For .NET Framework projects, you can also add a reference to the project by using the References element.

Ниже приведен фрагмент XML-кода, который использует метод File.Exists в пространстве имен System.IO и, таким образом, определяет элемент Imports для импорта пространства имен System.IO.The following XML shows a code snippet that uses the method File.Exists in the System.IO namespace and, therefore, defines the Imports element to import the System.IO namespace.

<?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>

См. такжеSee also