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.

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.