Ostatnio na Twitterze napisałem, że nie wiem dlaczego tak długo nie chciałem używać Resharpera. Broniłem się przed nim dość długo, argumentując to tym, że przecież ja chcę się nauczyć programować, a nie obsługiwać narzędzia. Jednak nie doceniałem tego co umożliwia nam Resharper. I wcale nie pisze za nas kodu(no może czasami). Bardziej pomaga w sytuacjach w których musimy robić powtarzalne czynności. Przechodząc do meritum, poniżej znajdziesz moje ulubione funkcje Resharpera:
Refaktoryzacja
Jedna z moich ulubionych funkcji w R#. W jej ramach można zmieniać nazwy i robić inne podstawowe rzeczy które robi też VS. Ale to tylko początek. Moją ulubioną akcją w ramach refactor jest Extract. Można jednym kliknięciem wyodrębnić nową metodę w klasie, czy nową klasę z metod. Mamy linijkę/-ki, które powtarzają się w kilku metodach, czy klasach? Czas je wyodrębnić do nowej metody. Dzięki Resharperowi jest to bardzo łatwe. UWIELBIAM!
Wszystkie opcje refaktoryzacji uruchamiamy za pomocą Ctrl + Shift + R. Jednak te najbardziej powszechne akcje mają swoje skróty. I tak na przykład chcąc zmienić nazwę elementu naciskamy Ctrl + R, R. Aby przenieść dane linie do nowej metody naciskamy Ctrl + R, M.
File structure
Jest to szczególnie przydatne przy rozbudowanych klasach. Jeden skrót klawiszowy i już nie muszę przekopywać się przez kod całej klasy, żeby dotrzeć do konkretnej metody. Wraz z poprzednią funkcją jest idealny do refaktoryzacji kodu i przenoszeniu metod do nowych klas. Uruchamiamy tą opcję za pomocą skrótu Ctrl + Alt + F.
Test runner
Niby coś co jest standardowo w VS, ale nie zawsze działa. I właśnie kiedy kolejny raz, Visual nie widział moich testów w xUnit, postanowiłem zainstalować R#. Wszystko działa out of the box. Nie muszę nic doinstalowywać w każdym projekcie, czyścić żadnych keszy. Po prostu działa i w trymiga wykrywa nowe testy w projekcie. Poza tym dostarcza więcej danych na pierwszy rzut oka niż test runner z Visual Studio. Idealnie by było, gdyby xUnit dalej wspierał wypisywanie za pomocą System.WriteLine
do okienka outputu w runnerze Resharpera.
Polecam przypisać sobie skrót Ctrl + R, A do uruchamiania wszystkich testów w solucji oraz Ctrl + R, C do uruchamiania wszystkich testów w danym kontekście. To może być np. uruchamianie całej klasy z testami, gdy kursor jest w klasie ale poza ciałem metod, lub jednej metody, gdy kursor jest w ciele metody.
Go to usages
To jest funkcja, której bardzo mi brakowało w Visual Studio w porównaniu do IntelliJ Idea. Jednak dzięki firmie odpowiedzialnej za to środowisko do Javy, mam już taką opcję w VS. Uruchamiamy ją za pomocą skrótu Shift + Alt + F12.
Dzięki temu możemy zobaczyć gdzie w solucji wykorzystujemy daną metodę, czy klasę. Możemy też od razu przejść do konkretnego wykorzystania.
Navigate to
Dzięki tej funkcji możemy łatwo przejść do deklaracji np. metody, czy klasy. Drugą opcją z tego menu której używam to Related Files… Pozwala ona przejść np. do interfejsu, w którym znajduje się metoda na której wykonaliśmy skrót Alt + `. Bo to właśnie on służy do otwarcia poniższego menu:
Help
Tę funkcję uruchamiamy skrótem Ctrl + Shift + F1. Pozwala ona na podgląd informacji dotyczącej danej metody, klasy, czy innego elementu na którym akurat mamy kursor. Przykładowe okno z informacjami może wyglądać następująco:
Skróty w Resharperze są bardzo intuicyjne i szybko można się ich nauczyć. Ja wypisałem sobie te, które są bardzo przydatne na kartce i powiesiłem nad komputerem. Gdy tylko zapomnę jakiś skrót, sięgam wzrokiem ponad monitor i już wiem jaką kombinację klawiszy wcisnąć. W taki sposób bardzo szybko opanowuję kolejne skróty klawiszowe. Polecam.
Jednak jak każdy kawałek softu tak i Resharper ma wady. Główną z nich jest spowalnianie Visual Studio. Włączam Visuala, odpalam solucję I mogę iść zrobić sobie herbatę. Co prawda środowisko jest niby gotowe w zasadzie od razu, ale z responsywnością nie ma to nic wspólnego. Trzeba po prostu zaczekać aż Resharper i VS sobie wszystko przemielą. Może to i specjalne działanie firmy Jetbrains, że przez lata spowalniała VS, żeby wypuścić własne środowisko dla .NETa – Rider 😉
A Ty jakich funkcji używasz najczęściej w Resharperze? Podziel się z innymi czytelnikami w komentarzach. Będziemy Ci wszyscy bardzo wdzięczni.