Tutorial: Crear un fragmento de códigoWalkthrough: Create a code snippet

Puede crear un fragmento de código en unos pocos pasos.You can create a code snippet with only a few steps. Lo único que debe hacer es crear un archivo XML, rellenar los elementos correspondientes y agregarle código.All you need to do is create an XML file, fill in the appropriate elements, and add your code to it. Opcionalmente, puede usar parámetros de reemplazo y referencias de proyecto.You can optionally make use of replacement parameters and project references. Importe el fragmento de código a la instalación de Visual Studio mediante el botón Importar del Administrador de fragmentos de código (Herramientas > Administrador de fragmentos de código).Import the snippet to your Visual Studio installation by using the Import button in the Code Snippets Manager (Tools > Code Snippets Manager).

Plantilla de fragmento de códigoSnippet template

El siguiente XML es la plantilla básica de fragmento de código: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>

Crear un fragmento de códigoCreate a code snippet

  1. Cree un archivo XML en Visual Studio y agregue la plantilla que se ha mostrado anteriormente.Create a new XML file in Visual Studio and add the template shown above.

  2. Rellene el título del fragmento de código en el elemento Título.Fill in the title of the snippet in the Title element. Use el título Raíz cuadrada.Use the title Square Root.

  3. Rellene el lenguaje del fragmento de código en el atributo Language del elemento Code.Fill in the language of the snippet in the Language attribute of the Code element. En C#, use CSharp; en Visual Basic, use VB; y en C++, use CPP.For C#, use CSharp, for Visual Basic, use VB, and for C++, use CPP.

    Sugerencia

    Para ver todos los valores de lenguaje disponibles, vaya a la sección Atributos del elemento Code de la página Referencia de esquemas de fragmentos de código.To see all the available language values, browse the Code element attributes section on the Code snippets schema reference page.

  4. Agregue el código del fragmento de código en la sección CDATA, dentro del elemento Code.Add the snippet code in the CDATA section inside the Code element.

    Para C#:For C#:

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

    O bien, en Visual Basic:Or for Visual Basic:

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

    Nota

    No puede especificar cómo se debe aplicar sangría o formato a las líneas de código en la sección CDATA de un fragmento de código.You can't specify how lines of code in the CDATA section of a code snippet should be indented or formatted. Después de la inserción, el servicio de lenguaje aplica el formato automáticamente al código insertado.Upon insertion, the language service formats the inserted code automatically.

  5. Guarde el fragmento de código como SquareRoot.snippet (puede guardarlo en cualquier lugar).Save the snippet as SquareRoot.snippet (you can save it anywhere).

Importar un fragmento de códigoImport a code snippet

  1. Puede importar un fragmento de código a la instalación de Visual Studio mediante el Administrador de fragmentos de código.You can import a snippet to your Visual Studio installation by using the Code Snippets Manager. Para abrirlo, seleccione Herramientas > Administrador de fragmentos de código.Open it by choosing Tools > Code Snippets Manager.

  2. Haga clic en el botón Importar.Click the Import button.

  3. Vaya a la ubicación donde ha guardado el fragmento de código en el procedimiento anterior, selecciónelo y haga clic en Abrir.Go to the location where you saved the code snippet in the previous procedure, select it, and click Open.

  4. Se abre el cuadro de diálogo Importar fragmento de código, que le pide que elija entre las opciones del panel derecho dónde agregar el fragmento de código.The Import Code Snippet dialog opens, asking you to choose where to add the snippet from the choices in the right pane. Una de las opciones debería ser Mis fragmentos de código.One of the choices should be My Code Snippets. Selecciónela, haga clic en Finalizar y después en Aceptar.Select it and click Finish, then OK.

  5. El fragmento de código se copia en una de las ubicaciones siguientes, según el lenguaje del código: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 Basic\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 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 C#\My Code Snippets %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets

  6. Pruebe el fragmento de código. Para ello, abra un proyecto de C# o Visual Basic.Test your snippet by opening a C# or Visual Basic project. Con un archivo de código abierto en el editor, seleccione Fragmentos de código > Insertar fragmento de código en el menú contextual y luego Mis fragmentos de código.With a code file open in the editor, choose Snippets > Insert Snippet from the right-click menu, then My Code Snippets. Debería ver un fragmento de código denominado Raíz cuadrada.You should see a snippet named Square Root. Haga doble clic en ella.Double-click it.

    El fragmento de código se inserta en el archivo de código.The snippet code is inserted in the code file.

