Partager via


Modifier la requête Enregistrer la requête (VSPackage de contrôle de code source)

Les éditeurs Visual Studio peuvent diffuser des événements D’enregistrement de requête (QEQS) de modification de requête. Visual Studio Source Control Stub implémente le service QEQS afin qu’il soit le destinataire des événements QEQS. Ces événements sont ensuite délégués au VSPackage de contrôle de code source actif. VsPackage de contrôle de code source actif implémente les IVsQueryEditQuerySave2 méthodes et les méthodes. Les méthodes de l’interface IVsQueryEditQuerySave2 sont généralement appelées immédiatement avant qu’un document soit modifié pour la première fois et immédiatement avant l’enregistrement d’un document.

QueryEditQuerySave Events

VsPackage du contrôle de code source doit gérer les événements QEQS en implémentant l’interface IVsQueryEditQuerySave2 et les méthodes nécessaires. Vous trouverez ci-dessous une brève description des deux méthodes que VSPackage doit implémenter au minimum. L’implémentation réelle doit être conforme à la logique du modèle de contrôle de code source.

QueryEditFiles, méthode

Il QueryEditFiles est appelé lorsqu’un projet ou un éditeur souhaite modifier un fichier. Dans l’idéal, cette méthode est appelée avant la modification du fichier et lors de l’enregistrement d’un fichier. Lorsqu’elle est appelée, la IVsQueryEditQuerySave2::QueryEditFiles méthode case activée indique si les fichiers donnés sont sous contrôle de code source, s’ils doivent être case activée sortis et s’ils peuvent être rechargés. Si les circonstances empêchent les fichiers d’être modifiables, la IVsQueryEditQuerySave2::QueryEditFiles méthode indique au programme appelant d’annuler la modification. Il est également possible pour l’appelant de spécifier un mode d’appel. En mode « silencieux », cette méthode prend des mesures uniquement si elle n’entraîne pas l’affichage d’une interface utilisateur. Si l’interface utilisateur est inévitable, un indicateur doit être retourné pour indiquer le problème.

La méthode se comporte de manière transactionnelle ; autrement dit, si la modification est annulée sur un seul fichier, la modification est annulée pour tous les fichiers. À l’inverse, si la modification est autorisée, elle est autorisée pour tous les fichiers. Si cette méthode autorise la modification une seule fois pour un ensemble donné de fichiers, elle doit toujours autoriser la modification sur les appels suivants pour le même ensemble de fichiers. La boucle d’édition autorisée continue jusqu’à ce que les fichiers soient fermés, enregistrés et rechargés ; jusqu’à ce que leurs attributs (propriétés) changent ; ou jusqu’à ce que le package de contrôle de code source soit modifié. Les cas à prendre en compte dans l’implémentation de la IVsQueryEditQuerySave2::QueryEditFiles méthode incluent plusieurs fichiers, fichiers spéciaux, annulation de l’utilisateur et modifications en mémoire.

QuerySaveFiles, méthode

Il QuerySaveFiles est appelé quand un projet ou un éditeur doit enregistrer un ensemble de fichiers. Lorsqu’elle est appelée, la IVsQueryEditQuerySave2::QuerySaveFiles méthode case activée si les fichiers donnés sont en lecture seule et s’ils sont sous contrôle de code source. Si les fichiers doivent être case activée supprimés, l’appel est délégué au package de contrôle de code source. Si les circonstances empêchent l’enregistrement des fichiers, la IVsQueryEditQuerySave2::QuerySaveFiles méthode doit indiquer à l’éditeur d’annuler l’enregistrement. Comme avec la IVsQueryEditQuerySave2::QueryEditFiles méthode, il est possible que l’appelant spécifie un mode d’appel. En mode « silencieux », cette méthode prend des mesures uniquement si elle n’entraîne pas l’affichage d’une interface utilisateur. Si l’interface utilisateur est inévitable, un indicateur doit être retourné pour indiquer le problème.

Cette méthode doit se comporter de manière transactionnelle ; autrement dit, si l’enregistrement est annulé sur un seul fichier, l’enregistrement est annulé pour tous les fichiers. À l’inverse, si l’enregistrement est autorisé, il doit être autorisé pour tous les fichiers. Comme avec la méthode, les cas à prendre en compte lors de l’implémentation IVsQueryEditQuerySave2::QueryEditFiles de la IVsQueryEditQuerySave2::QuerySaveFiles méthode incluent plusieurs fichiers, fichiers spéciaux, annulation à partir de l’utilisateur et modifications en mémoire.