همانطور که در قبل ذکر آن رفت، یکی از کاربردهای NRefactory در Reformat کردن یا اصطلاحا PrintPrint کردن کد است. از این قابلیت در Code Generation میتوان بسیار سود برد.
ما به راحتی با کنار گذاشتن دغدغه مربوط به چینش کد، قطعات مورد نیاز را به هم میچسبانیم. در نهایت مثلا کدی خواهیم داشت در یک خط. حال این کد دستی تولید شده را به NRefactory میدهیم و خروجی با ظاهر مناسب و مورد نظر ( مثلا KRStyle ) را تحویل میگیریم.
یک نمونه ساده از پیاده سازی چنین عملیاتی را میتوانید از اینجا دانلود کنید.
پینوشت : باینریها را به صورت جدا و در اینجا آپلود کردهام که اگر کدهای قبلی رو دانلود کردین نیازی به دانلود دوباره نداشته باشید. فقط میمونه بحث Reference دادن به اونها که دیگه بر عهد خودتون.
اصلاحیه : نسخه قبلی که نوشته بودم یه اشکالی داشت؛ اینکه من اشتباها از Formatter استفاده کرده بودم. از این قابلیت بیشتر برای موارد داخل خود IDE مثل زمانی که Copy-Paste میکنیم یا زمانی که IDE خودش برامون یک سری قسمتها رو پر میکنه استفاده میشه.
در رابطه با کاری که ما میخواهیم انجام بدیم، روش درست استفاده از Output visitorها هستش. به این صورت که اول کد رو پارس میکنیم، سپس درخت رو میدیم به CSharpOutputVisitor و … بوم !