PowerShell ISE na sterydach (2.0), część 2
W pierwszej części cyklu o drugiej odsłonie ISESteroids skupiłem się na funkcjonalnościach zawartych we wtyczkach pionowych. Dziś przejrzymy te funkcjonalności dodatku, które ułatwiają poruszanie się w ramach tworzonego skryptu. I choć możliwości te mogą nie przydać nam się przy pisaniu skryptów krótkich, to gdy zamierzamy edytować moduły, skrypty z dużą ilością funkcji, możliwość łatwego odnajdywania poszczególnych elementów może znacznie skrócić czas konieczny do jego rozbudowy/ naprawiania. Sam często błądzę po przydługim skrypcie w poszukiwaniu miejsca, w którym wywołuję funkcję X, lub fragmentu, który dwa dni temu postanowiłem nieco zmienić dodając odpowiednie “TODO”. Z ISESteroids wszystko to jest nieporównywalnie prostsze.
Kto zacz?
Pisząc skrypt często stosuję funkcje. Jeśli potrafię wyodrębnić jakieś logiczne operacje, szczególnie jeśli operacje te są powtarzalne, to kod umieszczam w funkcji. Bardzo lubię też skrypty budować począwszy od pojedynczej “rurki”, której elementy następnie pracowicie tworzę. Zdarza się też, że w ramach skryptu lub modułu korzystam z funkcji pomocniczych. We wszystkich tych przypadkach, w przypadku zmian, przydaje się możliwość szybkiego powrotu do miejsca, gdzie funkcja przeze mnie używana jest definiowana. W ISESteroids mamy odpowiednią funkcję w menu kontekstowym:
To oczywiście jedna strona medalu. W drugą stronę “wycieczka” może być równie przydatna. I tu również “sterydy” przychodzą z pomocą: jeśli funkcja jest wykorzystywana w bieżącym pliku, to zawsze mamy nad nią informację o tym. Jeśli jest wykorzystana tylko raz, to kliknięcie na referencję od razu przeniesie nas w to miejsce. Jeśli jednak ta sama funkcja jest stosowana wielokrotnie, to możemy wybrać to użycie, które nas interesuje:
To zdecydowanie upraszcza modyfikację wywołania funkcji po tym, jak zmieniliśmy samą funkcję. Ułatwia też zrozumienie działania bardziej złożonych skryptów, jeszcze zanim je uruchomimy.
Mapa skryptowego świata
W przypadku bardzo długich skryptów docenimy z pewnością mapę skryptu, które daje nam “podgląd”, obejmujący większą całość, wraz z łatwym określeniem jaki fragment właśnie widzimy w oknie skryptu. Dodatkowa możliwość powiększenia fragmentu przez najechanie kursorem sprawia, że możemy w prosty sposób przenosić się pomiędzy sekcjami kodu. Jeśli dodatkowo włączymy rozdzielenie widoku skryptów (uzyskamy ten efekt “ciągnąc” myszką górną krawędź okna ze skryptem), to możemy uzyskać dość ciekawy efekt:
Widzimy jednocześnie definicję funkcji, jej wywołanie, pozycję obu w kodzie, bliskiego sąsiada – wszystko to może oszczędzić nam sporo czasu przy pracy nad większymi skryptami.
Zakładki
Kolejny element, dzięki któremu możemy w prosty sposób “wędrować” po dłuższym skrypcie to zakładki. Przypominają one nieco regiony z tą różnicą, że zamiast “zawijać” bloki kodu, oznaczają punkty w naszym skrypcie. Możemy w ten sposób na przykład oznaczyć te bloki kodu, w których zamierzamy coś zmienić, lub w których podejrzewamy buga. Dodawanie zakładek wymaga wprowadzenia komentarza blokowego zaczynającego się od słowa “bookmark”:
Przycisk odpowiedzialny za zakładki zmienia swoje działanie w zależności od tego, jaki jest obecny stan naszego skryptu: jeśli nie ma w nim żadnych zakładek, zostanie dodana nowa zakładka. W przeciwnym razie uzyskamy listę zakładek.
I to już wszystkie elementy, które ułatwiają nam “wędrowanie” po istniejących skryptach. Następny odcinek cyklu poświęcę tym elementom, które ułatwiają skryptów tworzenie.