2012-02-03 18 views
16

Vorrei estendere manualmente l'elenco IntelliSense di vari elementi. Voglio essere responsabile per l'azione innescata dall'elemento (cioè completamento del codice e informazioni sulla descrizione). Non importa quali articoli.Come estendere gli articoli IntelliSense?

Ciò è possibile con un componente aggiuntivo VisualStudio, ReSharper/DXCore o qualsiasi altro plug-in?

Background:

Alcuni di voi sapranno FOP (funzione programmazione orientata). La FOP richiederebbe vari cambiamenti al comportamento dell'intelligence e dell'editor.

Edit:

Un'altra interesting post.

+0

Immagino che l'ambito di ciò che stai cercando di fare non sia risolto dai Metodi di estensione? http://msdn.microsoft.com/en-us/library/bb383977.aspx Pensavo di chiedere, solo per essere sicuro ... – kd7

+0

@ kd7: no ..... – Matthias

+0

Se stai cercando di cambiare il comportamento dell'IDE, quindi sicuramente stai guardando un plugin. Se ciò che si vuole fare può essere fatto all'interno del framework R #, allora sarebbe più facile che scrivere il proprio plugin VS, ma quest'ultimo è certamente fattibile. Gli snippet di codice – AakashM

risposta

15

Questo è sicuramente fattibile molto facilmente da writing a ReSharper plugin.

  • Inizia implementando ICodeCompletionItemsProvider che fornirà ulteriori articoli IntelliSense. Il modo più semplice è ereditare da ItemsProviderOfSpecificContext<TContext> (con TContext è CSharpCodeCompletionContext se sei interessato al completamento del codice C#).

  • Il fornitore aggiungerà gli articoli aggiuntivi nell'implementazione di AddLookupItems(). Hai la possibilità di fornire un'implementazione personalizzata di ILookupItem qui: il metodo Accept() di questa interfaccia verrà chiamato quando l'utente sceglie l'elemento nel popup di completamento. Ecco la tua possibilità di eseguire il codice che ti serve.

Si noti che questa informazione è per R # 6.1/7.0. Non penso che sia molto diverso nelle versioni precedenti però. Ovviamente, devi abilitare ReSharper IntelliSense invece di Visual Studio IntelliSense perché funzioni.

3

IntelliSense personalizzato per l'editor XML VS2010 può essere aggiunto inserendo file xsd personalizzati nella cartella C:\Program Files\Microsoft Visual Studio 10.0\Xml\Schemas ma suppongo che stiate cercando qualcosa in più.

Si dovrebbe dare un'occhiata a Creating and Using IntelliSense Code Snippets e decidere se è quello che stai cercando. Questo question su programmers.stockexchange potrebbe anche essere utile. Anche questo question sembra simile che suggerisce CSharpIntellisensePresenter (gratuito).

+0

non hanno nulla a che fare con questo ... – Fraser

+0

@Fraser, ecco perché era solo un suggerimento, non una soluzione concreta. Gli ho chiesto di dare un'occhiata e decidere. Se sei sicuro che i frammenti sono totalmente inutili, puoi modificare la mia risposta e rimuovere quel link. Oppure potresti dirmi che sei sicuro e posso rimuovere il link. Grazie. –

+0

suggerendo che dovrebbe dare un'occhiata a qualcosa che è totalmente non correlato è il motivo per cui ho dato -1, questo è il motivo per cui votare, contrassegnando le risposte che sono errate e mostrano una mancanza di sforzo http://stackoverflow.com/privileges/voto basso se tu avessi letto il link che hai fornito, sarebbe stato ovvio per te, no? – Fraser

0

Forse i modelli dinamici di ReSharper possono aiutarti (ReSharper-> Modelli dinamici ...).

Problemi correlati