Evidenziare il testo da Visual Studio 2008 add-in
-
11-09-2019 - |
Domanda
sto scrivendo un altro strumento di copertura di codice per .NET con Visual Studio 2008 l'integrazione.
Tutto va bene, tranne una cosa:. Non riesco a trovare un modo per mettere in evidenza alcuni pezzi di codice
ho bisogno di informare utente sui blocchi coperti coperti e non.
Si può vedere l'esempio della funzione che voglio nella finestra successiva (da nativo VS copertura del codice set di strumenti):
Qualcuno mi può fornire un frammento di codice che mette in evidenza il testo nella finestra di visualizzazione del codice?
Link ad appropriarsi articoli di MSDN relativi a VS2008 sono anche apprezzati!
Grazie in anticipo.
Soluzione
Non ho trovato la risposta, vedi codice qui sotto:
// retrieving IVsTextManager and highlight id
DTE2 applicationObject = ...; // get it during addin init
Microsoft.VisualStudio.OLE.Interop.IServiceProvider serviceProvider = (Microsoft.VisualStudio.OLE.Interop.IServiceProvider)applicationObject;
Guid SID = typeof(SVsTextManager).GUID;
Guid IID = typeof(IVsTextManager).GUID;
IntPtr output;
serviceProvider.QueryService(ref SID, ref IID, out output);
IVsTextManager textManager = (IVsTextManager)Marshal.GetObjectForIUnknown(output);
int highlightID;
Guid highlightGuid = ...; // your highlighted text style guid
textManager.GetRegisteredMarkerTypeID(ref highlightGuid, out highlightID);
// highlighting text block in the active view
IVsTextView view;
int result = textManager.GetActiveView(0, null, out view);
IVsTextLines buffer;
view.GetBuffer(out buffer);
buffer.CreateLineMarker(highlightID, startLine, startColumn, endLine, endColumn, null, null);
Ulteriori esempi potrebbero essere trovati in MetaScroll Visual Studio Addin .
Altri suggerimenti
Un altro esempio, ma per VS2010: http: // dotneteers.net/blogs/divedeeper/archive/2008/11/04/LearnVSXNowPart38.aspx