Referencia de esquemas de fragmentos de código
Los fragmentos de código son fragmentos de código autenticados previamente que están listos para insertarse en la aplicación. Puede aumentar la productividad y la confiabilidad mediante fragmentos de código para reducir el tiempo dedicado a escribir código repetitivo o buscar ejemplos.
En este artículo se proporciona una referencia al esquema XML del fragmento de código de IntelliSense de Visual Studio. Puede usar el esquema para crear sus propios fragmentos de código y agregarlos a los fragmentos de código que Visual Studio ya incluye.
- Para obtener más información sobre cómo crear fragmentos de código, vea Tutorial: Creación de un fragmento de código en Visual Studio.
- Para obtener información sobre los fragmentos de código que Visual Studio incluye de forma predeterminada, vea Fragmentos de código de C# o fragmentos de código de Visual C++.
Elemento Assembly
Especifica el nombre del ensamblado al que el fragmento de código hace referencia.
El valor de texto del elemento Assembly puede ser bien el nombre descriptivo del ensamblado, como System.dll
, o su nombre seguro, como System,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa323c18d4fb1
.
<Assembly>
AssemblyName
</Assembly>
Elemento primario | Descripción |
---|---|
Elemento Reference | Contiene información sobre las referencias de ensamblado requeridas por el fragmento de código. |
Se requiere un valor de texto. Este texto especifica el ensamblado al que hace referencia el fragmento de código.
Elemento Author
Especifica el nombre del autor del fragmento. El Administrador de fragmentos de código muestra el nombre del fragmento de código almacenado en el elemento Author
del fragmento de código.
<Author>
Code Snippet Author
</Author>
Elemento primario | Descripción |
---|---|
Elemento Header | Contiene información general sobre el fragmento de código. |
Se requiere un valor de texto. Este texto especifica al autor del fragmento de código.
Elemento de código
Proporciona un contenedor para los bloques de código cortos.
Palabras clave
Se pueden usar dos palabras reservadas en el texto del elemento Code
: $end$
y $selected$
. $end$
marca la ubicación en la que se coloca el cursor después de insertar el fragmento de código. $selected$
representa el texto del documento seleccionado que se va a insertar en el fragmento de código cuando se invoca el fragmento de código. Por ejemplo, dado un fragmento de código que incluya:
$selected$ is a great color.
Si se selecciona la palabra Blue
cuando el usuario invoca el fragmento de código, el resultado es:
Blue is a great color.
No puede usar $end$
o $selected$
más de una vez en un fragmento de código. Si lo hace, se reconoce solo la segunda instancia. Dado un fragmento de código que incluya:
$selected$ is a great color. I love $selected$.
Si se selecciona la palabra Blue
, el resultado es:
is a great color. I love Blue.
Aparece el espacio inicial porque hay un espacio entre $selected$
y is
.
Todas las demás palabras clave $
se definen dinámicamente en las etiquetas <Literal>
y <Object>
.
El código siguiente muestra la estructura del Code
elemento :
<Code Language="Language"
Kind="method body/method decl/type decl/page/file/any"
Delimiter="Delimiter">
Code to insert
</Code>
Se requiere un valor de texto. Este texto especifica el código, junto con los literales y objetos, que se pueden usar cuando este fragmento de código se inserta en un archivo de código.
Atributos
Hay tres atributos disponibles para el Code
elemento :
Idioma. Atributo obligatorio que especifica el idioma del fragmento de código. El valor debe ser uno de los siguientes valores:
Valor Descripción VB
Fragmento de código de Visual Basic. CSharp
Fragmento de código de C#. CPP
Fragmento de código de C++. XAML
Fragmento de código XAML. XML
Fragmento de código XML. JavaScript
Fragmento de código de JavaScript. TypeScript
Fragmento de código de TypeScript. SQL
Fragmento de código SQL. HTML
Fragmento de código HTML. Kind. Atributo opcional que especifica el tipo de código que contiene el fragmento de código. El valor debe ser uno de los siguientes valores:
Valor Descripción method body
El fragmento de código es un cuerpo del método y, por tanto, debe insertarse dentro de una declaración de método. method decl
El fragmento de código es un método y, por tanto, debe insertarse dentro de una clase o módulo. type decl
El fragmento de código es un tipo y, por tanto, debe insertarse dentro de una clase, un módulo o un espacio de nombres. file
El fragmento de código es un archivo de código completo y se puede insertar solo en un archivo de código o dentro de un espacio de nombres. any
El fragmento de código se puede insertar en cualquier lugar. Esta etiqueta se utiliza para fragmentos de código que son independientes del contexto, como los comentarios. Delimitador. Atributo opcional que especifica el delimitador usado para describir literales y objetos en el código. De manera predeterminada, el delimitador es
$
.
Elemento primario
Elemento primario | Descripción |
---|---|
Elemento Snippet | Contiene las referencias, las importaciones, las declaraciones y el código para el fragmento de código. |
Elemento CodeSnippet
Permite especificar un título y varios fragmentos de código, que se pueden insertar en los archivos de código de Visual Studio Code.
<CodeSnippet Format="x.x.x">
<Header>... </Header>
<Snippet>... </Snippet>
</CodeSnippet>
Atributo | Descripción |
---|---|
Formato | Atributo obligatorio . Especifica la versión del esquema del fragmento de código. El atributo Format debe ser una cadena en la sintaxis de x.x.x , donde cada x uno representa un valor numérico del número de versión. Visual Studio omite los fragmentos de código con atributos Format que no entiende. |
Elemento secundario | Descripción |
---|---|
Elemento Header | Elemento obligatorio . Contiene información general sobre el fragmento de código. En un fragmento de código debe haber uno y solo un elemento Header . |
Elemento Snippet | Elemento obligatorio . Contiene el código que va a insertar Visual Studio. En un fragmento de código debe haber uno y solo un elemento Snippet . |
Elemento primario | Descripción |
---|---|
Elemento CodeSnippets | Elemento raíz del esquema XML del fragmento de código. |
Elemento CodeSnippets
Agrupa elementos CodeSnippet. El elemento CodeSnippets
es el elemento raíz del esquema XML del fragmento de código.
<CodeSnippets>
<CodeSnippet>... </CodeSnippet>
</CodeSnippets>
Elemento secundario | Descripción |
---|---|
Elemento CodeSnippet | Elemento opcional. Elemento primario de todos los datos del fragmento de código. Puede haber cero o más elementos CodeSnippet en un elemento CodeSnippets . |
Elemento Declarations
Especifica los literales y los objetos que componen las partes de un fragmento de código que puede editar.
<Declarations>
<Literal>... </Literal>
<Object>... </Object>
</Declarations>
Elemento secundario | Descripción |
---|---|
Elemento Literal | Elemento opcional. Define los literales del fragmento de código que puede editar. Puede haber cero o más elementos Literal en un elemento Declarations . |
Elemento Object | Elemento opcional. Define los objetos del fragmento de código modificable. Puede haber cero o más elementos Object en un elemento Declarations . |
Elemento primario | Descripción |
---|---|
Elemento Snippet | Contiene las referencias, las importaciones, las declaraciones y el código para el fragmento de código. |
Elemento Default
Especifica el valor predeterminado del literal o del objeto para un fragmento de código.
<Default>
Default value
</Default>
Elemento primario | Descripción |
---|---|
Elemento Literal | Define los campos literales del fragmento de código que se pueden editar. |
Elemento Object | Define los campos del objeto del fragmento de código que se pueden editar. |
Se requiere un valor de texto. Este texto especifica el valor predeterminado del literal o del objeto que ocupa los campos del fragmento de código que puede editar.
Elemento Description
Especifica información descriptiva sobre el contenido de un fragmento de código.
<Description>
Code Snippet Description
</Description>
Elemento primario | Descripción |
---|---|
Elemento Header | Contiene información general sobre el fragmento de código. |
Se requiere un valor de texto. Este texto describe el fragmento de código.
Function, elemento
Especifica una función que se ejecutará cuando un literal o un objeto reciba foco en Visual Studio.
Nota
No todos los lenguajes admiten elementos Function
. Consulte la documentación específica del lenguaje sobre las funciones que están disponibles.
<Function>
FunctionName
</Function>
Elemento primario | Descripción |
---|---|
Elemento Literal | Define los campos literales del fragmento de código que se pueden editar. |
Elemento Object | Define los campos del objeto del fragmento de código que se pueden editar. |
Se requiere un valor de texto. Este texto especifica una función que se ejecutará cuando el campo del literal u objeto reciba el foco en Visual Studio.
Elemento Header
Especifica información general sobre el fragmento de código.
<Header>
<Title>... </Title>
<Author>... </Author>
<Description>... </Description>
<HelpUrl>... </HelpUrl>
<SnippetTypes>... </SnippetTypes>
<Keywords>... </Keywords>
<Shortcut>... </Shortcut>
</Header>
Elemento secundario | Descripción |
---|---|
Elemento Author | Elemento opcional. El nombre de la persona o compañía que creó el fragmento de código. Puede haber cero o un Author elemento en un Header elemento . |
Elemento Description | Elemento opcional. Descripción del fragmento de código. Puede haber cero o un Description elemento en un Header elemento . |
Elemento HelpUrl | Elemento opcional. Dirección URL que contiene más información sobre el fragmento de código. Puede haber cero o un HelpURL elemento en un Header elemento . |
Elemento Keywords | Elemento opcional. Agrupa los elementos Keyword . Puede haber cero o un Keywords elemento en un Header elemento . |
Elemento Shortcut | Elemento opcional. Especifica el texto de acceso directo que se puede utilizar para insertar el fragmento. Puede haber cero o un Shortcut elemento en un Header elemento . |
Elemento SnippetTypes | Elemento opcional. Agrupa los elementos SnippetType . Puede haber cero o un SnippetTypes elemento en un Header elemento . Si no hay ningún elemento SnippetTypes , el fragmento de código siempre es válido. |
Elemento Title | Elemento obligatorio . Nombre descriptivo del fragmento de código. Debe haber uno y solo un elemento Title en un elemento Header . |
Elemento primario | Descripción |
---|---|
Elemento CodeSnippet | Elemento primario de todos los datos del fragmento de código. |
Elemento HelpUrl
Especifica una dirección URL que proporciona más información acerca de un fragmento de código.
Nota:
Visual Studio no usa el HelpUrl
elemento . El elemento forma parte del esquema XML del fragmento de código de IntelliSense y de fragmentos de código que contienen la validación del elemento, pero el valor del elemento nunca se usa.
<HelpUrl>
www.microsoft.com
</HelpUrl>
Elemento primario | Descripción |
---|---|
Elemento Header | Contiene información general sobre el fragmento de código. |
El valor de texto es opcional. Este texto especifica la dirección URL que se puede visitar para obtener mas información sobre un fragmento de código.
Elemento ID
Especifica un identificador único para un elemento Literal
u Object
. Dos literales u objetos en el mismo fragmento de código no pueden tener el mismo valor de texto en sus elementos ID
. Los literales y los objetos no pueden contener un ID
elemento con un valor de end
. El valor $end$
está reservado y se utiliza para marcar la ubicación en que se coloca el cursor después de insertar el fragmento de código.
<ID>
Unique Identifier
</ID>
Elemento primario | Descripción |
---|---|
Elemento Literal | Define los campos literales del fragmento de código que se pueden editar. |
Elemento Object | Define los campos del objeto del fragmento de código que se pueden editar. |
Se requiere un valor de texto. Este texto especifica el identificador único del objeto o literal.
Elemento Import
Especifica los espacios de nombres importados usados por un fragmento de código.
<Import>
<Namespace>... </Namespace>
</Import>
Elemento secundario | Descripción |
---|---|
Elemento Namespace | Elemento obligatorio . Especifica el espacio de nombres utilizado por el fragmento de código. Debe haber uno y solo un elemento Namespace en un elemento Import . |
Elemento primario | Descripción |
---|---|
Elemento Imports | Elemento de agrupación de los elementos Import . |
Elemento Imports
Agrupa los elementos Import
individuales.
<Imports>
<Import>... </Import>
</Imports>
Elemento secundario | Descripción |
---|---|
Elemento Import | Elemento opcional. Contiene los espacios de nombres importados para el fragmento de código. Puede haber cero o más elementos Import en un elemento Imports . |
Elemento primario | Descripción |
---|---|
Elemento Snippet | Contiene las referencias, las importaciones, las declaraciones y el código para el fragmento de código. |
Elemento Keyword
Especifica una palabra clave personalizada para el fragmento de código. Visual Studio utiliza las palabras clave del fragmento de código. Los proveedores de contenido en línea utilizan este método estándar para agregar palabras clave personalizadas para la búsqueda o clasificación.
<Keyword>
Code Snippet Keyword
</Keyword>
Elemento primario | Descripción |
---|---|
Elemento Keywords | Agrupa los elementos Keyword individuales. |
Se requiere un valor de texto. La palabra clave del fragmento de código.
Elemento Keywords
Agrupa los elementos Keyword
individuales. Visual Studio utiliza las palabras clave del fragmento de código. Los proveedores de contenido en línea utilizan este método estándar para agregar palabras clave personalizadas para la búsqueda o clasificación.
<Keywords>
<Keyword>... </Keyword>
<Keyword>... </Keyword>
</Keywords>
Elemento secundario | Descripción |
---|---|
Elemento Keyword | Elemento opcional. Contiene palabras clave individuales para el fragmento de código. Puede haber cero o más elementos Keyword en un elemento Keywords . |
Elemento primario | Descripción |
---|---|
Elemento Header | Contiene información general sobre el fragmento de código. |
elemento Literal
Define los literales del fragmento de código que puede editar. El Literal
elemento identifica un reemplazo de un fragmento de código completamente contenido en el fragmento de código que se puede personalizar después de insertar el fragmento de código. Por ejemplo, las cadenas literales, los valores numéricos y algunos nombres de variables se deben declarar como literales.
Los literales y los objetos no pueden contener un ID
elemento con un valor de selected
o end
. El valor $selected$
representa el texto del documento seleccionado que se va a insertar en el fragmento de código cuando se invoca el fragmento de código. $end$
marca la ubicación en la que se coloca el cursor después de insertar el fragmento de código.
<Literal Editable="true/false">
<ID>... </ID>
<ToolTip>... </ToolTip>
<Default>... </Default>
<Function>... </Function>
</Literal>
Atributo | Descripción |
---|---|
Editable | Atributo Boolean opcional. Especifica si puede o no editar el literal después de insertar el fragmento de código. El valor predeterminado de este atributo es true . |
Elemento secundario | Descripción |
---|---|
Elemento Default | Elemento obligatorio . Especifica el valor predeterminado del literal cuando inserta el fragmento de código. Debe haber uno y solo un elemento Default en un elemento Literal . |
Elemento Function | Elemento opcional. Especifica una función que se ejecuta cuando el literal recibe el foco en Visual Studio. Puede haber cero o un Function elemento en un Literal elemento . |
Elemento ID | Elemento obligatorio . Especifica un identificador único para el literal. Debe haber uno y solo un elemento ID en un elemento Literal . |
Elemento ToolTip | Elemento opcional. Describe el valor esperado y el uso del literal. Puede haber cero o un ToolTip elemento en un Literal elemento . |
Elemento primario | Descripción |
---|---|
Elemento Declarations | Contiene los literales y objetos de un fragmento de código que se pueden editar. |
Elemento Namespace
Especifica el espacio de nombres que se debe importar para compilar y ejecutar el fragmento de código. Si no existe aún, el espacio de nombres especificado en el elemento Namespace
se agrega automáticamente a una directiva using
o a una instrucción Imports
al comienzo del código.
<Namespace>
Namespace
</Namespace>
Elemento primario | Descripción |
---|---|
Elemento Import | Importa el espacio de nombres especificado. |
Se requiere un valor de texto. Este texto especifica un espacio de nombres que el fragmento de código presupone que se ha importado.
Elemento Object
Define los objetos del fragmento de código modificable. El Object
elemento identifica un elemento requerido por el fragmento de código definido fuera del propio fragmento de código. Por ejemplo, los controles de Windows Forms, los controles de ASP.NET, las instancias de objeto y las instancias de tipo se deberían declarar como objetos. Las declaraciones de objeto requieren que se especifique un tipo, que se realiza con el Type
elemento .
<Object Editable="true/false">
<ID>... </ID>
<Type>... </Type>
<ToolTip>... </ToolTip>
<Default>... </Default>
<Function>... </Function>
</Object>
Atributo | Descripción |
---|---|
Editable | Atributo Boolean opcional. Especifica si puede o no editar el literal después de insertar el fragmento de código. El valor predeterminado de este atributo es true . |
Elemento secundario | Descripción |
---|---|
Elemento Default | Elemento obligatorio . Especifica el valor predeterminado del literal cuando inserta el fragmento de código. Debe haber uno y solo un elemento Default en un elemento Literal . |
Elemento Function | Elemento opcional. Especifica una función que se ejecuta cuando el literal recibe el foco en Visual Studio. Puede haber cero o un Function elemento en un Literal elemento . |
Elemento ID | Elemento obligatorio . Especifica un identificador único para el literal. Debe haber uno y solo un elemento ID en un elemento Literal . |
Elemento ToolTip | Elemento opcional. Describe el valor esperado y el uso del literal. Puede haber cero o un ToolTip elemento en un Literal elemento . |
Elemento Type | Elemento obligatorio . Especifica el tipo del objeto. Debe haber uno y solo un elemento Type en un elemento Object . |
Elemento primario | Descripción |
---|---|
Elemento Declarations | Contiene los literales y objetos de un fragmento de código que se pueden editar. |
Elemento Reference
Especifica información sobre las referencias a ensamblados que requiere el fragmento de código.
<Reference>
<Assembly>... </Assembly>
<Url>... </Url>
</Reference>
Elemento secundario | Descripción |
---|---|
Elemento Assembly | Elemento obligatorio . Contiene el nombre del ensamblado al que hace referencia el fragmento de código. Debe haber uno y solo un elemento Assembly en un elemento Reference . |
Elemento Url | Elemento opcional. Contiene una dirección URL que proporciona más información sobre el ensamblado al que se hace referencia. Puede haber cero o un Url elemento en un Reference elemento . |
Elemento primario | Descripción |
---|---|
Elemento References | Elemento de agrupación de los elementos Reference . |
Elemento References
Agrupa los elementos Reference
individuales.
<References>
<Reference>... </Reference>
</References>
Elemento secundario | Descripción |
---|---|
Elemento Reference | Elemento opcional. Contiene información sobre referencias de ensamblado para el fragmento de código. Puede haber cero o más elementos Reference en un elemento References . |
Elemento primario | Descripción |
---|---|
Elemento Snippet | Contiene las referencias, las importaciones, las declaraciones y el código para el fragmento de código. |
Elemento Shortcut
Especifica el texto de acceso directo utilizado para insertar el fragmento de código. El valor de texto de un Shortcut
elemento solo puede contener caracteres alfanuméricos y caracteres de subrayado (_
).
Nota:
El carácter de subrayado (_
) no se admite en los accesos directos de fragmentos de código de C++.
<Shortcut>
Shortcut Text
</Shortcut>
Elemento primario | Descripción |
---|---|
Elemento Header | Contiene información general sobre el fragmento de código. |
El valor de texto es opcional. Este texto se utiliza como método abreviado para insertar el fragmento de código.
Elemento Snippet
Especifica las referencias, las importaciones, las declaraciones y el código para el fragmento de código.
<Snippet>
<References>... </References>
<Imports>... </Imports>
<Declarations>... </Declarations>
<Code>... </Code>
</Snippet>
Elemento secundario | Descripción |
---|---|
Elemento Code | Elemento obligatorio . Especifica el código que desea insertar en un archivo de documentación. Debe haber uno y solo un elemento Code en un elemento Snippet . |
Elemento Declarations | Elemento opcional. Especifica los literales y los objetos que componen las partes de un fragmento de código que puede editar. Puede haber cero o un Declarations elemento en un Snippet elemento . |
Elemento Imports | Elemento opcional. Agrupa los elementos Import individuales. Puede haber cero o un Imports elemento en un Snippet elemento . |
Elemento References | Elemento opcional. Agrupa los elementos Reference individuales. Puede haber cero o un References elemento en un Snippet elemento . |
Elemento primario | Descripción |
---|---|
Elemento CodeSnippet | Permite especificar un título y varios fragmentos de código, que se pueden insertar en los archivos de código de Visual Studio Code. |
elemento SnippetType
Especifica cómo Visual Studio agrega el fragmento de código.
<SnippetType>
SurroundsWith/Expansion
</SnippetType>
Elemento primario | Descripción |
---|---|
Elemento SnippetTypes | Agrupa los elementos SnippetType . |
El valor debe ser uno de los siguientes valores:
Valor | Descripción |
---|---|
Expansion |
Permite insertar el fragmento de código en el cursor. |
Refactoring |
Especifica que el fragmento de código se usa durante la refactorización de C#. Refactoring no se puede usar en fragmentos de código personalizados. |
SurroundsWith |
Permite colocar el fragmento de código alrededor de un fragmento de código seleccionado. |
Elemento SnippetTypes
Agrupa los elementos SnippetType
individuales. Si el SnippetTypes
elemento no está presente, el fragmento de código se puede insertar en el cursor o colocarse alrededor del código seleccionado.
<SnippetTypes>
<SnippetType>... </SnippetType>
<SnippetType>... </SnippetType>
</SnippetTypes>
Elemento secundario | Descripción |
---|---|
Elemento SnippetType | Elemento opcional. Especifica la manera en que Visual Studio inserta el fragmento en el código. Puede haber cero o más elementos SnippetType en un elemento SnippetTypes . |
Elemento primario | Descripción |
---|---|
Elemento Header | Especifica información general sobre el fragmento de código. |
Elemento Title
Especifica el título del fragmento de código. El título almacenado en el Title
elemento del fragmento de código aparece en el selector de fragmentos de código y como el nombre del fragmento de código en el Administrador de fragmentos de código.
<Title>
Code Snippet Title
</Title>
Elemento primario | Descripción |
---|---|
Elemento Header | Especifica información general sobre el fragmento de código. |
Se requiere un valor de texto. Este texto especifica el título del fragmento de código.
Elemento ToolTip
Describe el valor esperado y el uso de un literal o objeto en un fragmento de código. Visual Studio muestra esta información en una información sobre herramientas cuando inserta el fragmento de código en un proyecto. La información sobre herramientas también se muestra cuando el mouse mantiene el puntero sobre el literal o el objeto después de insertar el fragmento de código.
<ToolTip>
ToolTip description
</ToolTip>
Elemento primario | Descripción |
---|---|
Elemento Literal | Define los campos literales del fragmento de código que se pueden editar. |
Elemento Object | Define los campos del objeto del fragmento de código que se pueden editar. |
Se requiere un valor de texto. Este texto especifica la descripción de ToolTip que se va a asociar al objeto o literal en el fragmento de código.
Elemento Type
Especifica el tipo del objeto. El Object
elemento identifica un elemento que requiere el fragmento de código, pero probablemente se defina fuera del propio fragmento de código. Por ejemplo, los controles de Windows Forms, los controles de ASP.NET, las instancias de objeto y las instancias de tipo se deberían declarar como objetos. Las declaraciones de objeto requieren que se especifique un tipo, que se realiza con el Type
elemento .
<Type>
Type
</Type>
Elemento primario | Descripción |
---|---|
Elemento Object | Define los campos del objeto del fragmento de código que se pueden editar. |
Se requiere un valor de texto. Este texto especifica el tipo del objeto. Por ejemplo:
<Type>System.Data.SqlClient.SqlConnection</Type>
Elemento Url
Especifica una dirección URL que proporciona más información acerca del ensamblado al que se hace referencia.
Nota:
El Url
elemento solo se admite para proyectos de Visual Basic.
<Url>
www.microsoft.com
</Url>
Elemento primario | Descripción |
---|---|
Elemento Reference | Especifica las referencias a ensamblados que requiere el fragmento de código. |
Se requiere un valor de texto. Este texto especifica una dirección URL con más información sobre el ensamblado al que se ha hecho referencia. Esta dirección URL se muestra cuando no se puede agregar la referencia al proyecto.