Un moyen de faire fonctionner Intellisense lors de l’ouverture d’un fichier cs qui ne fait pas partie du projet?

StackOverflow https://stackoverflow.com/questions/495270

Question

Ce dont nous avons idéalement besoin, c’est de savoir comment Microsoft gère le code généré par XAML (ces fichiers * .g.cs). Si vous avez un code XAML derrière, intellisense fonctionnera même si le fichier * .g.cs ne fait pas partie du projet!

Contexte:

Dans un package VS personnalisé, nous avons besoin d’une certaine logique pour ouvrir un fichier CS (sans en faire une partie du projet) dans VS IDE, afin de permettre à l’utilisateur de le modifier.

Nous connectons le document à la table Document en cours d'exécution et recevons des événements tels que Saving, Close and all, à l'aide de IVSRunningDocumentTable. Fonctionne bien.

Le problème est que lorsque le document est ouvert, Intellisense ne peut pas fonctionner, pour la simple raison que le document ouvert ne fait pas partie du projet (malheureusement, nous ne pouvons pas le faire, nous ne pouvons pas le faire code derrière).

Était-ce utile?

La solution

Intellisense est géré par une mémoire cache d’identificateurs et de types. Ces types sont mis en cache en fonction du projet dans lequel vous vous trouvez et des références de ce projet. Si le fichier de code que vous modifiez ne fait pas partie d'un projet, Visual Studio doit charger tous les assemblages possibles et créer des données intellisense pour chaque type dans tout le framework .NET, car il n'aurait aucun moyen de savoir si votre fichier de code le demandait.

Je suppose que Visual Studio pourrait charger intellisense en fonction du contenu du fichier, mais ce n'est pas ainsi qu'il fonctionne actuellement.

Autres conseils

Visual Assist X de Whole Tomato est un complément de VS que j'utilise depuis de nombreuses années. Cela vous donnera plus d'Intellisense et plus quand vous l'ouvrirez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top