2014-04-04 3 views
5

C# non è abbastanza per me, quindi ho sfruttato il newly-open sourced Roslyn per estenderlo, ad esempio per modifying it to use French quotes.Come utilizzare un Roslyn modificato in Visual Studio

Ma non voglio creare i miei file appena citati in francese sulla riga di comando! Voglio Intellisense! Voglio una bella interfaccia utente! In breve, voglio che Visual Studio utilizzi my Roslyn, non Microsoft.

Posso farlo ancora? Se sì, come?

+6

Il post del blog "fare un giro di Roslyn" a cui ti sei collegato ha una sezione che * discute * come farlo funzionare in VS. –

+1

Sono un tale idiota. – Rawling

risposta

5

Citato direttamente dal this link nella tua domanda:

uso avanzato

E 'anche possibile aggiornare la copia di Visual Studio di utilizzare il propria versione integrata di Roslyn (per esempio, per vedere come l'IDE reagisce a le tue modifiche), ma è leggermente complicato:

Prima di tutto, devi utilizzare il fork di rilascio, non la forcella master . Questo perché il codice del compilatore è in costante cambiamento nella reazione al feedback e ciò include le modifiche alle API che sono utilizzate dai bit IDE non aperti nell'anteprima di Roslyn per poter accedere alle informazioni sul compilatore (finché le API non vengono bloccate giù come ci avviciniamo a completamento). Quando queste API cambiano, la capacità di comunicare tra i due viene persa. Il fork di rilascio, tuttavia, con precisione riflette lo stato del codice nel momento in cui l'anteprima di Roslyn era scattata e quindi è sicura da utilizzare come base per questo tipo di cose. (si può vedere la forchetta sul sito Roslyn CodePlex scegliendo “Source Code” e poi aprire il “Sfogliare le modifiche in” discesa - è chiamati “release \ build-anteprima.”)

Per passare a questo forchetta in Git, sarà necessario eseguire i seguenti due comandi da un prompt dei Git appropriato nella arruolamento:

git fetch

Git cassa - origine del brano/releases/accumulo anteprima

Il tuo repository git avrà ora il contenuto del ramo releases/build-preview. Una volta che hai fatto questo, puoi cambiare lo avanti e indietro tra i rami usando Git checkout master e git checkout releases/build-preview. (Dettagli sul loro utilizzo Git sono al di là del scopo di questo blog,. Vedi http://www.git-scm.com/book/en/Git-Branching-Remote-Branches per ulteriori informazioni sulla ramificazione in Git)

In secondo luogo, è necessario disabilitare assembly con il nome di Visual Studio il controllo del relativo prima gli assemblaggi. C'è uno script per aiutare lo con quello, che puoi trovare controllato nel codice sorgente a Src/Tools/Microsoft.CodeAnalysis.Toolset.Open/Scripts/Prepare.bat.

Con tutto ciò, apportare le modifiche.Quindi, dopo la creazione, verificare che CompilerPackage sia impostato come progetto di avvio, quindi F5/Ctrl + F5 per avviare un'istanza VS contenente le modifiche.

Si prega di notare che non accetteremo mai richieste di pull per la forcella - abbiamo bisogno di mantenerla pulita e di riflettere accuratamente lo stato del codice relativo ai bit di anteprima di Roslyn. Qualunque cosa tu voglia prendere in considerazione per l'invio dovrebbe essere trasferito su una forcella creata dal master per prima.

Interessanti orari. Anche se ho una certa dose di trepidazione nel trovarmi in un'azienda in cui usano un compilatore interamente personalizzato per fare cose orribili e terribili. La pistola per spararti ai piedi con è appena stata aggiornata ...

+2

Ho intenzione di revocare questo, accettarlo e poi nascondermi per la vergogna. (Sono d'accordo riguardo alla pistola, il vero cambiamento che sto per provare è la sostituzione di tutte le parole chiave, solo per ridacchiare.) – Rawling

+0

@Rawling Non importa, a volte nel chiedere la domanda ti imbatti nella risposta da solo. Ho appena pubblicato la risposta per completezza perché non c'era un motivo valido per chiudere la domanda. –

+0

@Rawling Se lo fai, dovresti [tradurre le parole chiave in latino] (http://search.cpan.org/~dconway/Lingua-Romana-Perligata-0.50/lib/Lingua/Romana/Perligata.pm): -) – svick