Compartir vía


Selección y moneda en el IDE

El entorno de desarrollo integrado (IDE) de Visual Studio mantiene información sobre los objetos seleccionados actualmente por los usuarios mediante el contexto de selección. Con el contexto de selección, VSPackages puede participar en el seguimiento de monedas de dos maneras:

  • Mediante la propagación de información de moneda sobre vsPackages al IDE.

  • Mediante la supervisión de las selecciones actualmente activas de los usuarios en el IDE.

Contexto de selección

El IDE de Visual Studio realiza un seguimiento global de la moneda del IDE en su propio objeto de contexto de selección global. En la tabla siguiente se muestran los elementos que componen el contexto de selección.

Elemento Descripción
Jerarquía actual Normalmente, el proyecto actual; Una jerarquía actual NULL indica que la solución en su conjunto es actual.
ItemID actual Elemento seleccionado dentro de la jerarquía actual; cuando hay varias selecciones en una ventana del proyecto, puede haber varios elementos actuales.
Actual SelectionContainer Contiene uno o varios objetos para los que el ventana Propiedades debe mostrar las propiedades.

Además, el entorno mantiene dos listas globales:

  • Lista de identificadores de comandos de interfaz de usuario activos

  • Lista de tipos de elementos activos actualmente.

Tipos de ventana y selección

El IDE de Visual Studio organiza las ventanas en dos tipos generales:

  • Ventanas de tipo jerarquía

  • Ventanas de marco, como ventanas de herramientas y documentos

    El IDE realiza un seguimiento de la moneda de forma diferente para cada uno de estos tipos de ventana.

    La ventana de tipo de proyecto más común es el Explorador de soluciones, que controla el IDE. Una ventana de tipo de proyecto realiza un seguimiento de la jerarquía global y ItemID del contexto de selección global y la ventana se basa en la selección del usuario para determinar la jerarquía actual. En el caso de las ventanas de tipo de proyecto, el entorno proporciona el servicio SVsShellMonitorSelectionglobal , a través del cual VSPackages puede supervisar los valores actuales de los elementos abiertos. La exploración de propiedades en el entorno está controlada por este servicio global.

    Por otro lado, las ventanas de marco usan DocObject dentro de la ventana de marco para insertar el valor SelectionContext (la jerarquía/ItemID/SelectionContainer trío). . Las ventanas de marco usan el servicio SVsShellMonitorSelection para este propósito. DocObject solo puede insertar valores para el contenedor de selección, dejando los valores locales para la jerarquía y ItemID sin cambios, como es habitual para los documentos secundarios de MDI.

Eventos y moneda

Es posible que se produzcan dos tipos de eventos que afecten a la noción de moneda del entorno:

  • Eventos que se propagan al nivel global y cambian el contexto de selección de marco de ventana. Algunos ejemplos de este tipo de evento incluyen una ventana secundaria de MDI que se abre, una ventana de herramientas global que se abre o una ventana de herramientas de tipo proyecto que se abre.

  • Eventos que cambian los elementos rastreados en el contexto de selección del marco de ventana. Algunos ejemplos incluyen cambiar la selección dentro de un DocObject o cambiar la selección en una ventana de tipo de proyecto.