Così in Visual Studio 2010 e più tardi , le API di estensibilità a cui si desidera sono nello spazio dei nomi Microsoft.VisualStudio.Languages.IntelliSense. Ad un livello elevato, si desidera esportare MEF a ICompletionSourceProvider
che fornirà gli elementi necessari. Ci sono due buoni post sul blog here e here che dimostrano la tecnica di base.
Ci sono due problemi in cui ti imbatterai se volessi rendere il tuo screenshot realtà. (Questo è il motivo per cui ho chiesto lo scenario, dato che il mio consiglio qui sarebbe cambiato.) In primo luogo, questo metodo non consente legalmente di aggiungere un set di completamento esistente, ma ne fornisce uno nuovo. Nell'interfaccia utente questo appare come due schede, come le schede comuni/Tutte nell'editor di Visual Basic. Questa è una limitazione dell'API corrente. Potresti provare a modificare uno dei set di completamento esistenti nel tuo AugmentCompletionSource
ma non ho idea se funzioni. In ogni caso è decisamente non supportato.
In secondo luogo, è davvero difficile sapere quando e dove raccomandare le cose. Nel tuo esempio hai detto "IntelliSense per string
". Purtroppo, non ci sono API (attualmente) in VS che ti permettono di sapere qual è la cosa prima del punto. Potresti fare delle semplici euristiche o provare ad implementare un parser che sia Good Enough ™ per il tuo scenario, ma per ora devi accettare che non avrai risultati perfetti.
Il progetto Roslyn mira a risolvere il secondo problema, quindi potrebbe essere utile esplorare ulteriormente. Dal momento che prevediamo che molte persone vorranno estendere il completamento, stiamo anche pensando di offrire altre API di estensibilità in modo da non dover eseguire il rollforward di un ICompletionSourceProvider
, ma tali API non sono nel CTP corrente.
[Disclaimer:. Sono un membro del team che lavora su Roslyn IntelliSense]
fonte
2012-05-10 03:47:51
@oded Ive appena trascorso un paio d'ore guardando attraverso Google, MSDN ect e havent stato in grado di trovare qualsiasi cosa sull'estensione intellisense, hai qualche consiglio su dove cercarlo? –
Mi dispiace Luke, non penso che il [forum di estensibilità di Visual Studio] (http://social.msdn.microsoft.com/Forums/en-US/vsx/threads) sarebbe un buon punto di partenza. Ma tu potresti _ riformulare la domanda per non chiedere link e in realtà essere una domanda di programmazione in argomento. – Oded
Inoltre, un esempio di ciò che vorresti aggiungere ad Intellisense sarebbe di grande aiuto. Esistono diverse tecniche che potrebbero essere necessarie ... –