Disponibilidad de comandos

El contexto de Visual Studio determina qué comandos están disponibles. El contexto puede cambiar según el proyecto actual, el editor actual, los VSPackages que se cargan y otros aspectos del entorno de desarrollo integrado (IDE).

Contextos de comandos

Los contextos de comando siguientes son los más comunes:

  • IDE: los comandos proporcionados por el IDE siempre están disponibles.

  • VSPackage: VSPackages puede definir cuándo se van a mostrar u ocultar los comandos.

  • Proyecto: los comandos del proyecto solo aparecen para el proyecto seleccionado actualmente.

  • Editor: solo un editor puede estar activo a la vez. Los comandos del editor activo están disponibles. Un editor trabaja estrechamente con un servicio de lenguaje. El servicio de lenguaje debe procesar sus comandos en el contexto del editor asociado.

  • Tipo de archivo: un editor puede cargar más de un tipo de archivo. Los comandos disponibles pueden cambiar en función del tipo de archivo.

  • Ventana activa: la última ventana de documento activa establece el contexto de la interfaz de usuario (UI) para los enlaces de clave. Sin embargo, una ventana de herramientas que tenga una tabla de enlace de claves similar al explorador web interno también podría establecer el contexto de la interfaz de usuario. Para ventanas de documentos con varias pestañas, como el editor HTML, cada pestaña tiene un GUID de contexto de comando diferente. Una vez registrada una ventana de herramientas, siempre está disponible en el menú Ver .

  • Contexto de la interfaz de usuario: los contextos de la interfaz de usuario se identifican mediante los valores de la VSConstants.UICONTEXT clase , por ejemplo, SolutionBuilding_guid cuando se compila la solución o Debugging_guid cuando el depurador está activo. Varios contextos de interfaz de usuario pueden estar activos al mismo tiempo.

Definir GUID de contexto personalizados

Si aún no se ha definido un GUID de contexto de comando adecuado, puede definir uno en vsPackage y, a continuación, programarlo para que esté activo o inactivo según sea necesario para controlar la visibilidad de los comandos:

  1. Registre GUID de contexto llamando al GetCmdUIContextCookie método .

  2. Obtenga el estado de un GUID de contexto llamando al IsCmdUIContextActive método .

  3. Active y desactive los GUID de contexto llamando al SetCmdUIContext método .

Precaución

Asegúrese de que el VSPackage no afecta a ningún GUID de contexto existente porque otros VSPackages pueden depender de ellos.