~~NOCACHE~~ ~~REVEAL theme=simple&size=1024x800~~ ====== ReSharper ====== {{zajecia:znd_2020_1:resharper_logo_300x300.png?200|}} \\ The most intelligent extension for Visual Studio\\ ===== ===== * Strona produktu: \\ http://www.jetbrains.com/resharper/ * ReSharper, ReSharper++ \\ wtyczki do VS dla programistów .Net i C++ * ReSharper Ultimate * [[http://www.jetbrains.com/resharper/documentation/index.jsp|Resharper Documentation]] * [[http://www.jetbrains.com/resharper/download/|Download ReSharper]] \\ obecnie wersja 2020.1.3 (19 May 2020) * [[http://www.jetbrains.com/resharper/buy/| Licensing & Pricing]] * 30 dniowy darmowy trial * darmowe wersje edukacyjne oraz dla projektów open source ===== Najważniejsze funkcje ===== * Analiza kodu w poszukiwaniu błędów w czasie rzeczywistym (ponad 2.2k reguł) * sugestie naprawy i wykrywanie złych praktyk * Quick Fix * automatyczne czyszczenie kodu * Usprawnienia nawigacji pomiędzy plikami, deklaracjami, zmiennymi * Zaawansowany refactoring * Generowanie kodu, szablony, możliwość definiowania własnych * Operacje zależne od kontekstu ===== ===== * Inteligentniejszy InteliSense * 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 * [[https://www.jetbrains.com/resharper/compare/resharper-vs-visual-studio/|ReSharper 2020.1 vs Visual Studio 2019]] ===== Jakie korzyści? ===== Oszczędność czasu implementacji -> mniejsze koszty projektu {{zajecia:znd_2014_1:benefits_costs.png?800|}} ===== ReSharper w VS ===== * Zmieniona kolorystyka składni i wyróżnień kodu * Menu kontekstowe (prawy klawisz myszy) * Menu główne z wszystkimi funkcjami * Nowe okna **Resharper -> Windows** * Bogate możliwości konfiguracji: \\ **Resharper -> Options** * Skróty klawiszowe - różne schematy * Podmieniony InteliSense (//smart code completion//) * Rozszerzenia do ReSharpera * {{https://www.jetbrains.com/resharper/documentation/comparisonMatrix_R10_vs2015.html|ReSharper 10 vs. Visual Studio 2015}} ===== Rzut okiem na menu ===== * wszystkie operacje dostępne w menu **ReSharper** {{zajecia:znd_2020_1:resharper_menu.png?300|}} ''Cover'', ''Profile'' - dostępne po zainstalowaniu ''dotCover'' i ''dotTrace'' ===== Nowe okna w VS ===== **Resharper -> Windows** {{zajecia:znd_2020_1:resharper_windows.png?450|}} ===== Inspekcja kodu ===== {{zajecia:znd_2020_1:code_analysis_sample.png?800}} ===== Alt + Enter ===== | ''Alt + Enter'' \\ szybka naprawa \\ // Quick Fix// \\ menu kontekstowe, \\ dostępne akcje zależą od \\ pozycji kursora w kodzie | {{zajecia:znd_2020_1:actions_list_2.png?400}} | | jeżeli brakuje akcji \\ to zacznij pisać jej nazwę | {{ zajecia:znd_2020_1:navigate_to_action.png?400 }} | ===== Skróty klawiszowe ===== * ReSharper nadpisuje domyślne skróty klawiszowe, lecz robi to uprzejmie, przy pierwszym użyciu prosi o wybór domyślnej akcji * Warto wybrać ustawienia proponowane domyślnie {{http://blog.excastle.com/images/resharper/ReSharperShortcutConflict.png?400}} ===== ===== {{zajecia:znd_2020_1:resharper_keyboard_scheme.png?600}} {{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}} \\ [[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 ===== | ''Ctrl + Shift + R'' \\ kontekstowy refactoring | {{:zajecia:znd_2020_1:refactor_menu.png?300|}} | * 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, ... ===== Generowanie kodu ===== | ''Alt + Insert'' \\ generowanie brakujących \\ elementów klas | {{zajecia:znd_2020_1:code_generation_menu.png?130|}} | | Szablony kodów, \\ Ctrl + J \\ np.: ''prop + Tab'' | {{zajecia:znd_2020_1:templates_asrt_before.png?200|}} | * Automatyczne domykanie nawiasów, uzupełnianie składni, otaczanie fragmentów kodu ===== Nawigacja i wyszukiwanie ===== | ''Ctrl + N'' | znajdź wszystko \\ klasę, zmienną, plik, \\ akronimy ABC, meta-znaki ''*'', ''+'' | | ''Alt + F7'' | znajdź wystąpienia | * filtrowanie/grupowanie/zapis wyników {{zajecia:znd_2014_1:find_usages.png?500|}} ===== ===== | ''Alt + '' //strzałka w górę/dół// | przechodzenie między metodami | | ''Ctrl + Shift + G'' \\ nawiguj do ... | {{zajecia:znd_2020_1:navigate_from_here.png?400}} | | ''Ctrl + click'' \\ idź do deklaracji | {{zajecia:znd_2020_1:go_to_declaration_ctrl.png?400}} | ===== Podmieniony IntelliSense ==== {{zajecia:znd_2020_1:first_steps_completion.png?800}} * podpowiedzi w czasie pisania \\ ''Ctrl + Space'' \\ ''Ctrl + Shift + Enter'' - automatyczne dopełnianie kodu ===== ===== * ''Ctrl + Shift + Space'' - //smart completion//, \\ bardziej inteligentne podpowiedzi bazujące na spodziewanym typie wyrażenia * ''Ctrl + Alt + Space'' - uzupełnienie ze wszystkich przestrzeni nazw, \\ brakujące przestrzenie zostaną automatycznie dodane * podpowiedzi drugiego stopnia \\ (przy powtórnym wciśnięciu) ===== Wiele innych ===== * Bogate możliwości konfiguracji * Szablony kodu * Badanie architektury, grafy zależności * Usprawnienia budowania i debugowania aplikacji * Testy jednostkowe, środowisko uruchomieniowe, raportowanie wyników * Wsparcie dla XAML (uzupełnianie składni, nawigacji, itd.) * Rozszerzenia do rozszerzenia * [[https://www.jetbrains.com/resharper/features/|Przegląd funkcji ReSharper]] ===== 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_skroty|Najwazniejsze skróty]] * [[resharper_analiza|Analiza kodu w ReSharper]]