Distribución de fragmentos de código como una extensión de Visual Studio

Los fragmentos de código se pueden entregar a los compañeros para que los instalen en sus equipos mediante el Administrador de fragmentos de código. Aunque si tiene que distribuir varios fragmentos de código o quiere distribuirlos más ampliamente, puede incluir los archivos de fragmento de código en una extensión de Visual Studio. Los usuarios de Visual Studio pueden después instalar la extensión para obtener los fragmentos de código.

Prerrequisitos

Instalar la carga de trabajo Desarrollo de extensiones de Visual Studio para obtener acceso a las plantillas de proyecto Proyecto VSIX.

Carga de trabajo Desarrollo de extensiones de Visual Studio

Configurar la estructura de directorios de extensión

En este procedimiento se usa el mismo fragmento de código de Hola mundo creado en Tutorial: Creación de un fragmento de código. En este artículo se ofrece el fragmento de código de XML, por lo que no tendrá que volver atrás y crear un fragmento de código.

  1. Cree un proyecto a partir de la plantilla Proyecto VSIX vacío y asígnele el nombre TestSnippet.

  2. En el proyecto TestSnippet, agregue un nuevo archivo XML y llámelo VBCodeSnippet.snippet (.snippet es la nueva extensión de archivo). Reemplace el contenido por el siguiente XML:

    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippets
        xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
      <CodeSnippet Format="1.0.0">
        <Header>
          <Title>Hello World VB</Title>
          <Shortcut>HelloWorld</Shortcut>
          <Description>Inserts code</Description>
          <Author>MSIT</Author>
          <SnippetTypes>
            <SnippetType>Expansion</SnippetType>
            <SnippetType>SurroundsWith</SnippetType>
          </SnippetTypes>
        </Header>
        <Snippet>
          <Code Language="VB">
            <![CDATA[Console.WriteLine("Hello, World!")]]>
          </Code>
        </Snippet>
      </CodeSnippet>
    </CodeSnippets>
    
  3. En el Explorador de soluciones, seleccione el nodo del proyecto y agregue una carpeta que tenga el mismo nombre que quiere para el fragmento de código en el Administrador de fragmentos de código. En este caso sería HelloWorldVB.

  4. Mueva el archivo .snippet a la carpeta HelloWorldVB.

  5. Seleccione el archivo .snippet en el Explorador de soluciones y, en la ventana Propiedades, asegúrese de que Acción de compilación esté establecido en Contenido, de que Copiar en el directorio de salida esté establecido en Copiar siempre y de que Incluir en VSIX esté establecido en true.

Agregar el archivo .pkgdef

  1. Agregue un archivo de texto a la carpeta HelloWorldVB y asígnele el nombre HelloWorldVB.pkgdef. Este archivo se usa para agregar determinadas claves al registro. Para obtener más información, vea Visualización del registro del fragmento de código (opcional).

  2. Agregue las líneas siguientes al archivo.

    // Visual Basic
    [$RootKey$\Languages\CodeExpansions\Basic\Paths]
    "HelloWorldVB"="$PackageFolder$"
    

    Si examina esta clave, puede ver cómo especificar lenguajes distintos a Visual Basic.

  3. Seleccione el archivo .pkgdef en el Explorador de soluciones y, en la ventana Propiedades, asegúrese de que:

    • Acción de compilación se establece en Contenido
    • Copiar en el directorio de salida está establecido en Copiar siempre
    • Incluir en VSIX está establecido en true
  4. Agregue el archivo .pkgdef como activo en el manifiesto de VSIX. En el archivo source.extension.vsixmanifest, vaya a la pestaña Activos y haga clic en Nuevo.

  5. En el cuadro de diálogo Agregar nuevo activo, establezca Tipo en Microsoft.VisualStudio.VsPackage, Source en Archivo en filesystem y Ruta de acceso en HelloWorldVB.pkgdef (debe aparecer en la lista desplegable). Seleccione Aceptar para guardar este nuevo recurso.

Registrar el fragmento

  1. Vaya a Herramientas>Administrador de fragmentos de código y establezca el Lenguaje en Basic.

  2. Seleccione Agregar..., vaya a la carpeta HelloWorldVB del directorio de la solución y elija Seleccionar carpeta.

  3. HelloWorldVB ahora es una de las carpetas de fragmentos de código. Expanda la carpeta para ver el fragmento de código HelloWorldVB. Seleccione Aceptar para guardar esta carpeta recién agregada.

Probar el fragmento de código

Ahora hay que asegurarse de que el fragmento de código funciona en la instancia experimental de Visual Studio. La instancia experimental es una segunda copia de Visual Studio que es independiente de la que se emplea para escribir código. Permite trabajar en una extensión sin que el entorno de desarrollo se vea afectado.

  1. Compile la solución y comience la depuración.

    Se muestra una segunda instancia de Visual Studio.

  2. Pruebe el fragmento de código. En la instancia experimental, abra un proyecto de Visual Basic y luego abra uno de los archivos de código. Coloque el cursor en algún lugar del código, haga clic con el botón derecho y, en el menú contextual, seleccione Fragmento de código y, después, Insertar fragmento de código.

  3. Haga doble clic en la carpeta HelloWorldVB. Debería ver un elemento emergente Insertar fragmento de código: HellowWorldVB > con una lista desplegable HelloWorldVB. Haga doble clic en la lista desplegable de HelloWorldVB.

    Se agrega la siguiente línea al archivo de código:

    Console.WriteLine("Hello, World!")
    

Visualización del registro del fragmento de código (opcional)

Este archivo .pkgdef se usa para agregar determinadas claves al registro. Después de registrar el fragmento de código, si necesita ver las claves del Registro en el subárbol del registro privado, puede encontrarlos en la siguiente subclave:

Visual Studio 2022: HKEY_USERS\IsolatedHiveName\Software\Microsoft\VisualStudio\17.0_configID\Languages\CodeExpansions\Basic\Paths

Visual Studio 2019: HKEY_USERS\IsolatedHiveName\Software\Microsoft\VisualStudio\16.0_configID\Languages\CodeExpansions\Basic\Paths

Para ver las claves del Registro en esta ubicación, cierre Primero Visual Studio, abra el editor del Registro y, a continuación, cargue el subárbol del Registro privado en HKEY_USERS.

Importante

Si compruebe el registro, asegúrese de descargar el subárbol del Registro privado antes de iniciar Visual Studio.

Por ejemplo, las claves del Registro pueden aparecer como se muestra aquí.

Captura de pantalla de las claves del Registro para fragmentos de código.