2017-09-08 3 views
1

Existe-t-il une méthode pour détecter le langage de programmation actuel et désactiver une extension basée sur cette langue?Activer une extension VSIX dans une langue donnée?

Je crée un package VSIX compatible uniquement dans une construction C++. Je peux détecter par programmation le langage de programmation actuel et répondre aux langages non supportés et ne pas ouvrir ma boîte de dialogue, mais j'ai l'impression qu'il devrait y avoir une propriété ou quelque chose qui activerait/désactiverait une extension dans une certaine langue.

Répondre

2

Vous pouvez créer une règle de contexte d'interface utilisateur personnalisée pour C++ et l'utiliser pour charger votre package. Il ressemble à ceci pour C# et VB:

[ProvideAutoLoad(UIContexts.LoadContext)] 
    [ProvideUIContextRule(UIContexts.LoadContext, 
     "RightFileTypeOpen", 
     "(CSharpFileOpen | VBFileOpen)", 
     new[] { "CSharpFileOpen", "VBFileOpen" }, 
new[] { "ActiveEditorContentType:CSharp", "ActiveEditorContentType:Basic" })] 

Voir How to: Use Rule-based UI Context for Visual Studio Extensions sur MSDN et Mads Kristensen de sample pour plus de détails.