Tutorial: Creación de un fragmento de código en Visual Studio
Los fragmentos de código son piezas de código preautorizado y listo para insertarlo en la aplicación. Puedes aumentar la productividad y la fiabilidad si proporcionas fragmentos de código que reduzcan la cantidad de tiempo empleado en escribir código repetitivo o buscar ejemplos.
Puedes crear tus propios fragmentos de código y agregar los fragmentos de código que Visual Studio ya incluye. En este artículo se explica cómo crear un fragmento de código en unos pocos pasos. Debes crear un archivo XML, rellenar los elementos correspondientes y agregar el código al archivo. De forma opcional, puedes usar parámetros de reemplazo y referencias de proyecto. A continuación, debes importar el fragmento de código a la instalación de Visual Studio.
Crear un fragmento de código
Abre Visual Studio y selecciona Continuar sin código en la pantalla Inicio.
En la barra de menús, selecciona Archivo>Nuevo archivo o escribe Ctrl+N.
En el cuadro de diálogo Nuevo archivo, selecciona Archivo XML y luego Abrir.
Pega la siguiente plantilla de fragmento de código básico en la página del editor de código.
<?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>
Escribe el título Raíz cuadrada en el elemento
Title
del fragmento de código.En el atributo Lenguaje del elemento
Code
, escribe CSharp para un fragmento de código de C# o VB para Visual Basic.Sugerencia
Para ver todos los valores de lenguaje disponibles, ve a la sección Atributos de Referencia de esquemas de fragmentos de código.
Agrega el siguiente fragmento de código en la sección
CDATA
del elementoCode
.Para C#:
<![CDATA[double root = Math.Sqrt(16);]]>
En Visual Basic:
<![CDATA[Dim root = Math.Sqrt(16)]]>
Nota:
No puedes especificar cómo se debe aplicar formato o sangría en la sección
CDATA
de un fragmento de código. Después de la inserción, el servicio de lenguaje aplica el formato automáticamente al código insertado.Guarda el fragmento de código como SquareRoot.snippet en cualquier lugar.
Importar el fragmento de código
Para importar el fragmento de código a la instalación de Visual Studio, selecciona Herramientas>Administrador de fragmentos de código o presiona Ctrl+K, B.
En el Administrador de fragmentos de código, selecciona el botón Importar.
Ve a la ubicación del fragmento de código, selecciónalo y selecciona Abrir.
En el cuadro de diálogo Importar fragmento de código, selecciona la carpeta Mis fragmentos de código en el panel derecho. Seleccione Finalizar y luego seleccione Aceptar.
El fragmento de código se copia en una de las ubicaciones siguientes, según el lenguaje del código:
%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
Pruebe el fragmento de código. Para ello, abra un proyecto de C# o Visual Basic. Con un archivo de código abierto en el editor, realiza una de las siguientes acciones:
- En la barra de menús de Visual Studio, elige Edición>IntelliSense>Insertar fragmento de código.
- Haz clic con el botón derecho y elige Fragmento de código>Insertar fragmento de código desde el menú contextual.
- En el teclado, presiona Ctrl+K, X.
Abre Mis fragmentos de código y haz doble clic en el fragmento denominado Raíz cuadrada. El fragmento de código se inserta en el archivo de código.
Campos de descripción y de acceso directo
El campo de descripción proporciona más información sobre el fragmento de código cuando se visualiza en el Administrador de fragmentos de código. El acceso directo es una etiqueta que puedes escribir con el fin de insertar el fragmento de código.
Para editar el fragmento de código, abre el archivo de fragmento de código desde una de las siguientes ubicaciones, en función del lenguaje de código:
- %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
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.
Agrega elementos
Author
,Description
yShortcut
al elementoHeader
elemento y rellénalos.Confirma que el elemento
Header
tiene un aspecto similar al del ejemplo siguiente y guarda el archivo.<Header> <Title>Square Root</Title> <Author>Myself</Author> <Description>Calculates the square root of 16.</Description> <Shortcut>sqrt</Shortcut> </Header>
Abre el Administrador de fragmentos de código de Visual Studio y selecciona tu fragmento de código. En el panel derecho, observa que ahora los campos Descripción y Autor y Acceso directo están rellenos.
Para probar el acceso directo, abre el proyecto que has usado anteriormente, escribe sqrt en el editor y presiona Tab (una vez en Visual Basic, dos veces en C#). Se inserta el fragmento de código.
Parámetros de reemplazo
Es posible que le interese que el usuario reemplace partes de un fragmento de código. Por ejemplo, puede querer que el usuario reemplace un nombre de variable por uno de su proyecto actual.
Puede proporcionar dos tipos de reemplazos: literales y objetos.
Usa el elemento Literal para identificar un reemplazo de código que esté incluido completamente en el fragmento, pero que puede personalizarse tras insertarse en el código. Por ejemplo, una cadena o un valor numérico.
Usa el elemento Object para identificar un elemento necesario para el fragmento de código, pero que probablemente se defina fuera del propio fragmento. Por ejemplo, una instancia de objeto o un control.
Puedes usar un elemento Literal
en el archivo SquareRoot.snippet para ayudar a los usuarios a cambiar fácilmente el número para calcular la raíz cuadrada.
En el archivo SquareRoot.snippet, modifica el elemento
Snippet
del archivo como se indica a continuación:<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>
Observa que al reemplazo de literal se le asigna un identificador,
Number
. Se hace referencia a ese identificador desde dentro del fragmento de código al rodearlo con caracteres$
, como se indica a continuación:<![CDATA[double root = Math.Sqrt($Number$);]]>
Guarde el archivo de fragmento de código.
Abra un proyecto e inserte el fragmento de código.
El fragmento de código se inserta y el literal editable se resalta para su reemplazo. Mantenga el mouse sobre el parámetro de reemplazo para ver la información sobre herramientas del valor.
Sugerencia
Si hay más de un parámetro reemplazable en un fragmento de código, puedes presionar Tab para ir de un parámetro a otro a fin de cambiar los valores.
Importar un espacio de nombres
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. En los proyectos de .NET Framework, también puede agregar una referencia al proyecto mediante el elemento References.
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
.
<?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>
Contenido relacionado
- Para ver la referencia del esquema XML de fragmento de código de IntelliSense de Visual Studio, consulta Referencia de esquema de fragmentos de código.
- Para crear fragmentos de código en Visual Studio Code, consulta Creación de tus propios fragmentos de código.