~~REVEAL~~ ====== Resharper ====== {{ :zajecia:znd_2014_1:resharper-log.png?400 |}} \\ The most intelligent extension for Visual Studio\\ ===== ===== * Strona produktu: http://www.jetbrains.com/resharper/ * [[http://www.jetbrains.com/resharper/documentation/index.jsp|Resharper Documentation]] * [[http://www.jetbrains.com/resharper/download/|Download ReSharper]] obecnie v. 2017.3 * [[http://www.jetbrains.com/resharper/buy/| Licensing & Pricing]] ===== Najważniejsze właściwości ===== * Analiza kodu w poszukiwaniu błędów w czasie rzeczywistym (ponad 2.2k reguł) * Sugestie i wykrywanie złych praktyk * Nawigacja pomiędzy plikami, deklaracjami, zmiennymi * Zaawansowany refactoring * Generowanie kodu, szablony, możliwość definiowania własnych * Operacje zależne od kontekstu ===== ===== * Automatyczne czyszczenie kodu * Inteligentniejszy InteliSense * Kolorowanie składni, inne metody wyróżniania wyników analizy * Wsparcie dla wielu języków i technologii C#, VB.NET, JavaScript, TypeScript, CSS, HTML, XML, XAML * Ułatwienia dla testowania jednostkowego * Inspekcje obiektów a nawet dostęp do zewnętrznych źródeł i dekompilacja plików * Analiza i wizualizacja zależności w projekcie ===== ===== Oszczędność czasu implementacji -> mniejsze koszty {{ :zajecia:znd_2014_1:benefits_costs.png?800 |}} ===== Resharper w VS ===== * Zmieniona kolorystyka składni i wyróżnień kodu * Ikony informujące o błędach i wskazówkach na lewej i prawej belce * Menu kontekstowe (prawy klawisz myszy) * Menu główne w pasku VS * Nowe okna, **Resharper -> Windows** : inspekcja kodu, wyniki wyszukiwania, raporty błędów, zarządzanie testami * Opcje: **Resharper -> Options** * Skróty klawiszowe * Podmieniony InteliSense * {{https://www.jetbrains.com/resharper/documentation/comparisonMatrix_R10_vs2015.html|ReSharper 10 vs. Visual Studio 2015}} ===== Inspekcja kodu ===== | błędy | martwy kod | wskazówki (code smells) | | {{ :zajecia:znd_2014_1:bledy.png?300|}} | {{ :zajecia:znd_2014_1:martwy_kod.png?300| }} | {{:zajecia:znd_2014_1:wskazowki.png?300| }} | * ''Alt + Enter'' szybka naprawa ===== Skróty klawiszowe ===== * Resharper nadpisuje domyślne skróty klawiszowe, lecz robi to uprzejmie * Najczęściej warto wybrać ustawienia proponowane domyślnie {{ http://blog.excastle.com/images/resharper/ReSharperShortcutConflict.png?400 }} ===== Najważniejsze skróty ===== * ''Alt + Enter'' szybka naprawa, “Swiss Army knife” * ''Alt + Insert'' generowanie kodu * ''Ctrl + Shift + R'' kontekstowy refactoring * ''Ctrl + N'' nawigacja/wyszukiwanie * ''Ctrl + Alt + G'' nawigacja, zależnie od kontekstu ===== ===== * ''Ctrl + clik'' idź do deklaracji/definicji (dekompilacja) * ''Alt + P'' parametry metod (wszystkie przeciążenia) * ''Ctrl + Alt + H'' hierarchia obiektów, dziedziczenia, itp * ''Ctrl + F11'' struktura pliku: sortowanie ręczne, refaktoring, otaczanie fragmentów, ... * ''Ctrl + Space'' uzupełnianie składni, dodatkowo podpowiada nazwy zmiennych * ''Ctrl + Shift + Space'' kontekstowe podpowiedzi * {{http://www.jetbrains.com/resharper/docs/ReSharper80DefaultKeymap_IDEA_scheme.pdf|ReSharper 8 Default Keymap: ReSharper 2.x / IntelliJ IDEA scheme}} * [[http://blog.excastle.com/2007/02/04/full-list-of-keystrokes-changed-by-resharper-251/|Lista podmienionych skrótów]] Joe White, Resharper 2.5.1 ===== Refactoring ===== {{ :zajecia:znd_2014_1:refactor_context.png?300|}} ''Ctrl + Shift + R'' \\ kontekstowy refactoring * Przenoszenie elementów między klasami, plikami, ... * Zmiany nazw zmiennych, metod, plików, * Ekstrakcja metod, pól, własności, interfejsów * Deklarowanie brakujących zmiennych, metod, klas, ... * Przekształcanie wyrażeń, ujednolicanie stylu, .. ===== Genrowanie kodu ===== {{ :zajecia:znd_2014_1:generate_context.png?250|}} ''Alt + Insetr'' \\ kontekstowe generowanie kodu * Szablony kodów, np.: ''prop + Tab'' * Automatyczne domykanie nawiasów, uzupełnianie składni, otaczanie fragmentów kodu ===== Nawigacja i wyszukiwanie ===== * ''Ctrl + N'' znajdź klasę, zmienną, plik, itp. (Akronimy ABC, meta-znaki ''*'', ''+'') * ''Alt + F7'' znajdź wystąpienia {{ :zajecia:znd_2014_1:find_usages.png?300 |}} * filtrowanie/grupowanie/zapis wyników * ''Alt + Strzałka'' przechodzenie między metodami ===== Rzut okiem na menu ===== {{ :zajecia:znd_2014_1:resharper_menu.png?250 |}} ===== Wiele innych ===== * Konfiguracja (dla różnych przestrzeni: rozwiązanie, maszyna, grupa,...) * Szablony kodu, otaczania, plików * Wtyczki * Badanie architektury * Testy jednostkowe ===== Więcej informacji ===== * Strona produktu: http://www.jetbrains.com/resharper/ * [[http://www.jetbrains.com/resharper/documentation/index.jsp|Resharper Documentation]] * [[http://blog.excastle.com/2007/01/31/blog-event-the-31-days-of-resharper/| The 31 Days of ReSharper]] by Joe White * [[resharper-zadania|Ćwiczenia]] ===== Najważniejsze skróty ===== * ''Alt + Enter'' szybka naprawa, “Swiss Army knife” * ''Alt + Insetr'' generowanie kodu * ''Ctrl + Shift + R'' kontekstowy refactoring * ''Ctrl + Shift + G'' kontekstowa nawigacja * ''Ctrl + N'' nawigacja/wyszukiwanie * ''Ctrl + Space'' uzupełnianie składni, dodatkowo podpowiada nazwy zmiennych {{https://www.jetbrains.com/resharper/docs/ReSharper_DefaultKeymap_IDEAscheme.pdf|ReSharper Default Keymap: ReSharper 2.x / IntelliJ IDEA scheme}} \\ {{https://www.jetbrains.com/resharper/docs/ReSharper_DefaultKeymap_VSscheme.pdf|ReSharper Default Keymap: Visual Studio scheme}}