Condividi tramite


Dettagli di configurazione del controllo del codice sorgente

Per implementare il controllo del codice sorgente, è necessario configurare correttamente il sistema del progetto o l'editor effettuare le operazioni seguenti:

  • Autorizzazione di richiesta per la transizione allo stato modificato

  • Autorizzazione di richiesta di salvare un file

  • Richiedere l'autorizzazione per aggiungere, rimuovere, o rinominare i file del progetto

Autorizzazione di richiesta per la transizione allo stato modificato

Aggiungere i controlli all'elemento vuoto Grid per compilare la pagina iniziale personalizzata. Each editor that implements IsDocDataDirty must call QueryEditFiles and receive approval to change the document from the environment before returning True for M:Microsoft.VisualStudio.Shell.Interop.IVsPersistDocData.IsDocDataDirty(System.Int32@). Un progetto è essenzialmente un editor per un file di progetto e di conseguenza, ha la stessa responsabilità dell'implementazione dello modificare-stato che tiene traccia del file di progetto come un editor di testo fare per i file. L'handle di ambiente lo stato modificato della soluzione, ma di è necessario gestire lo stato modificato di qualsiasi oggetto riferimenti di soluzione ma non archiviano, ad esempio un file di progetto o i relativi elementi. Generalmente se il progetto o l'editor è responsabile della gestione della persistenza per un elemento, pertanto è responsabile dell'implementazione di tenere traccia dello modificare-stato.

In risposta alla chiamata di IVsQueryEditQuerySave2::QueryEditFiles , l'ambiente possibile effettuare le operazioni seguenti:

  • Rifiutare la chiamata per cambiare in questo caso, l'editor o il progetto deve rimanere nello stato (pulito) invariato.

  • Indicare che i dati del documento devono essere ricaricati. per un progetto, l'ambiente ricaricherà i dati per il progetto. Un editor deve ricaricare i dati dal disco tramite l'implementazione di ReloadDocData . In entrambi i casi, il contesto nel progetto o l'editor possibile modificare quando i dati vengono ricaricati.

È un complesso e un'attività difficile implementare le chiamate appropriate di IVsQueryEditQuerySave2::QueryEditFiles su una codebase esistente. Di conseguenza, queste chiamate devono essere inserite durante la creazione del progetto o dell'editor.

Autorizzazione di richiesta di salvare un file

Before a project or editor saves a file, it must call QuerySaveFile or QuerySaveFiles. Per i file di progetto, le chiamate vengono automaticamente completato dalla soluzione, in grado quando salvare un file di progetto. Gli editor sono responsabili di apportare queste chiamate a meno che l'implementazione dell'editor di IVsPersistDocData2 utilizza l'entity_M:Microsoft.VisualStudio.Shell.Interop.IVsUIShell.SaveDocDataToFile(Microsoft.VisualStudio.Shell.Interop.VSSAVEFLAGS, System.Object, System.String, System.String@, System.Int32@) di funzione di supporto. Se nell'editor implementa IVsPersistDocData2 in questo modo, la chiamata a IVsQueryEditQuerySave2::QuerySaveFile o a IVsQueryEditQuerySave2::QuerySaveFiles viene eseguita automaticamente.

Nota

fare sempre queste chiamate di prelazione-che è, in un momento in cui l'editor può ricevere un annullamento.

Richiedere l'autorizzazione per aggiungere, rimuovere, o rinominare i file del progetto

Prima che un progetto sia aggiungere, rinominare, o rimuovere un file o una directory, è necessario chiamare il metodo appropriato di IVsTrackProjectDocuments2::OnQuery* per richiedere l'autorizzazione dall'ambiente. Se l'autorizzazione viene concessa, il progetto deve completare l'operazione e quindi chiamare il metodo appropriato di IVsTrackProjectDocuments2::OnAfter* per notificare all'ambiente che l'operazione viene completata. Il progetto deve chiamare i metodi di interfaccia di IVsTrackProjectDocuments2 per tutti i file, ad esempio file speciali) e non solo i file padre. Le chiamate di file sono obbligatorie, ma le chiamate della directory sono facoltative. Se il progetto include informazioni sulla directory, è opportuno chiamare i metodi appropriati di IVsTrackProjectDocuments2 , ma se non dispone di queste informazioni, nell'ambiente a desumere le informazioni sulla directory.

Il progetto non devono chiamare metodi di IVsTrackProjectDocuments2 al progetto aperti o adiacenti. I listener che desiderano queste informazioni all'avvio possono restare l'evento di OnAfterOpenSolution e scorrere la soluzione per trovare le informazioni necessari. Chiusura, queste informazioni non sono necessarie. IVsTrackProjectDocuments2 fornito da SVsTrackProjectDocuments.

Per ognuno aggiungere, modificare e rimuovere l'azione, esiste un metodo di OnQuery* e un metodo di OnAfter* . Chiamare il metodo di OnQuery* per richiedere l'autorizzazione per aggiungere, rinominare, o rimuovere il file o la directory. Chiamare il metodo di OnAfter* dopo che il file o la directory è stato aggiunto, rinominato, o rimosso stato e lo stato del progetto rifletta il nuovo stato.

Vedere anche

Riferimenti

IVsPersistDocData

QuerySaveFile

QuerySaveFiles

IVsTrackProjectDocuments2

SaveDocDataToFile

SVsTrackProjectDocuments

Altre risorse

Controllo del codice sorgente di supporto