Campos de descripción y de acceso directoDescription and shortcut fields

  1. Los campos de descripción proporcionan más información sobre el fragmento de código cuando se visualiza en el Administrador de fragmentos de código.Description fields give more information about your code snippet when viewed in the Code Snippets Manager. El acceso directo es una etiqueta que los usuarios pueden escribir con el fin de insertar el fragmento de código.The shortcut is a tag that users can type in order to insert your snippet. Edite el fragmento de código que ha agregado. Para ello, abra el archivo %USERPROFILE%\Documents\Visual Studio 2017\Code Snippets\[Visual C# o 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. Los campos de descripción proporcionan más información sobre el fragmento de código cuando se visualiza en el Administrador de fragmentos de código.Description fields give more information about your code snippet when viewed in the Code Snippets Manager. El acceso directo es una etiqueta que los usuarios pueden escribir con el fin de insertar el fragmento de código.The shortcut is a tag that users can type in order to insert your snippet. Edite el fragmento de código que ha agregado. Para ello, abra el archivo %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\[Visual C# o 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.

Sugerencia

Puesto que está editando el archivo en el directorio donde Visual Studio lo ha colocado, no tiene que volver a importarlo a 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. Agregue elementos Author y Description al elemento Header y rellénelos.Add Author and Description elements to the Header element, and fill them in.

  2. El elemento Header debe ser similar al siguiente: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. Abra el Administrador de fragmentos de código y seleccione su fragmento de código.Open the Code Snippets Manager and select your code snippet. En el panel derecho, observe que ahora los campos Descripción y Autor están rellenos.In the right pane, notice that the Description and Author fields are now populated.

    Descripción del fragmento de código en el Administrador de fragmentos de código

  4. Para agregar un acceso directo, agregue un elemento Acceso directo dentro del elemento Encabezado: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. Guarde de nuevo el archivo de fragmento de código.Save the snippet file again.

  6. Para probar el acceso directo, abra el proyecto que ha usado anteriormente, escriba sqrt en el editor y presione Tab (una vez en Visual Basic, dos veces en 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#).

    Se inserta el fragmento de código.The snippet code is inserted.

Parámetros de reemplazoReplacement parameters

Es posible que quiera que partes de un fragmento de código sean reemplazadas por el usuario.You may want parts of a code snippet to be replaced by the user. Por ejemplo, puede querer que el usuario reemplace un nombre de variable por uno de su proyecto actual.For example, you might want the user to replace a variable name with one in their current project. Puede proporcionar dos tipos de reemplazos: literales y objetos.You can provide two types of replacements: literals and objects. Use el elemento Literal para identificar un reemplazo de un fragmento de código que está totalmente incluido en el fragmento, pero que posiblemente se personalice una vez insertado en el código (por ejemplo, una cadena o un valor numérico).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). Use el elemento Object para identificar un elemento que el fragmento de código necesita pero que probablemente se defina fuera del propio fragmento de código (por ejemplo, una instancia de objeto o un control).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. Para permitir al usuario reemplazar fácilmente el número cuya raíz cuadrada se va a calcular, modifique el elemento Snippet del archivo SquareRoot.snippet de esta forma: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>
    

    Observe que al reemplazo de literal se le asigna un identificador (Number).Notice that the literal replacement is given an ID (Number). Se hace referencia a ese identificador desde dentro del fragmento de código al rodearlo con caracteres $:That ID is referenced from within the code snippet by surrounding it with $ characters:

    <![CDATA[double root = Math.Sqrt($Number$);]]>
    
  2. Guarde el archivo de fragmento de código.Save the snippet file.

  3. Abra un proyecto e inserte el fragmento de código.Open a project and insert the snippet.

    El fragmento de código se inserta y el literal editable se resalta para su reemplazo.The code snippet is inserted and the editable literal is highlighted for replacement. Mantenga el mouse sobre el parámetro de reemplazo para ver la información sobre herramientas del valor.Hover over the replacement parameter to see the tooltip for the value.

    Información sobre herramientas de parámetro de reemplazo de fragmento de código en Visual Studio

    Sugerencia

    Si hay más de un parámetro reemplazable en un fragmento de código, puede presionar Tab para ir de uno a otro a fin de cambiar los valores.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.

Importar un espacio de nombresImport a namespace

Puede usar un fragmento de código para agregar una directiva using (C#) o una instrucción Imports (Visual Basic) mediante la inclusión del elemento Imports.You can use a code snippet to add a using directive (C#) or Imports statement (Visual Basic) by including the Imports element. En los proyectos de .NET Framework, también puede agregar una referencia al proyecto mediante el elemento References.For .NET Framework projects, you can also add a reference to the project by using the References element.

El siguiente XML muestra un fragmento de código que usa el método File.Exists en el espacio de nombres System.IO y, por lo tanto, define el elemento Imports para importar el espacio de nombres 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>

Vea tambiénSee also