2009-07-21 8 views
5

Voglio creare uno snippet di codice intellisense utilizzando Ctl K + Ctl X che esegue effettivamente il codice quando viene eseguito ... ad esempio, mi piacerebbe fare quanto segue:Creazione di una nuova guida all'interno di uno snippet di codice utilizzando C#

<![CDATA[string.Format("{MM/dd/yyyy}", System.DateTime.Now);]]> 

Ma invece di darmi quel valore di stringa, voglio la data nel formato specificato.

Un altro esempio di ciò che voglio è creare una nuova guida ma troncare al primo ottetto, quindi vorrei utilizzare una nuova guida utilizzando System.Guid.NewGuid(); per darmi {798400D6-7CEC-41f9-B6AA-116B926802FE} ad esempio ma voglio il valore: 798400D6 dal frammento di codice.

Sono aperto a non utilizzare uno snippet di codice Intellisense .. Ho pensato che sarebbe stato semplice.

risposta

2

Questo è quello che ho fatto, invece con un VS Macro

Public Sub InsertPartialGuid()    
     Dim objSel As TextSelection = DTE.ActiveDocument.Selection   
     Dim NewGUID As String = String.Format("{0}", (System.Guid.NewGuid().ToString().ToUpper().Split("-")(0))) 
     objSel.Insert(NewGUID, vsInsertFlags.vsInsertFlagsContainNewText) 
     objSel = Nothing 
    End Sub 
+1

Sei a conoscenza di un modo per farlo nella versione più recente di Visual Studio che non supporta le macro? –

1

Per il GUID, è possibile utilizzare:

string firstOctet = System.Guid.NewGuid().ToString().Split('-')[0]; 
0

per ottenere ciò che si sta cercando di fare con il vostro blocco di XML, si sta andando ad avere bisogno di uno incorporare un motore di linguaggio di scripting, come IronPython, o scrivi il tuo motore semplice. Il codice sorgente C# non è compilato in fase di esecuzione, né il codice sorgente viene valutato in fase di runtime. Il bytecode IL è, ma non il codice sorgente leggibile dall'uomo.

+0

in Visual Studio, c'è un C# -based linguaggio di template chiamato T4 si può usare. – Jimmy

Problemi correlati