PowerShell ISE na sterydach (2.0), część 1
Dopiero co opisywałem wspaniały dodatek do PowerShell ISE, a już możemy zacząć korzystać z drugiej jego wersji. Ilość nowych elementów przytłacza i wgniata w fotel.
W tym cyklu postaram się opisać większość z nich, ale nie mam wątpliwości, że kilka mi umknie. Tym bardziej zachęcam do przetestowania go we własnym środowisku. Jeśli macie ISE w wersji 2 (czyli PowerShell 3+), możecie zyskać świetny edytor bez instalowania dodatkowego oprogramowania. By nie powtarzać się, skupię się tylko na elementach dodanych i zmienionych w wersji drugiej ISESteroids. Zachęcam do lektury posta dotyczącego wersji pierwszej, jeśli do tej pory o PowerShell ISESteroids nie słyszeliście. Dodatkowo – artykuł rozpisałem na kilka części. Jeden post to stanowczo za mało by to wszystko “ogarnąć”.
Startujemy!
Filozofia działania nie zmieniła się: ISESteroids są dystrybuowane jako moduł, uruchamiane przy pomocy polecenia Start-Steroids. Jeśli korzystamy z dostępnej obecnie wersji zostaniemy na początku poinformowani o tym, że nie korzystamy z wersji finalnej i o tymczasowości licencji (nawet jeśli licencję pełną już posiadamy). Sugeruję, by zacząć od zapoznania się ze zmianami w interfejsie graficznym:
Już one wystarczą by zauważyć, jak dużym “dopalaczem” nasze “sterydy” są. Jeśli brakuje nam kontrolek, możemy od razu włączyć “secondary toolbar” (na rysunku: zielony) – zyskamy kilka dodatkowych, w tym tę, która pozwala włączyć ostatni zestaw narzędzi “settings toolbar” (na rysunku: różowy). Ten ostatni skonfigurowany jest by automatycznie się ukrywać, gdy użytkownik przestaje z niego korzystać.
Pionowe dodatki
ISESteroids gros swej funkcjonalności zawdzięcza dodatkom pionowym (“vertical add-on tool pane”). Dodatki te pojawiły się wraz z wersją trzecią PowerShella i wiele osób (w tym ja) widziało w nich potencjalne narzędzie do głębszej ingerencji w zachowanie PowerShell ISE. Niestety, wiedza konieczna by takie dodatki przygotować była (i pewnie nadal jest) poza moim zasięgiem. Tobias jednak (autor ISESteroids) z całą pewnością ma się czym w tym zakresie pochwalić. W mojej ocenie prawie wszystkie dodatki, jakie znajdziemy w jego module mają praktyczne zastosowanie i niesamowicie upraszczają korzystanie z PowerShella, zarówno przy pisaniu skryptów, jak i pracy interaktywnej.
Pomocy!
Najlepszym przykładem dodatku, który przydaje się w każdej sytuacji jest kontekstowa pomoc. Została ona udoskonalona w porównaniu z poprzednią wersją: można teraz w każdej chwili wybrać jeden z dostępnych przykładów i bez wysiłku przekopiować do konsoli, przetestować, zmodyfikować. Dzięki temu pomoc przestaje być statycznym podręcznikiem a zaczyna działać poniekąd jak samouczek. Nie da się też ukryć, że sposób prezentowania pomocy jest niesamowicie przejrzysty i czytelny, z wydzielonymi w elegancki sposób sekcjami, dzięki czemu czytanie pomocy to czysta przyjemność:
Zmienne
Dodatek odpowiedzialny za zmienne również został poprawiony. W wersji obecnej możemy swobodnie przemieszać się pomiędzy poszczególnymi zakresami. Możemy też łatwo wyświetlić zmienne systemowe.
Poza tą zmianą trudno jest mi znaleźć co jeszcze można by w dodatku tym ulepszyć. Już w wersji pierwszej był bardzo pomocny a po obecnych zmianach, spełnia wszystkie moje wymagania.
Wersjonowanie
Osobiście z dodatku tego nie będę korzystał – stosuję na co dzień gita i nie ukrywam, że choć czasem rwę włosy z głowy, to wolę jednak rozwiązania, które są bardziej “powszechne” i nie ograniczają się tylko do PowerShella. Nie da się jednak ukryć, że narzędzie wbudowane w ISESteroids daje już pewną kontrolę nad skryptami. W dodatku, można w nim włączyć opcję automatycznego wersjonowania, która “mniejsze” wersje skryptu będzie dodawać sama, po każdym zapisaniu. Razem z modułem dystrybuowany jest WinMerge, więc bez trudu możemy porównać wersje i ocenić, które zmiany mogły sprawić, że nasz doskonały skrypt nagle przestał działać:
Jeśli ktoś wcześniej nie korzystał z żadnego rozwiązania tego typu – polecam. Na pewno można spać spokojnie mając świadomość, że każde “save” jest odwracalne a każda zmiana łatwa do prześledzenia.
Autokorekta
W wersji pierwszej ISESteroids oferowało dodatek pionowy, dzięki któremu pewne elementy składni mogły być automatycznie uzupełniane. Dodatek ten w chwili obecnej nie działa. Funkcjonalność jednak nie zniknęła – została zintegrowana ze skrawkami kodu, którymi możemy nie tylko swobodnie i wygodnie zarządzać, ale z którymi wiązać możemy skróty klawiszowe, uzyskując funkcjonalność podobną (a moim zdaniem nawet łatwiejszą w użyciu) do tej, jaką oferował dodatek pionowy. O narzędziu do zarządzania skrawkami kodu postaram się napisać obszerniej w jednej z kolejnych części tego cyklu.
Upiększamy…
To w mojej ocenie najbardziej łakomy kąsek w wersji drugiej ISESteroids, jeśli chodzi o dodatki pionowe. Pozwala on w prosty sposób przeorganizować kod i wykorzystując Abstract Syntax Tree “przejrzeć” skrypt i poprawić niedociągnięcia. Jest on w pełni konfigurowalny: dodatki można swobodnie wyłączać, uruchamiać pojedynczo – wszystko jest możliwe. Można też dodawać własne (odpowiedź na pytanie “jak” to temat na osobny artykuł, który również planuję wkrótce napisać). Sugeruję od razu przejść do opcji “Advanced” – dzięki niej możemy kontrolować, jakie zmiany będą przeprowadzone:
Po zakończeniu zmian, wszystkie elementy, które uległy zmianie są odpowiednio “podkreślone”. Można automatycznie poprawić wcięcia w kodzie po zakończeniu wszystkich operacji, dzięki czemu same “ulepszacze” nie muszą się tym zajmować, skupiając się na zmianach bardziej szczegółowych:
I to koniec części pierwszej cyklu o nowym ISESteroids. I choć sądzę, że już te zmiany powinny zachęcić Was do sprawdzenia wersji drugiej, to zapewniam, że jeszcze wiele usprawnień, udogodnień i drobiazgów cieszących oko przed nami.
[…] pierwszej części cyklu o drugiej odsłonie ISESteroids skupiłem się na funkcjonalnościach zawartych we wtyczkach […]